2009年09月27日

ぐりぐり動かしたい

今週は2日間のみで、また休みに入ってしまうとあんまり調子も上がらないです。
と言いつつ、色々とやらねばなりませんね。


現在作っている二足歩行ロボットのプログラムは、現在モーション実装の基礎段階。
前々から逆運動学担当の方で、今回製作中のロボットについて、逆運動学を解いて歩かせるという目標を掲げています。


 順運動学から逆運動学を解いて、どのように歩かせるかが問題です。
逆運動学を解いてからは、メンバーのAdldがパソコン上で実行できるプログラムを製作しています。
現在はOpenGLでリンクを描画し、画面上でリンクの動作を表現しています。

参考に動画を載せておきます。

(WMV形式1.12MB)
上の動画で、ボールが足の軌道の目標、棒がそれぞれのリンク、リンクの関節上にあるボールが軸です。


このプログラムで実現していることは、「空間上の適当な座標を設定すると、各関節が自動的に角度を決定し、足先がその座標位置に移動する」ということです。そのため、適当な軌道を入力すると、その軌道をトレースする各関節の角度を自動で算出してくれます。
マイコン上で処理することを考えて、リンクの動作自体は整数型で行い、三角関数等も1000倍して、角度は0.5度刻みで指令を出すようにしています。そのため、リンクの動作が滑らかではなく、カクカクした動きになっています。
ちなみに、動画の足の軌道は 適当に計算式を代入したものらしいです。
詳しくはそのうちプロジェクトのブログにでも書かれるんじゃないかな。きっと。

 


で、ここまでの成果から私のすべきことは、これを実機に実装することです。
仕組みとかアルゴリズムは理解しました。
そこからマイコン、システムの仕様に合わせてプログラムを変更したり、 処理を効率化させたりしています。


一番の問題は、サーボへの指令値と実角度が都合のいい数値になっていないことです。
マイコンへの指令値が10変わると、実角度は約0.337度変化します。
PWMよりかなり精度は良い指令が出せるのですが、相互変換はちょっとめんどくさい。有る程度妥協しなくちゃいけないけれど、なるべく綺麗に動けるようにしたいなぁ。

PS2PADのアナログスティックで、ぐりぐり足先の位置を変えられるようになったら面白いので、それを目指してプログラミング中です。

Adldさんへ
動画エンコードしときました。


↑の動画は、銅の塊を適当な板(アルミにクッションつき両面テープを貼って、バネ鋼をはりつけたもの…だっけ?)に倒してみたもの。
なぜか部室にある投光器を接地して、高速カメラ撮影してます。
デカイ銅なので、さすがに殆ど歪まないですね。 

posted by Tmk at 01:18 | Comment(2) | 二足
この記事へのコメント
どうもありがとうございます。いろいろと無理を聞いてもらって。
 一つ不思議なことが、足の動画はいったいどうやって撮ったですか。なんで音がするんですか?なんか宿っちゃったんですかね。
Posted by Adld at 2009年09月27日 20:59
ググったら、こんなものが出てきたんだよ
http://amamaman.hp.infoseek.co.jp/
Posted by Tmk at 2009年09月28日 00:06
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]