3.10.2 薄壁の細い隙間を通り抜けて位置決めする運動

       (「詳説ロボットの運動」第8章8..3項参照)               2010−01−12

ソースファイル ThinHolePassSource   実行ファイル ThinHolePassexe

  説明書:本ファイル, 補足説明 ThinHolePassC

 

・壁の細い直線隙間を通り抜けてワークを目標位置へ位置決めする問題である.

・薄い壁なので通り抜けた先で上下左右にアームを回してかなり自由に動かせるので,壁際でも位置決めすることができる.

・隙間を通り抜けかつ目標に位置決めを同時に満足する解法がないので,最終解は隙間通り抜け(‘b’)と目標に位置決めする逆運動学(’a’)との繰り返し演算で求める.

・このシミュレータでは,初めに隙間を通り抜けかつ目標に位置決めする最終解を繰り返し演算で求め,次に最終解のポーズ(関節変位qG)から初期ポーズ(関節変位q0)まで隙間を通り抜ける経路を逆生成する.生成後の経路追従の運動シミュレーションを行う.

 

[シミュレーションにおける前提]

ロボットタイプ:

7自由度ロボット4種((1).RP-RP-RPR, (2)RQ-PP-RPR, (3)QP-RP-RPR, (4)QP-PQ-RPR, )についてシミュレーションする.(P,Q,RX,Y,Z軸を回転軸とする関節.直動関節は扱わない.オフセットなし)

・隙間通り抜け・位置決めする関節

 隙間通り抜けるために必要な関節は1つ(L),位置決めする関節は3つ(I, J, K)であり,各ロボットタイプによってその関節番号は決まっているとする.タイプ(1),(2)L=1(I, J , K)=(2, 3, 4),タイプ(3),(4)ではL=2(I, J, K)=(1, 3, 4)である.

 関節(5, 6, 7)は姿勢決めをする.これらは変更しない.

 

・ロボットの位置・諸元

 ロボットベースは静止座標系の原点とする.アーム長・太さなどは変えない.

・障害物

薄壁隙間中央直線をから方向の直線とし,隙間の幅はロボットアーム・関節部が斜めになっても通り抜けられる程度の間隔で開いているとする.

また壁の面は(X,Z)平面内にあり面の法線はY軸方向とする.

隙間中央直線の位置は変えられる.

・ワークの目標位置姿勢

 目標位置は変更できる.姿勢は直方体ワークを上から下向きに置くとする.変更しない.

 

[シミュレータの使い方]

(1)使用ファイル名(フォルダ名)

