GaitGeneration by Graph Search
|
重心タイプに関する名前空間.Center of Mass Function の略. [詳解]
型定義 | |
using | LegGroundedMap = boost::bimaps::bimap< leg_func::LegGroundedBit, int > |
脚の接地パターンを表す型.leftがビットのデータ,rightが int型の番号. bimaps::bimap は,左右の型の両方からアクセスできる map. key→value,value→keyの両方が可能. 前述の通り脚の接地パターンは36通りある. それぞれの接地パターンに対応する数値を割り振って管理をしやすくするために, bimapを用いている. | |
using | LegGroundedMapValue = LegGroundedMap::value_type |
脚の接地パターンを表すマップの値の型. | |
関数 | |
int | GetLegGroundPatternNum () |
脚の接地パターンの総数を返す. | |
leg_func::LegGroundedBit | GetLegGroundedBitFromLegGroundPatternIndex (int leg_ground_pattern_index) |
脚の接地パターンの番号から,その番号に該当する接地パターンを返す. | |
void | RemoveLegGroundPatternFromCom (enums::DiscreteComPos discrete_com_pos, boost::dynamic_bitset<> *output) |
離散化された重心位置から,その重心位置では取り得ない脚接地パターンを falseにする. | |
void | RemoveLegGroundPatternFromNotGroundableLeg (int not_groundable_leg_index, boost::dynamic_bitset<> *output) |
接地できない脚番号から, その脚が接地できない場合に取り得ない接地パターンを falseにする. | |
void | RemoveLegGroundPatternFromNotFreeLeg (int not_lift_leg_index, boost::dynamic_bitset<> *output) |
遊脚できない脚番号から, その脚が遊脚できない場合に取り得ない接地パターンを falseにする. | |
重心タイプに関する名前空間.Center of Mass Function の略.
leg_stateの上位ビットにて表されているもの.詳細は波東さんの修論で BFSinHierarchy・CreateComCandidate・PassFindingと様々なファイルに跨る処理 をまとめたくて作ったもの.
重心位置はざっくり離散化して,8通り,
脚の接地パターン(どの脚を上げるか,下げるか)は36通りある.
離散化した重心位置から取ることができない接地パターンを予め取り除くのがこれら関数の役割.
脚の接地パターンは,
・全接地 1通り.
・1本遊脚 6通り.
・2本遊脚 15通り.
・3本遊脚 20通り → 実現可能なものは14通り.
なので全部で36通りある.
using designlab::com_func::LegGroundedMap = typedef boost::bimaps::bimap<leg_func::LegGroundedBit, int> |
脚の接地パターンを表す型.leftがビットのデータ,rightが int型の番号.
bimaps::bimap は,左右の型の両方からアクセスできる map. key→value,value→keyの両方が可能.
前述の通り脚の接地パターンは36通りある.
それぞれの接地パターンに対応する数値を割り振って管理をしやすくするために, bimapを用いている.
com_type.h の 61 行目に定義があります。
using designlab::com_func::LegGroundedMapValue = typedef LegGroundedMap::value_type |
脚の接地パターンを表すマップの値の型.
com_type.h の 64 行目に定義があります。
leg_func::LegGroundedBit designlab::com_func::GetLegGroundedBitFromLegGroundPatternIndex | ( | int | leg_ground_pattern_index | ) |
脚の接地パターンの番号から,その番号に該当する接地パターンを返す.
[in] | leg_ground_pattern_index | 脚の接地パターンの番号. |
com_type.cpp の 234 行目に定義があります。
int designlab::com_func::GetLegGroundPatternNum | ( | ) |
void designlab::com_func::RemoveLegGroundPatternFromCom | ( | enums::DiscreteComPos | discrete_com_pos, |
boost::dynamic_bitset<> * | output | ||
) |
離散化された重心位置から,その重心位置では取り得ない脚接地パターンを falseにする.
[in] | discrete_com_pos | 離散化された重心位置. |
[in,out] | output | 脚接地パターンが実行可能ならば true, 不可能なら falseにした bool型の配列. 引数の重心位置では取り得ない脚接地パターンを falseに変更する. |
com_type.cpp の 246 行目に定義があります。
void designlab::com_func::RemoveLegGroundPatternFromNotFreeLeg | ( | int | not_lift_leg_index, |
boost::dynamic_bitset<> * | output | ||
) |
遊脚できない脚番号から, その脚が遊脚できない場合に取り得ない接地パターンを falseにする.
[in] | not_lift_leg_index | 遊脚できない脚の脚番号. |
[in,out] | output | 脚接地パターンが実行可能ならば true, 不可能なら falseにした bool型の配列. 引数で指定した脚が遊脚できない場合に取り得ない接地パターンを falseに変更する. |
com_type.cpp の 277 行目に定義があります。
void designlab::com_func::RemoveLegGroundPatternFromNotGroundableLeg | ( | int | not_groundable_leg_index, |
boost::dynamic_bitset<> * | output | ||
) |
接地できない脚番号から, その脚が接地できない場合に取り得ない接地パターンを falseにする.
[in] | not_groundable_leg_index | 接地できない脚の脚番号. |
[in,out] | output | 脚接地パターンが実行可能ならば true, 不可能なら falseにした bool型の配列. 引数で指定した脚が接地できない場合に,取り得ない接地パターンを falseに変更する. |
com_type.cpp の 261 行目に定義があります。