Open Dynamics Engineとロボット研究
世界各国で行ってきたロボット研究活動
これまで、一通りODEによるロボットシミュレーションを説明してきました。最終回では、私のこれまでのロボット研究活動と交えて、ODEプログラムを紹介します。
私の主な研究課題は脚移動ロボットの研究開発であり、特に重力や慣性力を有効利用する身体構造を見つけてエネルギー効率の良い脚移動ロボットを開発することにあります。また日本国内だけでなく、ヨーロッパ・アメリカでも研究活動を行っていましたので、国内外の違いも踏まえた研究内容をお伝えできればと思います。
今回も、ロボットシミュレーションを紹介するため、たくさんのサンプルファイルを用意しています。これらのファイルは(ODE_sample program.zip)からダウンロードしてください。そして、連載第1回で説明したように新しいプロジェクトを作ってプログラムを試してみてください。なお、各プログラムの初めに使用方法が説明されていますので必ずお読みください。
ロボット研究をはじめた理由 ~受動歩行機
私がロボット研究開発をはじめたのは、大学4年生の時、東京理科大学・工学部・小林研究室(http://www.kobalab.com/)に配属されたことがきっかけです。そこで私はロボットの知識がほとんどないまま、二足歩行ロボットの研究開発をすることになりました。
一般に二足歩行ロボットと言うと、ASIMOなど、関節すべてを位置制御され安定歩行を実現するロボットをイメージされるかと思いますが、私の研究対象は、円弧型足がトレードマークの「受動歩行機」というものでした。
受動歩行機(Passive Dynamic Walker)とは、1990年にMcGeerという研究者が開発した二足歩行ロボットで、図1-1のように、特殊な身体構造(円弧型脚・膝ロック・腰自由関節)を有しています。特筆すべきは、センサーとモータを一切持たずに、そのロボットの身体的特徴が、斜面で生じる慣性力や重力を有効利用し、人間のような安定歩行を実現している点です。
なお、McGeerの受動歩行機は、横側に倒れないよう外側の二脚が同期のとれている三脚構造となっていました。(動画:http://ruina.tam.cornell.edu/research/topics/locomotion_and_robotics/history.htm)
これは後に、アメリカのコーネル大学における三次元受動歩行機や、オランダのデルフト大学で製作された、受動歩行機に複数のモータを付けて平面で歩けるようにした準受動歩行機へと発展していきます。
ダウンロードしたファイルの中に、受動歩行機のODEプログラム「pdw.cpp」を用意しましたので、どのようなロボットかご確認ください。
このロボットシミュレーション構築のポイントは、図1-1に示されるように足部が円弧型となっていることで、複数のボックス型物体を等間隔に、角度を付けて並べて円弧型形状を構築する点です。
なお、円弧型足の作成には多くのボックス型を使うことになり、スタッフオーバーフローエラーがおきやすくなります。この問題を解決するには、「スタックのサイズの設定」変更が必要です。図1-2に示すように、ソリューションエクスプローラーの「demo_buggy」で右クリックをし、表示されたウィンドウのプロパティを選択。「構成プロパティ > リンカ > システム > スタックのサイズの設定」を「4000000」などの高い値に設定してください。
ロボットを構成する物体数が多くなる場合は、上記のような設定が必要となりますのでご注意ください。またダウンロードファイルの中には受動歩行機に腰モータ1個を取り付け、平地における歩行を可能とする準受動歩行機「ppdw.cpp」もあります。
これらの二足歩行ロボットは三次元空間で構築していますが、簡易化のため、横に振れる関節を持たず、左右両脚の位置を重ねた二次元的な構造、つまり三次元空間で横方向を無視した二次元の二足歩行モデルとなっています。このプログラムをもとに、ぜひ三次元構造にも挑戦してみてください。