2006年8月24日 (木)

軸配置を考慮したシミュレーション

軸配置を考慮したシミュレーションを行ってみました。足をそろえるときに状態が大きく動く結果になったのですがこれであっているのかな?と思いつつ実装してみたいと思います。軸配置が非直交軸、非同一リンク長であっても計算できることがわかりましたがやや面倒くさいです。

Offset_invkinematics

| | コメント (0) | トラックバック (0)

2006年7月15日 (土)

Octaveによる計算歩行の確認

逆運動学の中でも足の長さを同じにした簡易計算歩行としてまずはこちらからトライしてみようと思います。

これが既に第3回のテクニカルカンファレンスで紹介されていたんですね。
規定演技が「走る」や「うさぎ跳び」だというのに私はまだまだROBO-ONEの歴史の復習中といった感じです。

OctaveにてどのようにCで実装するかを検討してみました。
とりあえずあまり難しいことは考えずに、パラパラ漫画方式のパラメータを計算で算出する方向で計算してみました。

直立→左足前上げ→左足接地→右足後上げ→右足中上げ→右足前上げ→右足接地→左足後上げ→左足中上げ→左足前上げへ・・・

といった感じでそれぞれのポイントでの足の関節角度を計算で算出しています。前と後ろに開く歩幅は同じ、両足の重なったときの足の高さが一番高くなるように計算してみました。みなさんはこのあたりはどのように計算されているんでしょうかね?それからとりあえずXZ方向の計算だけを確認してみました。Y方向はゆらゆらゆれるだけなのでこのような確認はいらない気がします。

それにしてもOctaveってすごいです。しちめんどくさい行列計算とか三角関数計算とか
さらさらっと書くだけでこんな風に確認できるんですから。
正直いって数学はあまり好きではないのですが、こうやって目で見える形でわかると
計算式の確認とかもいつもよりは気合をいれてやれます。おかげで理解も深まりました。

まだまだナゾが多くてなんとなくで使っているのですがこのまま
Cで実装できたらよいのにと思うほどです。

とりあえずこんな感じです。当たり前ですが歩幅や足上げの数値を変えればいろいろな動作を生成できます。描画の仕方を工夫して前に進んでいるかのようにしてみました。ちょっとずれているところもありますが雰囲気が大切ってことで深追いしていません。なんとなく左から右へ2歩歩いているような感じなのがわかりますでしょうか?

歩幅=40mm 足上げ=30mm

X40mm_z30mm

歩幅=60mm 足上げ=20mm

X60mm_z20mm

歩幅=80mm 足上げ=40mm

X80mm_z40mm

| | コメント (0) | トラックバック (0)

2006年7月11日 (火)

Octaveにおける逆運動学

そろそろモーション作成をと考えるにあたって計算歩行について調べてみました。調べたといってもRoboーoneのための二足歩行ロボット製作ガイドROBOCON Magazine No.31を読んだだけです。あ、ヒューマノイドロボットも読まないといけませんね。(リンクは楽天のアフェリエイトになっています)

ロボコンマガジンNo.31の方はOctaveを使って逆運動学についての解説がされています。これだけの説明では決してやろうと思いませんでしたが、アトリエロボットの杉浦登さんが今ロボコンマガジンで連載している「制御の道は1日にしてならずぢゃ」で使われているOctaveを既にインストールして動作させたことがあるものですからさくっとmファイルを作って自分なりに改造して試してみました。

なんかなんとなくそれっぽくなっています。とりあえず一方の足を上げて前にだすと同時にもう片方の足を後ろに下げるといったものを逆運動学を使ってOctaveで計算させてみました。ロボコンマガジンNo.31での解説に従って今回は開始と終了の位置を指定してそれを直線補間していますが、逆運動学の計算自体は各プロットごとに行えるので曲線に置き換えるのも簡単にできると思います。

逆運動学ってすごい遠い存在でしたがこうやって目で見える形になるととっても身近に思えてきました。noboさん!次のネタはこれですよ、きっと。これでモーション用のスクリプトとかはけるようになったらパラパラ漫画方式の人にも使えるようになって、ハッピーになる人はかなりいるに違いありません。是非、次の連載のネタに検討していただければと思います。ソースも公開しておきます。

「060711octave.zip」をダウンロード

Octave_inv_kinematics

| | コメント (0) | トラックバック (0)