ロボットシミュレーション ode dynamics engine によるロボットプログラミング

48
ロロロロロロロロロロロロ ODE Dynamics Engine ロロロロロロロロロロロロロロ 2008-6-27 版 版版 版版 版版版版版版版版 () ロロロロロロロロロロロロロ ロロロロロロロロロロロロロロロロロロロロロ ,。 [Web] http://demura.net [Mail] [email protected] Part3: 版版版版版版版

Upload: alma-kirkland

Post on 31-Dec-2015

62 views

Category:

Documents


0 download

DESCRIPTION

ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング. Part3: ロボットアーム. 2008-6-27 版 出村 公成(でむらこうせい). [Web] http://demura.net [Mail] [email protected]. 非営利的な教育目的であれば,このパワーポイントを自由にお使いください。. 教科書. 簡単!実践!ロボットシミュレーション Open Dynamics Engine によるロボットプログラミング 出村公成著 森北出版 2007年5月 ISBN-13: 978-4627846913. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

ロボットシミュレーションODE Dynamics Engine によるロボットプログラミング

2008-6-27 版出村 公成(でむらこうせい)

非営利的な教育目的であれば,このパワーポイントを自由にお使いください。

[Web] http://demura.net[Mail] [email protected]

Part3: ロボットアーム

Page 2: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

教科書• 簡単!実践!ロボットシミュレーション

Open Dynamics Engine によるロボットプログラミング

• 出村公成著• 森北出版• 2007年5月• ISBN-13: 978-4627846913

簡単!実践!ロボットシミュレーションの表紙

Page 3: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

内  容• 1限目

– 位置と姿勢– 運動学

• 2限目 – 逆運動学

• 3限目– 演習

Page 4: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

位置と姿勢• 位 置

– 位置ベクトル P = (x, y, z)T

– 参照点(重心が多い)を指定• 姿 勢

– 回転行列– 有顔ベクトル– ロール,ピッチ,ヨー角– オイラー角

図 6.1 位置ベクトル P   ( 教科書 P146 から転載)

Page 5: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

回転行列• まず,絶対座標系と相対座標系の各軸が一致

している.その後,剛体が姿勢を変え相対座標系の各軸が以下のように変化– i = ( 1, 0, 0)T →   i’ = (r11, r21, r31)T

– j = ( 0, 1, 0)T   →   j’ = (r12, r22, r32)T

– k = ( 0, 0, 1)T   → k’ = (r13, r23, r33)T

• 回転行列

姿勢を表すために9個変数が必要

Page 6: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

z 軸まわりの回転i = ( 1, 0, 0)T →   i’ = ( cosθ, sinθ, 0)T

j = ( 0, 1, 0)T   →   j’ = (-sinθ, cosθ, 0)T

k = ( 0, 0, 1)T   → k’ = ( 0, 0, 1)T

回転行列

図 6.2 z 軸まわりの回転   ( 教科書 P147 から転載)

Page 7: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

P148 EX6.2

• x 軸,y軸まわりの回転行列を求めてください.

Page 8: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

有顔(ゆうがん)ベクトル• 1つのベクトル(主軸ベクトル)とそ

れに直交するベクトル(副軸ベクトル)によって物体の姿勢を表す方法

• 主軸ベクトル– a = (ax, ay, az)T

– b = (bx, by, bz)T

姿勢を表すために6個変数が必要図 6.3 有顔ベクトル  ( 教科書 P149 から転載)

Page 9: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

有顔ベクトル• 回転行列との関係

Page 10: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

ロール・ピッチ・ヨー角• 絶対座標系の x, y, z 軸の順番で回転

– ロール:x軸まわり– ピッチ:y軸まわり– ヨー: z軸まわり

• ロール,ピッチ,ヨーの順番で物体を回転

図 6.4 ロール・ピッチ・ヨー  ( 教科書 P149 から転載)

Page 11: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

ロール・ピッチ・ヨー角• 回転行列との関係

Page 12: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

ロール・ピッチ・ヨー角

式 (6.8) を解くと次式になる  (P150) .

Page 13: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

ZYX オイラー角• 相対座標系の軸で3回回転• 回転する軸の選び方で12種類

