GaitGeneration by Graph Search
|
重心の候補領域から重心位置を選択するクラス. [詳解]
#include <com_selector.h>
公開メンバ関数 | |
ComSelector (const std::shared_ptr< const IHexapodPostureValidator > &checker_ptr) | |
bool | GetComFromPolygon (const Polygon2 &polygon, const RobotStateNode ¤t_node, Vector3 *output_com) const |
重心を求める. | |
重心の候補領域から重心位置を選択するクラス.
重心位置の決め方は波東さんのプログラムに準拠している.
まずは,候補地点の多角形を囲む四角形を生成,その中に等間隔で候補点を打つ.
次に多角形の中に入っていない点を除外する.
そして,絶対安全余裕を計算し,マージンを外れた点を除外する.
また,移動後の座標において,脚が他の脚と干渉する場合は除外する.
以上の処理を行った後,残った点の重心を求める.
com_selector.h の 36 行目に定義があります。
|
inlineexplicit |
com_selector.h の 39 行目に定義があります。
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.cpp の 20 行目に定義があります。