6脚ロボットが有効な姿勢をとっているかを チェックする処理のインターフェース.
[詳解]
#include <interface_hexapod_posture_validator.h>
|
| 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 ÷d_map) const =0 |
| | 胴体が地面と干渉しているかどうかを判定する.
|
| |
6脚ロボットが有効な姿勢をとっているかを チェックする処理のインターフェース.
interface_hexapod_posture_validator.h の 26 行目に定義があります。
◆ ~IHexapodPostureValidator()
| virtual designlab::IHexapodPostureValidator::~IHexapodPostureValidator |
( |
| ) |
|
|
virtualdefault |
◆ CalculateStabilityMargin()
安定余裕(Stability Margin)を計算する. 詳しくは「不整地における歩行機械の静的安定性評価基準」 という論文を読んで欲しい.
接地脚を繋いで作られる多角形の辺と重心の距離の最小値を計算する.
- 引数
-
| [in] | leg_state | 脚の状態.bitで表現される,遊脚・接地脚の情報を持つ. |
| [in] | leg_pos | 脚座標系における脚先の座標の配列. 脚先座標系とは脚の付け根を原点とし,軸はロボット座標系と同様な座標系. |
- 戻り値
- 安定余裕.大きい方が安定となる,またこの値が0以下なら転倒する.
designlab::PhantomXMkII, designlab::XrR1で実装されています。
◆ IsAllLegInRange()
全ての脚が可動範囲内にあるかどうかを判定する.
- 引数
-
| [in] | leg_state | 脚の状態.bitで表現される,遊脚・接地脚の情報を持つ. |
| [in] | leg_pos | 脚座標系における脚先の座標の配列. 脚先座標系とは脚の付け根を原点とし,軸はロボット座標系と同様な座標系. |
- 戻り値
- 全ての脚が可動範囲内にあれば true.可動範囲外にあれば false.
interface_hexapod_posture_validator.h の 44 行目に定義があります。
◆ IsBodyInterferingWithGround()
| virtual bool designlab::IHexapodPostureValidator::IsBodyInterferingWithGround |
( |
const RobotStateNode & |
node, |
|
|
const DividedMapState & |
divided_map |
|
) |
| const |
|
pure virtual |
◆ 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, designlab::XrR1で実装されています。
◆ IsLegInterfering()
◆ IsStable()
安定余裕を用いて,静的に安定しているかどうかを判定する.
- 引数
-
| [in] | leg_state | 脚の状態.bitで表現される,遊脚・接地脚の情報を持つ. |
| [in] | leg_pos | 脚座標系における脚先の座標の配列. 脚先座標系とは脚の付け根を原点とし,軸はロボット座標系と同様な座標系. |
- 戻り値
- 静的に安定していれば true.そうでなければ false.
designlab::PhantomXMkII, designlab::XrR1で実装されています。
このクラス詳解は次のファイルから抽出されました: