Open Akira794 opened 4 years ago
以下旋回角 45deg を目標旋回角とし,walking(歩行中)時にx方向の初期重心速度、初期重心位置を変化させ軌道を生成し、多項式近似した際, 5 次多項式のうち係数 a 0 に関して求めた結果 target_deg:45deg init_vel_x (-0.4: 0.4 : 0.02) init_cog_x(-0.06:0.06:0.003) vel_y = -0.12(const)
27degでも同様
重心位置 x g0 と重心速度 ẋ g0 の変化に対して係数の値が線形的に変化 係数 a 0 だけでなく x , y 方向の重心位置,重心速度に対するそれぞれ 12 個の係数に対しても同じよ うな傾向を確認
次に目標旋回角を変化させたときの係数の変化を確認する. 念のため範囲を-90deg~90deg 1deg 刻みとする. 前提として目標旋回角を与えられた際に step数を導出, step数を元にtarget_xがMAX_STEP_Xを一歩文の距離として再設定される. ex.1 target_deg 45deg => 45/9 = 5step target_x = 0.06 5 = 0.3 ex.2 target_deg 29deg => 29/9 = 3 .... 2 => 2deg分を1step追加 3+1 = 4step target_x = 0.064 = 0.24
目標旋回角target_degに対する係数の変化は係数保存に要求されるメモリ量の見積もり で取り上げた パラメータ範囲を通してではなく旋回角のstate毎( start walking stop half2 stop harf1 先行研究ではフェーズ)に変化している. 0deg時の点は直線歩行の為 target_xが0.3であるのでズレるのは当然 0degは例外扱い(直線歩行扱い)
これは重心軌道を多項式近似するにあたり,旋回角が小さいほどtarget_xも小さくなる. これは先行研究の”重心軌道を多項式近似するにあたり,歩行時,停止時などの歩行フェーズに対して,一部うまく多項式近似できないため着地のタイミングを変更していたり,停止直前で位置合わせのために歩幅を変更しているためであると考えられる."に繋がる よって旋回角度にも 歩行状態毎に見れば係数の変化は線形的であるため 場合分けすればできそう.
36 < target_deg 27 < target_deg <= 36 18 < target_deg <= 27 9 < target_deg <= 18 0 < target_deg <= 9
旋回移動において 5次多項式近似の係数をテーブルとして保存することなく一次式で近似することが可能と確認.
式は以下の様 ax = Cvxvel_x + Cpxcog_x + b (9 < target_deg)
0 < target_deg <= 9では以下の式 ax = Cvxvel_x + Cpxcog_x + b - bb(target_deg -9)
Cvx:初期重心速度の係数 Cpx:初期重心位置の係数 b: 切片 bbは0 < target_deg <= 9では旋回角が1deg刻みのためtarget_degを変数として取り込む そのためb:切片の変化を見た際に線形であったためbの切片を1次式で近似 bbを係数としtarget_degに対するbの導出が可能となった.
係数導出のための場合わけは以下の通り 27< target_deg 18 < target_deg <= 27 9 < target_deg <= 18 0 < target_deg <= 9
検証 旋回角48degを与えたときの重心軌道を生成
重心軌道
重心速度 x, y
重心加速度
負の旋回角を与えられた場合の係数の導出も行なう. 速度・位置の係数はほぼ同一で切片を求め 支持脚・旋回角の正負で場合分けすれば定式に組み込めると予想
負の旋回角も導出 旋回角-48degでの軌道
重心軌道を生成する際の入力パラメータと,重心軌道を近似した結果得られる 係数との関係性を考察
係数保存に要求されるメモリ量の見積もり で取り上げた パラメータ範囲で、45deg旋回角を与え, 支持脚切り替え時の x 方向の重心位置 x g0 と重心速度 ẋ g0 を変化させ重心軌道を生成し多項式近似した際, 5 次多項式のうち係数 a 0 に関して求める.