– 同じ軸を連続して選んではいけない– XYZ, XZY, XYX, XZX, YXZ, YZX

– YXY, YZY, ZXY, ZYX, ZXZ, ZYZ

Page 14: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

ZYX オイラー角• 相対座標系で Z, Y, X の順で回転

( 教科書 P151 から転載)

Page 15: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

ZYX オイラー角• 絶対座標系の回転行列で計算

重要:相対座標系で各軸の回転行列をかける順番と絶対座標系でかける順番は逆になる

Page 16: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

ZYX オイラー角• EX 6.3

– 定義どおりに計算してみよう– 式 (6.17 )を使うこと

同じになるはず.ただし,計算は大変

Page 17: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

ロボットアーム

( 教科書 P153 から転載)

Page 18: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

ロボットアームの表記

( 教科書 P154 から転載)

Page 19: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

運動学• 関節角から手先位置と姿勢を求める

( 教科書 P154 から転載)

Page 20: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

逆運動学• 手先位置と姿勢から関節角を求める

( 教科書 P154 から転載)

Page 21: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

運動学の求め方(広瀬の方法)

( 教科書 P155 から転載)

Page 22: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

2自由度ロボットアーム P156

• 求めよう

Page 23: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

3自由度ロボットアーム P158

• 求めよう

Page 24: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

6 自由度ロボットアーム P159

• 求めよう

Page 25: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

3自由度ロボットアームを作ろう! P162

• プログラム 6.1 の説明

Page 26: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

運動学を組み込もう  P167

• プログラム 6.2 の説明をする.

Page 27: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

位置・姿勢センサを組み込もう P168

• 位置 P103– const dReal *dBodyGetPosition(dBodyID)

• 姿勢 P103– const dReal *dBodyGetRotation(dBodyID)

• 戻り値はいずれも配列へのポインタ

Page 28: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

行列計算するには  P169

• Void dMultiply0(dReal *A, dReal *B,dReal *C, int p, int q, int r)

• A = B x C

– A: p 行 r 列– B: p 行 q 列– C: q 行 r 列

Page 29: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

6.5 逆運動学• 手先位置と姿勢から関節角を求める

( 教科書 P154 から転載)

Page 30: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

逆運動学• 一般に解が一つではない.• ない場合もある.• 重 要 (P171)

– 手先位置 (x, y, z) と姿勢 ( ロール、ピッチ、ヨー)を自由に決めるためにはロボットの自由度(関節)が6個以上なければならない。

– 自由度が7個以上ある場合は解が無数に存在する。

Page 31: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

2自由度ロボットアームの逆運動学

教科書 P171 から転載

Page 32: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

• 数式から求める方法(解析的)

逆運動学の解法1

Page 33: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

2自由度ロボットアームの逆運動学

教科書 P171 から転載

Page 34: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

逆運動学の解法2• 幾何学的に解く方法

教科書 P17 2から転載

Page 35: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

幾何学的に解く方法

教科書 P17 2から転載

Page 36: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

幾何学的に解く方法

教科書 P173 から転載

Page 37: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

余弦定理

教科書 P173 から転載

Page 38: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

3 自由度ロボットアームの逆運動学

教科書 P174 から転載

θ1

θ2

θ3

Page 39: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

逆運動学解法  θ1

Θ 1:アームの土台に   取り付けられた旋回角

教科書 P174 から転載

Page 40: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

逆運動学解法  θ2

教科書 P174 から転載

Page 41: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

逆運動学解法  θ2

教科書 P175 から転載

Page 42: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

逆運動学解法  θ2

教科書 P176 から転載

Page 43: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

逆運動学解法  θ3

教科書 P175 から転載

Page 44: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

逆運動学解法  θ3

教科書 P174 から転載

Page 45: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

逆運動学の解

教科書 P176 から転載

Page 46: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

逆運動学の解

教科書 P176 から転載

Page 47: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

6.6 やってみよう  P180

• プログラム 6.4 を説明する• プチプロ 6.2, 6.3 も重要なので説明する

– 安全性– 例外処理

Page 48: ロボットシミュレーション ODE Dynamics Engine によるロボットプログラミング

おしまい。