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

重心の候補領域から重心位置を選択するクラス. [詳解]

#include <com_selector.h>

公開メンバ関数

 ComSelector (const std::shared_ptr< const IHexapodPostureValidator > &checker_ptr)
 
bool GetComFromPolygon (const Polygon2 &polygon, const RobotStateNode &current_node, Vector3 *output_com) const
 重心を求める.
 

詳解

重心の候補領域から重心位置を選択するクラス.

重心位置の決め方は波東さんのプログラムに準拠している.
まずは,候補地点の多角形を囲む四角形を生成,その中に等間隔で候補点を打つ.
次に多角形の中に入っていない点を除外する.
そして,絶対安全余裕を計算し,マージンを外れた点を除外する.
また,移動後の座標において,脚が他の脚と干渉する場合は除外する.
以上の処理を行った後,残った点の重心を求める.

覚え書き
CCC では Target の値を持っているので,その値を利用して重心位置選択するが, この実装ではこのクラスにその選択を任せたくない. 同様の処理を行うために,Target の値を適当に決めている.

com_selector.h36 行目に定義があります。

構築子と解体子

◆ ComSelector()

designlab::ComSelector::ComSelector ( const std::shared_ptr< const IHexapodPostureValidator > &  checker_ptr)
inlineexplicit

com_selector.h39 行目に定義があります。

関数詳解

◆ GetComFromPolygon()

bool designlab::ComSelector::GetComFromPolygon ( const Polygon2 polygon,
const RobotStateNode current_node,
Vector3 output_com 
) const

重心を求める.

引数
[in]polygon重心を求める対象のポリゴン.この中に入る点を出力する.
[in]current_node現在のノード.
[out]output_com重心.
戻り値
true重心を求めることができた.
false重心を求めることができなかった.

com_selector.cpp20 行目に定義があります。

呼び出し関係図:
被呼び出し関係図:

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