Open Dynamics Engine(ODE)は2001年にRussell Smithさんがリリースし、私は2001年からロボットの教育・研究用に使ってきました。今ではGazeboシミュレータのデフォルトの物理エンジンとして採用されるなど広く使われており、ユーザがODEのAPIを使ってコーディングする必要性は少なくなりました。ODE自身もバージョン0.13.1(2014年3月18日)からしばらくアップされていませんでしたが、久しぶりに授業の教材として使おうと思い調べたところバージョン0.16.1(2020年2月19日)にリリースされていました。インストール方法などが随分変わっているので2回「開発環境とインストール」を更新しました。(2020-06-21)
demura.netで連載しているODE講座から初めてOpen Dynamics Engine (ODE)を学ぶ方に関する記事を取り上げ体系化した「ODE初級講座」です.
回 | タイトル | 内 容 | スクリーンショット |
1 | ODEとは | オープンソースの動力学計算エンジンOpen Dynamics Engine (ODE)の概要と特徴を説明します. | |
2 | 開発環境とインストール | ODEを使うための開発環境の設定,ODEのインストール方法を説明します.さらに,ODE本サンプルプログラムと自作プログラムのビルド法についても説明しています.(2020-06-25更新) | |
3 | こんにちは物理世界 | ODEを使ったシミュレーションの流れを,動力学計算を中心に代表的なAPIと関連付けて説明し,サンプルプログラムとして球の自由落下を取り上げます. | |
4 | 3D グラフィクス | 付属の3Dグラフィクスエンジンdrawstuffの使用法について説明します. | |
5 | ボディ(剛体)とジオメトリ | ODEの物体には動力学計算の対象となるボディと衝突検出計算の対象となるジオメトリの2つの属性があります.ODEで扱う物体の作り方を説明します. | |
6 | 衝突検出 | 衝突検出の方法について説明します. | |
7 | ジョイント(関節) | ジョイント(関節)について説明します.ODEのジョイントは2つの剛体の運動を拘束するものです.ジョイントの作り方,使い方を学びましょう. | |
8 | ERPとCFM | ODEを使いこなす上で必要なパラメータERP(Error Reduction Parameter, 関節誤差修正パラメータ)とCFM(Constraint Force Mixing, 拘束力混合パラメータ)について説明します. | |
9 | 位置と姿勢 | 座標系,単位系並びに剛体の位置と姿勢の設定・取得方法について説明します. | |
10 | 速度と加速度 | 速度,角速度,加速度,角加速度について説明します. | |
11 | 力とトルク | 剛体並びに関節にかかる力・トルクの設定・取得法を説明します. | |
12 | 摩 擦 | 摩擦について説明します.ODEの摩擦モデルはクーロン摩擦を近似したものです。 | |
13 | 簡単な制御 | 今まで学んだことを総動員して簡単な制御(速度制御,比例制御)を使い,ロボットアームのプチシミュレータを作成します. | |
14 | 描画をしないでスピードアップ | シミュレーションを高速化するために,drawstuffによる描画をしないでシミュレーションを実行する方法を説明します. | |
15 | キーボード操作と再実行 | シミュレーション中にキーボードからの入力を受付けたり,再実行する方法を説明します.これにより,インタラクティブなシミュレーションが可能となります. | |
付録 | API集 | Open Dynamics Engineの主要なAPI集です.完全なAPI集ではありませんが, 参考になることを願って掲載します.時間を見つけてブラッシュアップしていきたいと思っています. |