ヒト型ロボット 62 全身IKを実装
OpenHRP3のソースコードを参考にして全身逆運動学を実装しました。

産総研によるコードと、東京大によるコードを混ぜ合わせました。
基礎となるリンクの構造や、順運動学などは、産総研によるコードを主に参考にさせてもらっています。
ヒューマノイドロボット(オーム社)に載っていたコードに近いものなので、理解しやすいです。
全身IKは東京大による実装を参考にしていますが、コードを読んでも難しくてよくわからなかったので、元の論文を参考にして何とか実装してみました。
山根,中村: "ヒューマンフィギュアの全身運動生成のための協応構造化インタフェース,"
日本ロボット学会誌, vol.20, no.3, pp.113-121, 2002.
重み付き擬似逆行列や関節の稼動範囲の考慮など一部機能は、まだ実装していません。
不完全な実装なので、計算が安定しないです。
姿勢がグニャグニャ。

産総研によるコードと、東京大によるコードを混ぜ合わせました。
基礎となるリンクの構造や、順運動学などは、産総研によるコードを主に参考にさせてもらっています。
ヒューマノイドロボット(オーム社)に載っていたコードに近いものなので、理解しやすいです。
全身IKは東京大による実装を参考にしていますが、コードを読んでも難しくてよくわからなかったので、元の論文を参考にして何とか実装してみました。
山根,中村: "ヒューマンフィギュアの全身運動生成のための協応構造化インタフェース,"
日本ロボット学会誌, vol.20, no.3, pp.113-121, 2002.
重み付き擬似逆行列や関節の稼動範囲の考慮など一部機能は、まだ実装していません。
不完全な実装なので、計算が安定しないです。
姿勢がグニャグニャ。
ヒト型ロボット 60 OpenHRP3
二週間くらい前からOpenHRP3のソースコードを読んで勉強しています。
今は、東京大学で実装された、全身運動生成の逆運動学を勉強しているところです。
難しくて頭が痛くなりますが、たいへん勉強になります。
OpenHRP3自体のインストールはまだしていません。
今はまだbeta4なので、正式版がでたらインストールするつもりです。
今は、東京大学で実装された、全身運動生成の逆運動学を勉強しているところです。
難しくて頭が痛くなりますが、たいへん勉強になります。
OpenHRP3自体のインストールはまだしていません。
今はまだbeta4なので、正式版がでたらインストールするつもりです。
NaNのメモ
C/C++でNaNを検出するにはisnan()を使えばいいらしい。
Octave高速化
ATLASとやらをインストールすると、Octaveの行列演算が高速化するらしいです。
試してみました。
OctaveもATLASもSynaptic パッケージ・マネージャからインストール。
バージョンは
Octave3.0.5
libatlas3gf-sse2
環境は
OS: Ubuntu 9.10
CPU: AMD Athlon2 X2 240e (2.8GHz)
メモリ: 2.0GB
ATLAS導入前
octave:1> A = rand(2000, 2000);b=rand(2000,1);
octave:2> tic;A\b;toc
Elapsed time is 2.48691 seconds.
ATLAS導入後
octave:1> A = rand(2000, 2000);b=rand(2000,1);
octave:2> tic;A\b;toc
Elapsed time is 1.09443 seconds.
なんと2倍以上高速化。すごい。
参考にさせていただいたサイト様。
Debian(lenny)パッケージによるliboctaveインストールと使い方
試してみました。
OctaveもATLASもSynaptic パッケージ・マネージャからインストール。
バージョンは
Octave3.0.5
libatlas3gf-sse2
環境は
OS: Ubuntu 9.10
CPU: AMD Athlon2 X2 240e (2.8GHz)
メモリ: 2.0GB
ATLAS導入前
octave:1> A = rand(2000, 2000);b=rand(2000,1);
octave:2> tic;A\b;toc
Elapsed time is 2.48691 seconds.
ATLAS導入後
octave:1> A = rand(2000, 2000);b=rand(2000,1);
octave:2> tic;A\b;toc
Elapsed time is 1.09443 seconds.
なんと2倍以上高速化。すごい。
参考にさせていただいたサイト様。
Debian(lenny)パッケージによるliboctaveインストールと使い方