2010年05月02日

Carryon2 Inverse Kinematics 3

この前解いた逆運動学解を使ってみた

式はこんな感じ

Carryon2_theta.png

これらの±のところをプラスで, 初期姿勢の時の足先位置を調べといて, その位置に対する関節角度を求める.

すると,

想定していた角度とは違う解が出た

本来は
theta0 = 120
theta1 = 0
theta2 = -40

今回のは

theta0 = 90 (整数値)
theta1 = 0
theta2 = 40


それをsimulationでみると手先位置は同じになっていた


2010_05_02_Carryon2_Simuなんか違ったやつ.png


関節の角度に注目すると, theta2が40度で本来の角度と符号が逆になっている

この逆運動学解はtheta2から求まるから, theta2の符号を逆にしてみる


2010_05_02_Carryon2_IK.png

うまくいきそうだ

よってシミュレーションで使う式は


Carryon2_thetaVer2.png

とりあえず, atan2のプラスマイナスをどうやって選ぶかを理解しないと危なそう
posted by CODE-440 at 15:41| Comment(0) | TrackBack(0) | Carryon2 | このブログの読者になる | 更新情報をチェックする

2010年04月17日

Carryon2 Inverse Kinematics 2

Carryon2 の脚の逆運動学が解けた. 以下のようになった.

Carryon2_theta0.png


Carryon2_theta1.png

Carryon2_theta2.png

これをもとに足先を制御するプログラムを考えていく



posted by CODE-440 at 16:29| Comment(0) | TrackBack(0) | Carryon2 | このブログの読者になる | 更新情報をチェックする

2010年03月22日

Caryon2 Programing 15


歩行の処理方法を変更した.

それまでは最初から最後まで一つの処理だったので, 途中で止まるみたいなのはできなかったが, 細かくモードを分けることによって途中で止まったりできるようになった.

posted by CODE-440 at 21:28| Comment(0) | TrackBack(0) | Carryon2 | このブログの読者になる | 更新情報をチェックする

2010年03月20日

Carryon2 Programing 14

なんか変なのできた



ちなみにGWSの速度
0.33秒/60度(4.8V)
posted by CODE-440 at 17:23| Comment(0) | TrackBack(0) | Carryon2 | このブログの読者になる | 更新情報をチェックする

2010年03月18日

Carryon2 Inverse Kinematics 1

三角関数の性質を使って解いていくと,

式.bmp

とりあえずθ2がもとまった.

posted by CODE-440 at 21:51| Comment(0) | TrackBack(0) | Carryon2 | このブログの読者になる | 更新情報をチェックする

2010年03月17日

Carryon2 Inverce Kinematics


逆運動学を解くためにこの前求めたx, y, zを自乗して足す.

Carryon2_xyz_square.bmp

すると,

Carryon2_xyz_square_solution.bmp

この後三角関数を使ってさらに解いていく.

posted by CODE-440 at 21:45| Comment(0) | TrackBack(0) | Carryon2 | このブログの読者になる | 更新情報をチェックする

2010年03月16日

Carryon2 Programing 13

重心移動を意識したモーションを考えてみた.

ちなみに初期姿勢の足先位置を平行四辺形や台形にするといいらしい.[1]

walkModel2.2.png

そして実際に動かした.





まだ汚いがだいぶましになった気がする.


[1] 中野榮二, 小森谷清, 米田完, 高橋隆行, 大学院情報理工学4 高知能ロボティクス, 講談社
posted by CODE-440 at 13:45| Comment(0) | TrackBack(0) | Carryon2 | このブログの読者になる | 更新情報をチェックする

2010年03月11日

Carryon2 Direct kinematics

リンクパラメータを用いて左前脚の位置P=[px, py, pz]'を求めると,
2010_03_11_Carryon2_FLegL_PositionVector.bmp

次は逆運動学を求める.

ちなみにプログラムによるシミュレーションとScilabの計算が一致.


2010_03_11_Carryon2DirectKinematics.jpg

プログラムによるシミュレーションはマイナスを表示できてないが気にするな.


posted by CODE-440 at 17:16| Comment(0) | TrackBack(0) | Carryon2 | このブログの読者になる | 更新情報をチェックする

2010年03月10日

Carryon2 Programing 12


昨日のリンクパラメータを使って手先位置を求める.

が, 時間内に終わらなかった.

posted by CODE-440 at 21:52| Comment(0) | TrackBack(0) | Carryon2 | このブログの読者になる | 更新情報をチェックする

2010年03月09日

Carryon2 Programing 11

初期姿勢を変更したのに合わせて, シミュレーターもちょっといじった.

まず, この前書いたサーボの回転方向に合わせたリンクパラメータを設定.

Table.1 Link parameter of left front leg
2010_03_09_Carryon2_Parameter.bmp

これを同時変換の一般形に入れる. (下の式)

General form of Homogeous transform.bmp

ここで, Si=sinθi, Cα=cosαのような意味.

これをもとに手先位置を求める式を導出する.

ちなみにパラメータを基にロボットを描き, 初期姿勢を入れるとこうなる.

2010_03_09_ProgramingOfCarryon2LinkParameter.bmp

どうやらこのリンクパラメータであってるっぽい.

明日は順運動学と逆運動学を解くはず.

参考:

[1] 吉川恒夫, ロボット制御基礎論, コロナ社
posted by CODE-440 at 21:40| Comment(0) | TrackBack(0) | Carryon2 | このブログの読者になる | 更新情報をチェックする