・使用file名:ThinSlitPass (program名:ThinSlitPass.c, ThinSlit.c, POINV2.c, ,funcall.c, graph3d.c

(2)文字画面でのキー操作

・設定変更で数値を入力する場合以外は全て描画画面で操作する.

(1) スタート 任意キーで文字画面から描画画面へ

(2) 文字画面で変更する項目:(G)目標位置数値

(O)壁端の位置数値

(3)描画画面におけるキー操作

・パラメータ変更の操作(キー操作)

 ‘F’:ロボット選択モード 14どれかをキーイン 選択したロボット表示

 ‘O’:障害物設定モード:薄壁隙間中央線の位置設定 文字画面へ X,Y方向位置(hx, hy)のみ数値入力

  描画画面へ

 ‘G’:ワーク設定モード:ワークの目標位置設定 文字画面へ 目標位置入力

  描画画面へ

 ‘A’:ロボットの最終ポーズ計算モード:隙間を通り抜けて位置決めする最終解を得る計算

  ‘a’:位置決め計算 ‘b’:隙間通り抜け計算 この繰り返し(’a’,または’b’だけの繰り返しも可)

 ‘B’:経路生成モード:最終解のポーズから初期ポーズに到る経路を逆に求める計算:’s’により自動的に進む.

 ‘C’:軌道上の運動モード ‘s’キーで初期ポーズから目標に到るポーズへの運動描画

 ESC:終了

[註1]’A’の計算で,’a’によって目標への位置決めの解を得るが隙間を通り抜ける保証はない.同様に’b’によって隙間を通り抜けても目標に位置決めできるとは限らない.’a’,’b’の繰り返しによって通り抜けと位置決めの両方を満足する解に収束する.

[註2]’A’の計算で,’a’のよって位置決めの解を得てもその解に急には変えず,少しづつ進めるようにしている.’b’も同様である.そうでないと最終解に収束しない恐れがある.’a’または’b’だけを続けてもよい.

・画面表示の操作

 ‘s’:時間経過による運動の推移

 ‘x’, ‘X’,  ’y’, ‘Y’,  ‘z’,’Z’:X, Y, Z座標正負に移動

‘p’, ‘P’,  ‘q’,’Q’,  ‘r’,’R’X,,Z軸回りに正負に回転

 ‘0’:軌道上の運動を初期状態に戻す

 

[註1]ロボットタイプ・目標位置・壁位置等は仮に設定されている.

[註2]設定変更はどの時点でもできる.但し前の情報は失われる.

 

[シミュレーションの例]

・図1,図2:各種設定

 ‘F’:ロボットの選択,’G’:目標位置(数値は文字画面で入力),’O’:薄壁の隙間中央線(数値は文字画面で)

 ‘F’’G’’O’はどれが先でも構わない.

 ここでは予めロボット・目標位置・隙間を設定しているので変更があれば上記の操作をする.

壁はY軸性の方向(図の右側)にあることが望ましい.

 

・図3,図4’A’ 最終解を’a’位置決め,’b’隙間通り抜け演算の繰り返し

 ‘a’’b’の交互でも続けて’a’’b’でも構わない.繰り返しの仕方によっては異なる最終解解に到達する場合もあり,また本来解があるのに解なしの結果となる場合もある.

 途中で’A’キーを押せば始点に戻りやり直しができる.

 

・図5,図6,図7:’B’ 終点から初期位置まで逆経路演算,’s’で自動的に計算が進む.

 経路はリスト角を0に持っていく(W),全てのアーム・ワークを壁隙間を通り抜けてロボットベース側に持っていく(T),ロボット側の自由空間で初期ポーズ(q=0)に持っていく(F)の3腫の運動に分けて別々の計算をしている.

 (’B’キーを押せばやり直しができるが,同じことをするので意味がない)

 

 

・図8,図9:’C’ 経路に沿うロボットの運動アニメーション,’s’によって自動的に進む.

 

 

[隙間通り抜け位置決め問題の特徴]

1.ロボットタイプによる最終位置決めの難易

・ロボットは7自由度でその関節は全て回転関節としたが,直動関節は7自由度では位置決めできる領域が狭い.

・ロボットタイプによって通り抜けのための関節JL,位置決めのための関節(JI, JJ , JK)を予め決めている.(姿勢はリストの3関節で決める)

・Z軸回りの関節軸をR,X.Y軸の関節をP,Qと名付ける.

・根元の関節J1=Rのロボット(ロボットタイプ1,2)は隙間通り抜けて位置決めできる領域が広い.J1=P, Qのタイプ3,4は領域が狭い.

・タイプ1,2を比較すると,中間にR関節を持つタイプ1の方が有利である.

・自由度7は通り抜けと位置決め(姿勢を含む)に必要な数であり,ここには冗長性がない.

・壁の向こう側で手が届く限り位置決めできるようにするには,壁の向こうに6自由度が欲しい.すなわちこの問題には8自由度以上が操作上望ましい.

2.経路生成

・初期ポーズは全ての関節変位q=0とする.

・経路生成にはリスト角=0とする運動(W),通り抜け運動(T),自由空間運動(F)に分けた.

(W)ではリスト角だけでなく,壁の向こう側の関節角も0へ近づけ,壁に衝突することを避けている.

(T)でも壁の向こう側の関節角を同様に理由で0に近づけている.

・壁通り抜け後,(F)の自由空間運動は,全ての関節角を0に近づける運動でもよいが,それではやはり壁に衝突する恐れがある.ここではワークを通り抜け直後の点Bから初期位置Aまで壁に接触しない円弧を経路とした.

 (円弧生成の計算は3.10.2参照)

・更に(F)でワークが初期位置の近傍(Cに来たら,全ての関節変位q0に近づける.これがないと初期ポーズが同じでq=0でない別の値になる可能性がある.

・経路は隙間を通り抜ける条件以外は自由であり,生成法によって違った経路となる.

・ここで使用した経路生成法は確実だが,3腫運動の繋ぎ目で運動の不連続性が見られる.また関節角の進む刻みを一様にとったのでワークの運動に粗密がある.

・滑らかでできるだけ短い経路が最良の経路であり,人間は無意識に最良経路を選択している.

・人間の動作を模倣して最良の経路を生成するにはアーム・ワークと壁の位置関係を把握しながら逐次経路点を決定する高度な知能行動が必要であろう.