GaitGeneration by Graph Search
読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | 全メンバ一覧
designlab::IHexapodPostureValidator クラスabstract

6脚ロボットが有効な姿勢をとっているかを チェックする処理のインターフェース. [詳解]

#include <interface_hexapod_posture_validator.h>

designlab::IHexapodPostureValidator の継承関係図
Inheritance graph
[凡例]

公開メンバ関数

virtual ~IHexapodPostureValidator ()=default
 
virtual bool IsLegInRange (const int leg_index, const Vector3 &leg_pos) const =0
 脚が可動範囲内にあるかどうかを判定する.
 
bool IsAllLegInRange (const leg_func::LegStateBit leg_state, const std::array< Vector3, HexapodConst::kLegNum > &leg_pos) const
 全ての脚が可動範囲内にあるかどうかを判定する.
 
virtual bool IsLegInterfering (const std::array< Vector3, HexapodConst::kLegNum > &leg_pos) const =0
 脚が他の脚と干渉しているかどうかを判定する.
 
virtual float CalculateStabilityMargin (const leg_func::LegStateBit &leg_state, const std::array< Vector3, HexapodConst::kLegNum > &leg_pos) const =0
 安定余裕(Stability Margin)を計算する. 詳しくは「不整地における歩行機械の静的安定性評価基準」 という論文を読んで欲しい.
接地脚を繋いで作られる多角形の辺と重心の距離の最小値を計算する.
 
virtual bool IsStable (const leg_func::LegStateBit &leg_state, const std::array< Vector3, HexapodConst::kLegNum > &leg_pos) const =0
 安定余裕を用いて,静的に安定しているかどうかを判定する.
 
virtual bool IsBodyInterferingWithGround (const RobotStateNode &node, const DividedMapState &divided_map) const =0
 胴体が地面と干渉しているかどうかを判定する.
 

詳解

6脚ロボットが有効な姿勢をとっているかを チェックする処理のインターフェース.

interface_hexapod_posture_validator.h26 行目に定義があります。

構築子と解体子

◆ ~IHexapodPostureValidator()

virtual designlab::IHexapodPostureValidator::~IHexapodPostureValidator ( )
virtualdefault

関数詳解

◆ CalculateStabilityMargin()

virtual float designlab::IHexapodPostureValidator::CalculateStabilityMargin ( const leg_func::LegStateBit leg_state,
const std::array< Vector3, HexapodConst::kLegNum > &  leg_pos 
) const
pure virtual

安定余裕(Stability Margin)を計算する. 詳しくは「不整地における歩行機械の静的安定性評価基準」 という論文を読んで欲しい.
接地脚を繋いで作られる多角形の辺と重心の距離の最小値を計算する.

引数
[in]leg_state脚の状態.bitで表現される,遊脚・接地脚の情報を持つ.
[in]leg_pos脚座標系における脚先の座標の配列. 脚先座標系とは脚の付け根を原点とし,軸はロボット座標系と同様な座標系.
戻り値
安定余裕.大きい方が安定となる,またこの値が0以下なら転倒する.

designlab::PhantomXMkIIで実装されています。

◆ IsAllLegInRange()

bool designlab::IHexapodPostureValidator::IsAllLegInRange ( const leg_func::LegStateBit  leg_state,
const std::array< Vector3, HexapodConst::kLegNum > &  leg_pos 
) const
inline

全ての脚が可動範囲内にあるかどうかを判定する.

引数
[in]leg_state脚の状態.bitで表現される,遊脚・接地脚の情報を持つ.
[in]leg_pos脚座標系における脚先の座標の配列. 脚先座標系とは脚の付け根を原点とし,軸はロボット座標系と同様な座標系.
戻り値
全ての脚が可動範囲内にあれば true.可動範囲外にあれば false.

interface_hexapod_posture_validator.h44 行目に定義があります。

呼び出し関係図:

◆ IsBodyInterferingWithGround()

virtual bool designlab::IHexapodPostureValidator::IsBodyInterferingWithGround ( const RobotStateNode node,
const DividedMapState divided_map 
) const
pure virtual

胴体が地面と干渉しているかどうかを判定する.

引数
[in]nodeロボットの状態.
[in]divided_map地面の状態.
戻り値
胴体が地面と干渉していれば true.干渉していなければ false.

designlab::PhantomXMkIIで実装されています。

◆ IsLegInRange()

virtual bool designlab::IHexapodPostureValidator::IsLegInRange ( const int  leg_index,
const Vector3 leg_pos 
) const
pure virtual

脚が可動範囲内にあるかどうかを判定する.

引数
[in]leg_index脚番号.
[in]leg_pos脚座標系における脚先の座標. 脚先座標系とは脚の付け根を原点とし,軸はロボット座標系と同様な座標系.
戻り値
脚が可動範囲内にあれば true.可動範囲外にあれば false.

designlab::PhantomXMkIIで実装されています。

被呼び出し関係図:

◆ IsLegInterfering()

virtual bool designlab::IHexapodPostureValidator::IsLegInterfering ( const std::array< Vector3, HexapodConst::kLegNum > &  leg_pos) const
pure virtual

脚が他の脚と干渉しているかどうかを判定する.

引数
[in]leg_pos脚座標系における脚先の座標の配列. 脚先座標系とは脚の付け根を原点とし,軸はロボット座標系と同様な座標系.
戻り値
脚が他の脚と干渉していれば true.干渉していなければ false.

designlab::PhantomXMkIIで実装されています。

◆ IsStable()

virtual bool designlab::IHexapodPostureValidator::IsStable ( const leg_func::LegStateBit leg_state,
const std::array< Vector3, HexapodConst::kLegNum > &  leg_pos 
) const
pure virtual

安定余裕を用いて,静的に安定しているかどうかを判定する.

引数
[in]leg_state脚の状態.bitで表現される,遊脚・接地脚の情報を持つ.
[in]leg_pos脚座標系における脚先の座標の配列. 脚先座標系とは脚の付け根を原点とし,軸はロボット座標系と同様な座標系.
戻り値
静的に安定していれば true.そうでなければ false.

designlab::PhantomXMkIIで実装されています。


このクラス詳解は次のファイルから抽出されました: