GaitGeneration by Graph Search
読み取り中…
検索中…
一致する文字列を見つけられません
型定義 | 関数
designlab::com_func 名前空間

重心タイプに関する名前空間.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通りある.

型定義詳解

◆ LegGroundedMap

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.h61 行目に定義があります。

◆ LegGroundedMapValue

using designlab::com_func::LegGroundedMapValue = typedef LegGroundedMap::value_type

脚の接地パターンを表すマップの値の型.

com_type.h64 行目に定義があります。

関数詳解

◆ GetLegGroundedBitFromLegGroundPatternIndex()

leg_func::LegGroundedBit designlab::com_func::GetLegGroundedBitFromLegGroundPatternIndex ( int  leg_ground_pattern_index)

脚の接地パターンの番号から,その番号に該当する接地パターンを返す.

引数
[in]leg_ground_pattern_index脚の接地パターンの番号.
戻り値
脚の接地パターン.
6bitのビット列.1が接地で,0が遊脚となる.

com_type.cpp234 行目に定義があります。

被呼び出し関係図:

◆ GetLegGroundPatternNum()

int designlab::com_func::GetLegGroundPatternNum ( )

脚の接地パターンの総数を返す.

戻り値
脚の接地パターンの総数.

com_type.cpp229 行目に定義があります。

被呼び出し関係図:

◆ RemoveLegGroundPatternFromCom()

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.cpp246 行目に定義があります。

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

◆ RemoveLegGroundPatternFromNotFreeLeg()

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.cpp277 行目に定義があります。

呼び出し関係図:

◆ RemoveLegGroundPatternFromNotGroundableLeg()

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.cpp261 行目に定義があります。

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