Torque.h
#pragma once
namespace Core
{
ref class Model;
ref class Link;
typedef array< Robotics::PositionVector^ > PositionVectors;
typedef System::Collections::Generic::List< Link^ > LinkList;
// トルク
public ref class Torque
{
// Construction --------------------------------------------------------
public:
Torque( Model^ model );
// Operation -----------------------------------------------------------
private:
void CalculateGroundReactionForce();
LinkList^ GetLinkWithSupportingPhase( LinkList^ links );
// Attribute ===========================================================
private:
Model^ m_model; ///< モデル
Robotics::PositionVector^ m_totalCenterOfGravity; ///< 全体の重心[ m ] (ワールド座標系)
double m_totalMass; ///< 全体の質量[ kg ]
LinkList^ m_supportingLink; ///< 支持相のリンク
PositionVectors^ m_groundReactionForce; ///< 床反力[ N ]
// static
public:
literal double Maximum = 1.0; ///< トルクの最大値[ Nm ]
private:
literal double AccelerationOfGravity = 9.80665; ///< 重力加速度[ m/s2 ]
// Property ------------------------------------------------------------
public:
/// Indexer ( トルク[ Nm ] )
property double default[ Link^ ]
{
double get( Link^ targetLink );
}
};
}