2009年04月20日

Irrlicht+BulletでRagdollの途中経過

時間が経つのが早くて困ったものです。

いつの間にかPhysXの日本語の本が出てますね。

物理エンジンPhysXプログラミング
http://www.kohgakusha.co.jp/books/detail/978-4-7775-1436-6

とりあえず買ってみようかなーと思います。
本をいっぱい買うけれど消化できていない気がする今日この頃です。

前回はIrrlichtのBone状態をBVHファイルで更新してみたので、今度はBulletのRagdollの状態を反映させてみようかと思っています。

Ragdoll自分で作るのが面倒なので、BulletのappRagdollDemoを改変して作っています。そのためBulletの画面とIrrlichtの画面の2つウィンドウが出ちゃってます。まぁデバッグしやすいのでいいのですが。

Bulletの画面ではRagdollのカプセルの座標に緑色の球、Constraint(Joint)の位置に赤色の球を表示しています。

Irrlichtの画面ではまだRootの位置姿勢しか合わせていないので、これから他のボーンも合わせていく予定です。Irrlichtは親ボーンからの相対座標系で姿勢を表しているので、Bulletで取得したConstraintとカプセルの位置を相対座標系に変換して合わせればいいのですがこれまたちょっと面倒ですね。

座標系合わせてなかったりIrrlichtの方の位置座標を定数倍していたりいつものように適当です。

実行画面だけ載せても参考にならないのでプログラムの説明を・・・完成したらするかもしれません。

実行画面



web拍手 by FC2
posted by シンドラー at 23:13 | Comment(0) | TrackBack(0) | Irrlicht | このブログの読者になる | 更新情報をチェックする

2009年04月01日

遺伝的アルゴリズムでPID制御係数の学習

いつの間にか4月になってしまいました。
困ったものです。

ついでにこの記事で記事数が100になりました。
いいことです。

ニコニコで面白そうな動画がありました。

【人工知能】物理エンジンで人工生命つくって学習させた
http://www.nicovideo.jp/watch/sm6392515

anlifeというシミュレータの動画のようでした。
http://hawaii.naist.jp/~masayoshi-n/anlife/index.php

ODEと遺伝的アルゴリズム(GA)を使っているということでしたので、ちょっとGAについて勉強してみることにしました。

参考図書:図解ロボット技術入門シリーズ ロボットインテリジェンス
http://ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=978-4-274-20398-5

情報工学の人向けではなくロボット工学の人向けということで、内容的には少し物足りない気がしましたが、入門としてはとてもわかりやすかったです。

GAってアルゴリズム的には結構単純で、うまく評価関数作るのが大事そうだなーと思いました。

学習させるネタが特に思いつかなかったので、ODE講座様の3自由度ロボットアームのIKのプログラムで、ヒンジジョイントを動かすP制御の部分をPID制御に変更して、PIDの係数とトルクの最大値の4つを学習するパラメータとして試してみました。

http://demura.net/robotsimu/step6

PID制御のパラメータはわざわざ学習させなくてもステップ応答法とか限界感度法などでチューニングできるみたいですね。

ttp://www.picfun.com/motor05.html

個体20個、遺伝子4種類、遺伝子の値10000種類、一様交叉(30%)、突然変異(5%)で学習させてみました。

パラメータはKp、Ki、Kd、fMaxの4つで、それぞれ0.00〜100.00とか範囲を決めて10000分割した値をとるようにしました。

評価関数(適応値の計算)は、「(打ち切りステップ数+1)−収束までにかかったステップ数」としました。

打ち切りステップ数までに収束しなければ1、早く収束すればするほど適応値が高くなるとしてルーレット選択しました。

実行結果

学習中

学習後のパラメータでのテスト


初期では振動したり収束するまで時間がかかったりしていますが、数十世代でそれなりの係数が得られています。

Q学習とかベイズ学習とかも勉強して、Sumotori Dreamsみたいなのが作れたら面白そうかもしれません。

これが何を使っているのか知りませんが。

Sumotori Dreams
http://www.nicovideo.jp/watch/sm212128


web拍手 by FC2
posted by シンドラー at 23:20 | Comment(0) | TrackBack(1) | ODE | このブログの読者になる | 更新情報をチェックする