SHISEIGYO-1 Walkerを実現させたい俺2 ー歩行検討1ー
前回はシリアルサーボ (KRS3301) による足とリアクションホイールによるオートバランスシステムで
二足歩行ロボットSHISEIGYO-1 Walker を製作し、片足立ちを実現いたしました。
ここでは遂に歩行に向けて検討を開始します。
目次
足動作検討
足の動作を検討します。
前回に引き続きホイールのバランス制御を調整し、片足立ち時の他方の足の動作を確認しました。
だいぶ他方の足を動かせるようになってきた
弊姿勢制御装置にはホイール回転数から動的に目標姿勢角を調整するIDRS機能があるのだけど更に足の座標からバランスする姿勢角を算出してオフセットとして付与しようとしたけど止めた.
発散しそうだし天板は平行に保つという制約があったほうがいいかなと pic.twitter.com/8PEwkv3Al4
— HomeMadeGarbage (@H0meMadeGarbage) January 23, 2022
両足を1直線上に配置して前後動作を確認しました。
前からの様子 pic.twitter.com/jW4RfCTfBh
— HomeMadeGarbage (@H0meMadeGarbage) January 23, 2022
サーボ配置検討
片足立ちと前後の重心移動が確認できました。
歩行時には足を交差させて移動させる必要があり、現状では膝が90°以上曲げられず動作に制限が生じるので
膝のサーボの配置を変更しました。
これで膝がかなり曲げられるようになり、自由度が増しました。
逆運動学
足の移動に正確な座標指定が必要と考え、逆運動学の再考を実施しました。
股関節に直交軸フレーム を使用したため$L_1$は0です。
ここでは股関節のロール角$θ_0$は直接指定することにしました。
足を上げて(Z軸)、前後(X軸)するためのサーボ角度は以下で導出されます。
サーボの角度$θ_1$は余弦定理を用いて導出します。
${L_3}^2 = {L_2}^2 + {l_d}^2 – 2{L_2}{l_d}\cos{θ_1}’ $
${θ_1}’ = \cos^{-1} \left(\frac{{L_2}^2+{l_d}^2 – {L_3}^2}{2{L_2}{l_d}} \right) $
$$θ_1 = φ + {θ_1}’ = φ +\cos^{-1} \left(\frac{{L_2}^2+{l_d}^2 – {L_3}^2}{2{L_2}{l_d}} \right) $$
$$ 但し、φ = \tan^{-1} \left(\frac{x}{z’ – L_1 – L_4} \right)$$
$$ l_d = \sqrt{x^2 + \left(z’ – L_1 – L_4\right)^2}$$
$$ 高さを股関節のロール角で補正 z’ = \frac{z}{\cos{θ_0}}$$
膝のサーボの角度$θ_2$も余弦定理を用いて導出します。
${l_d}^2 = {L_2}^2 + {L_3}^2 – 2{L_2}{L_3}\cos{θ_2}’ = {L_2}^2 + {L_3}^2 – 2{L_2}{L_3}\cos\left({\pi-θ_2}\right) = {L_2}^2 + {L_3}^2 – 2{L_2}{L_3}\cos{θ_2}$
$$θ_2 = \cos^{-1} \left(\frac{{l_d}^2-{L_2}^2 – {L_3}^2}{2{L_2}{L_3}} \right)$$
足首のサーボの角度$θ_3$は足を平行にするために
$$θ_3 =θ_2-θ_1$$
以上で 股関節のロール角$θ_0$と足の前後(X軸)位置と上下(Z軸)位置の指定で足のサーボを制御できるようになりました。
手動による歩行動作確認
スマホアプリBlynkでBLEを介してSHISEIGYO-1 WalkerのコントローラESP32に左右の足の座標を送って
手動で歩行動作の確認を実施しました。
まだヨチヨチですが、なんとか歩けましたww
使用したBlynkアプリの画面
おわりに
ここではSHISEIGYO-1 Walkerの足構造と逆運動学を再検討し、ヨチヨチではありますが歩行動作を確認することができました。
よりスムーズでスタイリッシュな歩行を目指しておりますので、引き続き検討実施いたします!