ODEでロボットシミュレーション開発環境を構築しよう!

2009年6月1日(月)
松下 光次郎

はじめに~Open Dynamic Engine(ODE)とは

 Open Dynamics Engine(以下ODE)は、オープンソースの3次元剛体動力学シミュレーターライブラリでありOpen Dynamics Engineのサイト(http://www.ode.org)から無料でダウンロードできます(図1-1)。ODEは高速な情報処理能力・3次元描画機能がついていることもあり、ゲーム開発やロボット研究開発で多く利用されています。筆者も長年にわたる脚移動ロボットの研究開発で利用しています。

 そこで本連載では、筆者のロボット研究開発で積み重ねたロボットシミュレーション技術のノウハウをお伝えいたします。

 本連載は、Windows XP上でのロボットシミュレーション開発環境の構築方法を5回にわたって説明していきます。なおWindows Vistaを使っているとしても大きな違いはないと思いますので、本連載内容は十分役立ちます。また筆者のロボットシミュレーション開発環境は、インターネットより無料でダウンロードできる「ODE0.11」と「Visual C++2008 Express Edition」を使用した、完全無料でのロボットシミュレーションを提案しているので、老若男女問わず、パソコンさえあれば誰でも気軽に始められます。

 第1回である今回は、ODEを利用したロボットシミュレーション開発環境の構築方法をお伝えいたします。第2回以降はロボットモデルの構築法やロボットの制御に不可欠なセンサーの構築方法、また近藤科学のヒューマノイドロボット「KHR」のロボットシミュレーション(図1-2)の構築方法、デモプログラムを紹介しながらの脚移動ロボット(図1-3)研究の最前線などについて、詳しく解説していく予定です。

ブロック遊びの感覚でロボットシミュレーションができる

 一般に剛体動力学シミュレーションを構築する場合、ニュートン・オイラー法やラグランジュ法などの動力学計算法が用いられます。その際に、(1)ロボットモデルの構想、(2)モデルの微分方程式の導出、(3)微分方程式と制約条件からの解の導出、(4)数値計算プログラムの作成、(5)描画プログラムの作成、というような複数のプロセスが必要となります。そのため、ロボットモデルが複雑な構造になるほど技術的な難しさも高まりますし、構造の変更となると初めからの作り直しとなってしまうので、目的とするシミュレーションを実現するために膨大な知識と時間が必要となります。

 それに対しODEは衝突法という動力学計算法を採用することで、複雑な方程式の算出を必要とせずにすみます。ブロックで遊ぶイメージで体節部や関節部の取り付け方(位置・角度情報)を考え、体節部の種類・位置・角度、関節部の種類・位置・角度をプログラムに記述するだけで、簡単にロボットモデルを構築することが可能なのです。さらには体節部の位置・角度情報の受け渡しのみでロボットモデルが3次元描画されるなど、迅速かつ柔軟なロボットシミュレーション構築が可能です。

 ただODEの近似精度はオイラー法の1次相当であるため、あまり良い精度とは言えず単純なモデルの動作解析には不適となります。しかし、方程式の解の導出が難しい、複雑なロボットモデルのシミュレーション、ロボットの制御法や機構構造を自動探索するために高速情報処理が要求されるシミュレーションを構築するには、極めて有効な動力学計算法と言えます。

電気通信大学
電気通信大学 電気通信学部 知能機械工学科特任助教。脚移動ロボットや電動装具の研究開発の経験を生かし、近年、ロボット教育に力を入れている。特に中学生・高校生に科学技術への興味をもってもらうため、安価なロボット開発法をWebサイト(http://www.koj-m.sakura.ne.jp)にて紹介することや、ものづくり体験型の講演活動を積極的に行っている。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています