|
| XrR1 (const XrR1ParameterRecord ¶meter_record) |
|
HexapodJointState | CalculateJointState (const int leg_index, const Vector3 &leg_pos) const noexcept override |
| 指定した脚の関節のグローバル座標と,角度を計算する.
重たいのでグラフ探索や,描画処理中にループで使用することは推奨しない.
間接の可動範囲外まで動いてしまう場合でも,答えを返す.
目標座標に届かない場合は,最も近い座標まで脚を伸ばし, 戻り値の is_in_range を false にする.
|
|
bool | IsValidJointState (const int leg_index, const Vector3 &leg_pos, const HexapodJointState &joint_state) const noexcept override |
| 指定した脚のHexapodJointStateが正しく計算できているかを調べる.
目標座標に届かない場合や,間接の可動範囲外まで動いてしまう場合, 戻り値は false になる.
|
|
Vector3 | ConvertGlobalToLegCoordinate (const Vector3 &converted_position, int leg_index, const Vector3 ¢er_of_mass_global, const Quaternion &robot_quat, const bool consider_rot) const override |
| グローバル座標系で表現されている座標を,脚座標系に変換する.
|
|
Vector3 | ConvertLegToGlobalCoordinate (const Vector3 &converted_position, int leg_index, const Vector3 ¢er_of_mass_global, const Quaternion &robot_quat, const bool consider_rot) const override |
| 脚座標系で表現されている座標を,グローバル座標系に変換する.
|
|
Vector3 | ConvertRobotToGlobalCoordinate (const Vector3 &converted_position, const Vector3 ¢er_of_mass_global, const Quaternion &robot_quat, const bool consider_rot) const override |
| ロボット座標系で表現されている座標を,グローバル座標系に変換する.
|
|
Vector3 | ConvertRobotToLegCoordinate (const Vector3 &converted_position, int leg_index) const |
| ロボット座標系で表現されている座標を,脚座標系に変換する.
|
|
Vector3 | ConvertLegToRobotCoordinate (const Vector3 &converted_position, int leg_index) const |
| 脚座標系で表現されている座標を,ロボット座標系に変換する.
|
|
Vector3 | GetFreeLegPosLegCoordinate (int leg_index) const noexcept override |
| 遊脚する位置を返す,脚座標系.
|
|
Vector3 | GetLegBasePosRobotCoordinate (int leg_index) const noexcept override |
| 脚の付け根の座標(leg base position )を取得する.ロボット座標系.
|
|
float | GetGroundHeightMarginMin () const noexcept override |
| 地面の最大高さと重心位置を最小どれだけ離すかを返す.
|
|
float | GetGroundHeightMarginMax () const noexcept override |
| 地面の最大高さと重心位置を最大どれだけ離すかを返す.
|
|
bool | IsLegInRange (int leg_index, const Vector3 &leg_pos) const override |
| 脚が可動範囲内にあるかどうかを判定する.
|
|
bool | IsLegInterfering (const std::array< Vector3, HexapodConst::kLegNum > &leg_pos) const override |
| 脚が他の脚と干渉しているかどうかを判定する.
|
|
float | CalculateStabilityMargin (const leg_func::LegStateBit &leg_state, const std::array< Vector3, HexapodConst::kLegNum > &leg_pos) const override |
| 安定余裕(Stability Margin)を計算する. 詳しくは「不整地における歩行機械の静的安定性評価基準」 という論文を読んで欲しい.
接地脚を繋いで作られる多角形の辺と重心の距離の最小値を計算する.
|
|
bool | IsStable (const leg_func::LegStateBit &leg_state, const std::array< Vector3, HexapodConst::kLegNum > &leg_pos) const override |
| 安定余裕を用いて,静的に安定しているかどうかを判定する.
|
|
bool | IsBodyInterferingWithGround (const RobotStateNode &node, const DividedMapState &devide_map) const override |
| 胴体が地面と干渉しているかどうかを判定する.
|
|
virtual | ~IHexapodCoordinateConverter ()=default |
| 継承するクラスはデストラクタを virtualにすること.
|
|
virtual | ~IHexapodJointCalculator ()=default |
|
std::array< HexapodJointState, HexapodConst::kLegNum > | CalculateAllJointState (const RobotStateNode &node) const noexcept |
| 全ての関節のグローバル座標と,角度を計算する.
重たいのでグラフ探索や,描画処理中にループで使用することは推奨しない.
間接の可動範囲外まで動いてしまう場合でも,答えを返す.
目標座標に届かない場合は,最も近い座標まで脚を伸ばし, 戻り値の is_in_range を false にする.
|
|
bool | IsValidAllJointState (const RobotStateNode &node, const std::array< HexapodJointState, HexapodConst::kLegNum > &joint_state) const noexcept |
| HexapodJointStateが正しく計算できているかを調べる.
目標座標に届かない場合や,間接の可動範囲外まで動いてしまう場合, 戻り値は false になる.
|
|
virtual | ~IHexapodStatePresenter ()=default |
|
virtual | ~IHexapodPostureValidator ()=default |
|
bool | IsAllLegInRange (const leg_func::LegStateBit leg_state, const std::array< Vector3, HexapodConst::kLegNum > &leg_pos) const |
| 全ての脚が可動範囲内にあるかどうかを判定する.
|
|