G-Tune スーパーなんちゃって歩行 | ||||||
不定期TOPIC 2003/09/03〜2003/09/21より
非常に恥ずかしいのですが、G-Tuneで使っている「スーパーなんちゃって歩行」について解説しようと思います。前々より、これだけは言わなければ言わなければと思いつつ、今日まで来てしまいました。どうかお許し下さい。
G-Tuneは、いわゆる「なんちゃって歩行」(シーケンシャルに動作を再生していく)なんですが、実は、さらにそれを退化させた「スーパーなんちゃって歩行」をしています。これは、G-Tuneが小型サーボモータで歩く重要なポイントであり、かつ極秘事項(恥ずかしくて人に言えない)だったのですが、自分をステップアップさせるためにも、恥を忍んで公開してしまいます。
スーパーなんちゃってポイントその1・足首のロール軸(横方向の体重移動)足首で体重移動をするというのは、非常に負荷のかかることです。もちろん、人間のようにバランスをうまく取れれば、ほとんど力は要らないはずなんですが、今回使用しているサーボは、そこまでついてきません。簡単に言えば、保持力不足といいますか、そんなに細かく動かせないという感じです。きっと、このあたりはサーボによって(メーカ、トルク、制御方式)によって異なると思います。できれば、パワーはそんなに要らないから、保持力と動きの精度がいいサーボがあればいいなぁと思います。現実的には、保持力アップ→パワーのあるサーボの採用、制御方式がデジタルのものにする、というのが一番簡単な解決方法になると思います。
結果として、体重移動して「さあ右足上げるぞ!」という時に、左足首で身体を維持しきれず、左側にそのまま倒れてしまうのです。ここでサーボが0.1度で動いてくれて、かつその時にパワーを出してくれたらいいのですが、うちのは、いくら指示を出してもおよそそんな動きはしません。というのも、この時点でかなりの負荷がかかっているからです。大小傾向はあると思いますが、基本的にはどの小型アナログサーボも同じではないかと。きっとパワーのあるサーボですと、ここで動いたときに踏ん張ることができるのかもしれません。
この図を見てください。この図はG-Tuneの構造を簡単に説明したものです。右の図で屈伸する様を考えますと、上半身の重さは、「長さA」の先で支えればよいことになります(しかも両足で踏ん張るのでサーボ2つ)。力というものは生活の中でもご存知のとおり、力を入れる場所と実際に働く場所との距離が遠くなればなるほど大変になります。もっとちゃんとした計算があるのですが、そこまでスキルが無いので、「力を入れる場所と使う場所の距離が離れるほど力が要る」という程度の説明させておいてください。これを体重移動の方で考えますと、なんと「長さB」の先で上半身を支える必要があります。
屈伸と違い、ここはバランスを取って、実際に必要な力を削減することができる場所です。人間がそうですね!足首だけ考えた場合、体重を横に移動するのに、そんなに力は必要ありません。しかし、そのためには「制御」と「動作」、すなわち心身一体の動作が必要になります。残念ながら、G-Tuneにはどちらも備わっていません。制御はシーケンシャルに再生しているだけですし、サーボは細かい角度動作になるとなかなか期待通りに動きません(デジタルサーボとかの高級サーボになるとどうなるのか、一度試してみたいのですが)。
そこで、G-Tuneでは、メカニカルストッパをつけることで倒れることを防止しています(せこい!)。メカニカルストッパとは、簡単に言えば、それ以上、機械的に動かないようにする仕掛けですが、これをABS板を両面テープで貼り付けて実現しています。左の写真では、白い板がこれにあたります。上のサーボホルダ部分とこの板が干渉することで、ストッパとしています。簡単に言えば、重心を移動しきったところでメカ的にそれ以上倒れないようになっており、体重移動するときは、一気に勢いをつけてストッパ位置まで動かして、それで支えているのです。というわけで、冒頭の得意ポーズは電源が入って無い状態で保持されています。
工夫といえば工夫なんですけど、柔軟な動きのためにも、早く卒業したいです。
スーパーなんちゃってポイントその2・腰を落とさず突っ立って歩行
上の写真は、歩行の連続写真です。動画から落としたので、ちょっと小さくてわかりにくいかもしれませんが、脚の間接に着目してください。ほとんど膝をまげておりません。唯一曲げているのが6番の写真で、脚を上げているときだけです。この連続写真から接地している脚は膝をほとんど曲げていない)のがわかると思います。
「その1」にもでてきた、サーボパワーと動かせる重さの話と同様、やはり腰を落として膝を曲げていくと、だんだんサーボにパワーが要求されるようになってきます。これは人間でも同じですね。中腰でいると、すごく疲れませんか?対して、突っ立った姿勢というのは楽ですね。歩くときも、中腰で歩くより、なるべく脚を伸ばして歩いたほうが楽です。メカ的に言いますと、地面に対して脚が水平(ちょっと変な表現ですが)になるときが、最も力が必要になります。垂直になるにつれて徐々にパワーが必要なくなり、完全に垂直になると力はほとんど要りません。G-Tuneは、直立でしたら電源なしでも立っていることができます。
そんなわけで、なるべく脚を伸ばした状態で歩行をするようにしています。実は、「完全に片足を上げて歩行する」という点で行けば、6番の写真のように脚曲げて上げる必要はありません。この写真において向こう側(右側)の脚は、ほぼ伸ばした状態になっていますので、体重移動をしている状態ですと、左足を伸ばしたままでも接地しない状態になります。でもそれだとアピール度が弱いので、あえて曲げています。
ある意味、とても人間的です。また、今のG-Tuneのような、滑らかでない「ぎっこんばったん」な歩行をする場合、ほとんど慣性の効果を期待せず、常にフルに体重を支えていることになりますので、この楽に姿勢保持をするというのは、非常に重要になります。何しろ、少しかがむだけで、片足で体重を支えることができませんから。というわけで横歩きのときは、倒れていくのも考慮してスクリプトを組んでいたので、かなり苦労しました。
「腰を落とさない」ということは…どうやって第一歩目の脚を上げるんだ?というところに疑問を持たれると思います。その話は「その3」にて。
スーパーなんちゃってポイントその3・体重移動開始のひみつ
せっかくロボットなので、使えるパワーは使うことにしました。左の写真を見るとわかりますが、左足に重心を移すため、まず、右の足裏を内側にひねります。足裏には幅がありますから、結果的に脚の長さが右足よりも長くなり、おっ、身体が左に傾きます。とってもロボットな足裏を生かしたような、なんだかな〜な方法です。これに合わせて左足首も外側に曲げ体重移動完了です。後は、脚を伸ばしきった状態(実際には少し曲げていますけど)で踏み出していきます。
一歩目を踏み出して着地した後も同じことをやっているのですが、ここでは左から右への重心移動を滑らかに行う(サインカーブな加減速をしています)ことにより、足首内側ひねりへの依存度を減らしています。これは、股間の保持力もそんなに強くないため、足首を内側にひねることで、どうしても開脚方向に力が働いてしまうため、これを軽減するためです。
そうやって考えると、うまくコントロールできると「つま先」って、すごく効果絶大かもしれませんね!力関係や動き開始の理由は違えど、人間も、足首とつま先を使って同じようなこと(各関節の動きを最小にして腰と地面間の距離を調整している)をしているような気がします。人間が、なぜ楽にスムーズに歩けるかという疑問を解く1つのカギなのかもしれません。
スーパーなんちゃって総論
というわけで、一見すごいんですが(4.8Kg/cmの小型アナログサーボで軸間6cmのロボットが歩くんだから、ある意味すごいって言ってみてもいいかなーっと思いまして)、かなり「なんちゃって」な二足歩行です。G-Tune改良への糧とするため、整理がてらまとめてみました。
ここまで書いていて思ったことがあります。少なくとも歩行については、人間の足首ってそんなに力を使っていない気がします。これに対して二足歩行機構を実現するのに、強力なサーボを使うのもメカニカルストッパを使うのも、似たようなもんかな?ってことです。もちろん人それぞれ観点は異なりますので、賛否両論あるとは思います。少なくとも、メカニカルストッパ方式で、スムーズにゆっくり歩いたり早く歩いたりといった柔軟性のある動きは難しいかと思います。
さて、G-Tune (2003A)ではこれが限界でしたが、次回は…もっと柔軟性のある動きをさせるためにも、もう一工夫したい部分です。そんなわけで、今日もアイデアと冷や汗を絞るSISOです。
Back to G-Tune Index