【経緯】
今回の膝を伸ばした歩行スタイルは勿論「人間のような歩き方にしたい」というのが第一の目的ですが、
実はそれ以外にもサーボモータ等の都合でZMPを意識した従来の膝曲げ歩行は困難だった、という
事情もあります。
もし、アシモのような高精度なセンサやアクチュエータが利用できたら案外教科書どおり膝を曲げ
着地予定範囲に特異点(足が届かないということ)の無い
ZMP
算出型の歩行方式(正道)に拘り続けた
かもしれません。
ホビーロボットの場合、膝を曲げるとサーボが外力でブレる(特に角速度が大きいとき)、
また膝に過大な負荷が加わり最悪壊れたりしますのでどうしても中腰による安定な動歩行は難しい(特に早足では)と思います。(ZMPも算出できない)
そのようなことから軸足を真っ直ぐ伸ばして膝への負荷を軽減し、合わせて定速歩行時の
慣性力を利用して股関節(
pitch軸
)に加わるトルクをゼロにすれば(一種の
受動歩行)、
エネルギー消費も抑えられる(一石二鳥)、だと考えました。
それが人間の歩行スタイルと同じ?、少なくともかかなり似ている。案外人間も長い進化の歴史で
エネルギー消費が少なく、間接への負担も小さい『膝伸ばし型の二足歩行
スタイル』を獲得したのかもしれません。(猿人は膝が曲がっていたのかも)
大げさですが「二足歩行ロボットを製作することで、より人間を理解したい」
そんな私の願いになんとなく一致したかなと満足しています。
【方式】
[
軸足側]
・前述のとおり軸足側を完全に伸ばし、慣性力に逆らわずむしろそれを利用する「受動歩行」が基本。
・足は踵(かかと)から着地し、逆に足を床から離す際も、踵から。(爪先を着けるタイミングP1、離すタイミングP2が大切)
・足首(ピッチ軸&ロール軸)と股関節(ピッチ軸&ロール軸)にジャイロセンサによる角度補正を加える※1。(膝関節は未適応)
[
遊脚側]
・足の上げ下げは、最初急峻(sin(0)〜sin(π/2)のような)、降ろす際はなだらか(cos(0)〜cos(π)のような)
・一旦、大きく前に振り出しP3、一定割合戻して着地P4。
[
腰]
・股関節ロール軸を利用して腰を左右に振る(振幅P5)ことで体重移動をする。(腰の左右振りと、足振りをある位相関係P6にする)
・股関節ピッチ軸を利用して前かがみ或いは後ろに反らせて重心を安定させる(重心投影点が
支持領域
センタに来るよう配慮)P7
[
その他]
・ZMPは意識していない(というか算出できない、但し歩きは始めと停止時の慣性力には配慮している)
・手を振って(振幅P8)ヨー軸の回転モーメントを打ち消す(ある程度)
・受動歩行が成立(引き込み)するよう、歩行周期、歩幅、その他のパラメータ(P1〜P8)を動的に制御
(このあたり試行錯誤の暫定制御が多く、それらの有効性や相関はまだ十分検証していない。※1も同様)
詳細は今後(あるいは特許ネタ?)
・足が小さいからできるの?
取り合えず私の身長(188)対、足サイズ(28)の比率と同じに設定しただけです。
確かに小型二足歩行ロボットでよく使われる大きなソールでは歩き辛いかもしれません。
・他の市販機でも可能?
各種パラメータの再調整や多少の改造は必要ですが可能だと思います。
・足裏の材質は?
アクリル板です。接地時にできるだけ衝撃や滑りが無いよう制御していますので特に緩衝材や滑り止めは使用していません。
・駆動力の強いサーボが必要?
軸足側は伸びた状態ですので大きなトルクは加わりません、また股関節サーボ(ピッチ軸)も慣性力に逆らわず寧ろそれを
利用するかたちで制御します。
・ジャイロは高精度なものが必要?
ソフト的に比較的大きな係数で自動追従(静止電位オフセット値や角速度積分値の減衰係数)
させますので(つまり精度的にラフ)精度やドリフトはあまり気になりません。
・大きなロボットでも可能?
ロボットのサイズが大きくなる程、倒れこむ時間が長くなる(処理時間に余裕ができる)のと、
処理能力の高いコンピュータや精度の良いセンサも搭載し易くなりますので制御はむしろ楽に
なるのではないかと思います。
・重心位置が高いから歩けるの?
重心位置が高くても低くてもロボットの安定性にはそれ程影響しない、感じです。
・重いロボットがスムーズに歩けるのはなぜ?
受動歩行が基本ですので『力学的に無理が無い』、それによりサーボへのの負担が少なく駆動トルクに余裕があるため、だと思います。
・曲がることもできるの?
今は直進と停止しかできませんが、股関節にヨー軸用サーボを取り付ければ比較的簡単に曲がることも出来るようになると思います。
旋回方式に関してはPRIMER-V3と物理演算(
物理シミュレーションA
)
で既に確立しています。
・製作期間は?
PRIMER-V4を流用しましたが、約2ヶ月です(夜中にPS3のFPSゲーム[BF,COD,オペフラ]をやりながらw)
・足の着地点が多少ブレてる?
床の微妙な凹凸によってロボットが傾いた際、股関節や足首の角度を調整してバランスを維持しますが、そのフィードバック制御の結果かと思います。
・うまく調整すれば固定モーションでもできる?
どんな場合でも最も安定で無駄の無いモーションというのは存在すると思いますがそれでも軌道再現(固定モーション)のみでは
擾乱に対する許容幅が狭すぎ少なくともこのロボットの形状・構造では無理だと思います。
モーションに対しては、軌道精度の高さより多少のブレを許す(しなやかさ)『むしろそれを利用する』発想、
加えて傾きに対する補正などもある程度は必要だと考えます。
・その他
コメントを見ながら随時追記してゆきます・・