91robotsimuの最近のブログ記事
ODE本ではページ数の制限もあり開発環境についての説明が一切ないので、このウェブサイトで説明しています。
全くの初心者にとっては開発環境のインストールと使い方を覚えることが第1の関門でしょう。ここでは、今まで触れてこなかったテキストエディタについて説明します。
自分でプログラムを書くときに、ワードのようなソフトが必要です。プログラムは文字だけで構成されているのでメモ帳やワードパッドでも編集は不可能でありませんが、効率的ではありません。テキストエディタはプログラムのソースコードを編集する専用のソフトで、便利な機能があるためプログラム作成が効率的になります。
私はemacsやviを使っており、慣れると非常に便利ですが、初心者には敷居が高いものです。そこで、私の講義では寺尾進さんが開発されたterapadというフリーのソフトウェアを使っています。メモ帳やワードパッド等とほぼ同じ操作なので簡単に利用でき、初心者にやさしいソフトです。
では、TeraPadをインストールしましょう。
ODE本の正誤表です.本当にすみませんが,以下の修正をお願いします.また,誤りを見つけた方はコメントに書いて頂ければ反映していきたいと思います.
最近発見した誤りは、P112のdMassSetCylinderTotalの引数です。3番目の引数は円柱の長軸方向を指定します。y軸を中心に円柱を90度回転した姿勢を初期姿勢に取ったので、 初期姿勢はx軸方向、つまり1となります。
また、大きな誤りは「ねぶらさん」からご指摘頂いたP130のホロノミックとノンホロノミックの説明が逆になっている箇所です.ごめんなさい.お詫びして訂正します.
なお,誤りではありませんが,本中のサンプルプログラムは完全なソースコードではなく,主要な部分しか掲載していませんので,そのままではコンパイルできません.本サポートサイトから完全なコードをダウンロードしてコンパイル・実行してください.
| 場所 | 誤 | 正 | 発見者 |
| P25 プログラム75行目 | dSpaceDestory | dSpaceDestroy | でむ |
| P25 下から6行目 | ントball.bodyを球leg.bodyとカプセル | ントjointを球ball.bodyとカプセル | ジミー |
| P26 8行目 | 指定されたタイプの新しい | 新しいヒンジ | でむ |
| P35 プログラム3行目 | 25.0 | 25.0; | でむ |
| P38 プログラム74行目 | -0.5)); | -0.5); | でむ |
| P61 1行目 | 4. EPRの設定と取得 | 4. ERPの設定と取得 | ひびきの |
| P66 10行目 | dMasSetCylinder | dMassSetCylinder | チップ |
| P66 14行目 | 構造体massにに密度d, | 構造体massに密度d, |
ジミー |
| P79 7行目 | dGeomTriMeshDateCreate() | dGeomTriMeshDataCreate() | ひびきの |
| P84 8行目 | dJointTypeRR | dJointTypePR | でむ |
| P112 プログラム29行目 | (&mass, WH_M0, 2, WH_R0, WH_W); | (&mass, WH_M0, 1, WH_R0, WH_W); |
チップ&でむ2007-12-25 |
| P112 プログラム34行目 | (&mass, WH_M1, 2, WH_R1, WH_W); | (&mass, WH_M1, 1, WH_R1, WH_W); | チップ&でむ 2007-12-25 |
| P127 下から1行目 | ここではxしか | ここではyしか | でむ |
| P128 上から1行目 | ので,yと | ので,xと | でむ |
| P130 下から4行目 | 動けない移動 | 動ける移動 | ねぶら |
| P130 下から2,3行目 | 動ける全方位移動機構 | 動けない移動機構 | ねぶら |
| P165 プログラム60行目 | rlink[j-1].body, rlink[j].body | rlink[j].body, rlink[j-1].body | でむ |
| P167 下から8行目 | リンク4 | リンク4を削除 | ジミー |
| P169 プログラム18行目 | sensor_joint, link | sensor_joint, rlink | でむ |
| P178 8行目 | 式(6.48) | 式(6.92) | ジミー |
| P182 8行目 | control関数 | Pcontrol関数 | ジミー |
| P185 下から3行目 | dy/dθ1= L2C1S2-L3C1S23 | dy/dθ1= L2C1S2+L3C1S23 | ジミー |
| P186 式(7.7)の下 | 線形方程式 JPdot = θdot | 線形方程式 Jθdot = Pdot | ジミー |
| P209 下から8行目 | つまり、z1-z0は脚先を | つまり、z0-z1は脚先を | ジミー |
| P219 |
(9.7)式の1、2行目の左丸括弧が余分 |
(9.7)式の | ひびきの |
| P221 式(9.18) | φ= atan2((P5x)^2, sqrt(P5z + (P5y)^2))) | φ= atan2(P5x, sqrt((P5z)^2 + (P5y)^2))) | ジミー |
| P227 プログラム32行目 | k1 * (fz[i] + pos[2]) | k1 * fz[i] + pos[2] | ねぶら |
| P228 9.7節の2行目 | ZMPを求めるには式(9.29)と(9.30) | ZMPを求めるには式(9.27)と(9.28) | ジミー |
| P235 2行目 | b= (ax, ay, az)T | b= (bx, by, bz)T | でむ |
| P236 下から9行目 | b= (ax, ay, az)T | b= (bx, by, bz)T | でむ 2007-12-25 |
(最終更新日 2007-12-25)
昨日、出版社から印税が振り込まれました。それによると発刊部数が2475部、在庫相当部数が833部なので、差し引き1642部売れたことになります。
ODE本ではユニークな特徴として「ODEプロジェクトへの寄付」があります。そこで、本書の売り上げ1冊につき1ドルを寄付すると謳っています。従いまして、ささやかなクリスマスプレゼントとして1642ドルをODEプロジェクトへ本日寄付しました。
この本はODEに対する私の感動体験(グラフィクスが美しく、とても簡単)から生まれたものです。ロボティクスの基礎とそのプログラミングを同時に学べる実践書です。大学低学年、高専生向けに書いており、私は学部2,3年の講義に使っています。学生からの評判もまずまずです。
来年はもう少し寄付できたらと思いますので、今後とも皆様のご協力をお願いします。
読者の皆様のおかげで、ODE本の3刷1500部が決定しましたのでご報告します。
先日、出版社の方がKITまで来られたので、ODE本の現状を教えて頂きました。今まで、初版と重版を併せて2500部発刊されました。出版社の倉庫に約300部、他に本屋の棚に眠っている本もあるので詳しい数はわかりませんが、約1700部は売れたのではないかということです。
今後ともよろしくお願いします。
ODE本に関する講義(ロボットプログラミング)で使用したパワーポイントを以下に置いておきますので、よかったら使ってください。自信を持って公開できるレベルではありませんが、講義や勉強会の叩き台としてなら利用できると思います。少しずつ改良してきたいと思います。
非営利的な教育用途なら改変、再配布してかまいません。
出張、お盆などがありしばらく更新できないかもしれませんので、この記事をトップページにしておきます。
ODE本「簡単!実践!ロボットシミュレーション - Open Dynamics Engineによるロボットプログラミングはじめはリンゴの落下を例に取りODEの使い方を学び、車型ロボットではセンサを装備するために絶対座標と相対座標の変換、自分の位置を知る方法、障害物回避、物体の追跡方法を学びプログラムします。ロボットアームではロボット工学の基本となる関節の角度と手先位置の関係、希望する位置に手先を持っていくための関節角を求める方法を学びます。次の4脚ロボットでは脚で移動するロボットの基本を学び、プログラム演習します。最後は、かわいい男の子をイメージしたヒューマノイドロボット「けんせいちゃん」を歩かせることが最終ミッションです。
ODE本で勉強すれば、上に示す3Dグラフィクスを使ったシミュレータ(ODE本で説明する全シミュレータです)を作ることができるようになり、ODEの基本的な使い方もマスターできます。ODEの総合的な解説書としては本書が世界初だと思います。ODEのような物理計算エンジンはリアルなゲームを作るためには不可欠なものになっています。今やリアルなゲームを作るためにもロボット工学の知識と物理計算エンジンを使えることが必要なのです。あなたも仮想空間でロボットを動かしてみませんか。
ODE本「簡単!実践!ロボットシミュレーション - Open Dynamics Engineによるロボットプログラミング
」のStep9です.
最終章です.ここでは,やんちゃでかわいい男をイメージしたヒューマノイドロボットモデル「けんせいちゃん:Kensei-Chan」の運動学,逆運動学を求め,足裏に圧力センサを取り付け,ZMPによる簡単な歩行制御により歩かせることが最終ミッションです.
動画を上に,ソースコードを以下に掲載します.zipで圧縮されているソースコードはここを参考にして解凍・コンパイル・実行してください.
- EX9.3: ヒューマノイドモデル 「けんせいちゃん」 (P223)
- 説明:Controlキーを押しながらpキーを押すと,kensei-chanがジャンプし着地します.ただし,ODE本では跳躍制御は全くふれていませんのでこれは単なるデモです.初心者向けの本なので過度の期待をなさらぬようお願いします(笑い).「けんせいちゃん」に歩行制御を組み込み無事歩かせてください.
- ソースコード:kensei070619.zip (2007-6-19)
- プログラム9.1: 力・トルクセンサ (P227)
- 説明:ヒューマノイドロボットには欠かせない圧力,トルクセンサの実装例です.
- ソースコード:pro9-1-070702.zip (2007-7-2)
ODE本P227のプログラム32行目に誤りがありましたので訂正しました.ねぶらさんご指摘ありがとうございました.
なお,本サンプルプログラムのコンパイル・実行は自己責任で行ってください.特に,本物のロボットに適用するための安全性などを全く考慮していませんので,そのような用途には向きません.また,教育目的のシミュレータであるため,精度を必要とするような研究の用途にも向きません.あくまで,教育目的とお考えください.著者及び森北出版は本プログラムによって生じたあらゆる結果についての責任を負いかねます.ご了承した方だけダウンロードしてください.また,再配布はお止めください.
ODE本「簡単!実践!ロボットシミュレーション - Open Dynamics Engineによるロボットプログラミング
」のStep8です.
ここでは,4脚歩行ロボットについて学びます.クロール,ウオーク,トロットなどの代表的な歩き方を学び,4脚ロボットのモデルを作り,それにクロール歩行を実装します.続きはODE本で...
以下に動画とソースコードを掲載します.zipで固められているソースコードはここを参考にして解凍・コンパイル・実行してください.
- プログラム8.1: 4脚ロボットの歩行制御 (P210)
- 説明:上の動画では体を左右にふって転ばないように歩いています.パラメータを調整していないので,歩き方がぎこちないです.これをスムーズに歩かせることが,あなたのミッションです.
- ソースコード:pro8-1.zip (2007-5-19)
なお,本サンプルプログラムのコンパイル・実行は自己責任で行ってください.特に,本物のロボットに適用するための安全性などを全く考慮していませんの で,そのような用途には向きません.また,教育目的のシミュレータであるため,精度を必要とするような研究の用途にも向きません.あくまで,教育目的とお 考えください.著者及び森北出版は本プログラムによって生じたあらゆる結果についての責任を負いかねます.ご了承した方だけダウンロードしてください.ま た,再配布はお止めください.
ODE本「簡単!実践!ロボットシミュレーション - Open Dynamics Engineによるロボットプログラミング
」のStep7です.
Step7では関節角速度と先端速度の関係を勉強します.ここを勉強すると何故多くのヒューマノイドロボットの膝が曲がっているかがわかります.続きはODE本で...
なお,このステップはソースコードがありませんが,おまけとして動画を掲載します.上の動画は,多くのロボット工学の教科書に載っている特異点付近でのロボットアームの挙動を観察するシミュレーションです.特異点近傍では関節の角速度が非常に速くなっていることがわかると思います.読者の皆さんも是非プログラムして観察してください.
(最終更新日 2007-6-15)
