7.ロボットアームのハイブリッド制御
2007−1−22
著書「詳説ロボット運動学」第6.2節
本Homepage「詳説ロボットの運動学:その補足説明」参照
ソースファイル robhybridctrl1Source 実行ファイル
hybridctrl1exe
・2次元ロボットの位置と力のハイブリッド制御を行う.
・力制御には関節トルクでなく,ハンドに取り付けたばねの撓み制御(位置制御)によって行う.
トルク制御はロボットの摩擦や慣性力の影響を考えると現実的でない.
・ロボットは減速機を持ち,その伝達効率を考慮する.
・駆動モータにはトルクの限界があるとする.
・物体の設置位置には誤差があると仮定する.
・ハイブリッド制御の7種の手法を本Homepage補足説明で述べた.
・このシミュレーションではその中の下記の場合を扱う.
Hybrid1 :
輪郭既知で位置と力(撓み)を独立にフィードバック制御する場合
Hybrid3 :
輪郭既知で作業座標系で位置と力を分離してフィードバック制御する場合
Hybrid4 :
輪郭既知で位置・力(撓み)制御を各関節に対応させる場合
Hybrid6 :
輪郭未知で力制御のみ行う場合
[ハイブリッド制御シミュレーションにおける前提]
・ロボットタイプ:
2自由度ロボット2種(円筒座標ロボット,SCARAロボット)についてシミュレーションする.
・メカニズム:
下記のパラメータは2種ロボットについて変更しない.
アーム長・ワーク質量・慣性モーメント・アーム質量
モータパワー・モータ慣性モーメント・許容最大トルク
減速比・順方向伝達効率・逆方向伝達効率
減速機の伝達効率を考慮した動力学計算をしている(本ホームページ補足説明参照).
・物体輪郭
直線・円・正弦波曲線の3種の輪郭をなぞり、法線方向の力制御する.
その位置などは変更できる.
物体の設置誤差を仮定している.この誤差は運動初期に力誤差となる.
既知輪郭上で台形速度則による時間関数の指令値としている.
物体の位置形状未知でハイブリッド制御する場合にも上記3種の輪郭を使う.
このとき輪郭上の移動は一定速度とする.
・重力:ここでは重力作用がないと仮定する.
・制御系:
輪郭に沿う位置制御と法線力のハイブリッド制御を下記の4種についてシミュレーションする.
(1)位置誤差を関節変位に換算した位置制御と,先端ばね撓み誤差をに換算した力制御(4変数による2状態制御)
(2)輪郭接線方向誤差をに換算した位置制御と,法線力誤差をに換算した力制御(2変数による2状態制御)
(3)位置誤差をφ1に換算した位置制御と力誤差をφ2に換算した力制御(またはその逆)(2変数による2状態制御)
(4)未知輪郭に沿う位置制御と法線方向力制御(2変数による2状態制御)
制御系の特性(固有振動数など)を設定してフィードバックゲインを決めるようにしている.
・変更できるパラメータ
ロボットタイプ,ハンドの力センサ用ばねの剛性
物体輪郭,その位置,設置誤差
指令法線力
ハイブリッド制御方法,ゲイン
[ハイブリッド制御シミュレータの使い方]
(1)使用ファイル名(ワークスペース名)
・使用file名:robhybridctrl(program名:robhybridctrl.c, graph2d.h, robot41.dat, robot42.dat)
・データファイルも一緒の上記ファイルに入れる.
・データファイルを自分で作るときは既存のデータファイル参照のこと.
(2)文字画面でのキー操作
・(0)スタート → (1)ロボットタイプ選択 → (2)ハンドばね定数設定 → (3)制御法・ゲイン設定
→ (4)対象物体選択 → (5)接触力設定 → ((6)計算)→ 描画画面へ
または (0)スタート → データファイルから全データを読み込み →(計算)→ 描画画面へ
(3)描画画面におけるキー操作
・描画画面表示
画面には左:(1)ロボットの運動
右:(2)(X,Y)位置・輪郭接線方向誤差の推移グラフ (3)法線力・誤差グラフ
(4)モータ駆動トルク変動グラフ
が描画される.
・画面表示の操作
‘s’:時間経過による運動の推移
‘0’:初期状態に戻る
‘w’, ‘W’:ロボット運動画面の縮小拡大
・パラメータ変更の操作 描画画面でキー操作後,文字画面へ
‘r’:データファイルから全パラメータを読み込むために(0)へ
‘a’ or ‘b’:ロボットを選択し(2)へ
‘k’:ハンドのばね定数変更のために(2)へ
‘h’:ハイブリッド制御変更のために(3)へ
‘g’:ゲイン変更のために(3)へ
‘L’, ‘C’, ‘S’:物体輪郭変更のために(4)へ
‘e’:物体設置誤差変更のために(4)へ
‘f’:法線力変更のために(5)へ
ESC:終了
[註]1.ゲイン設定は第1,2関節制御系毎に系の固有振動数ωn、第2時定数の逆数αを入力する.
ゲインはこれらの値から計算する.
2.軌道上の点で逆運動学の解がないときは文字画面で警告を出し全て終了
3.ロボットの機構パラメータ等は変更しない.
4.輪郭に沿う関節変位(モータ変位)の指令値の生成にはハンドのばね撓みを考慮している.
5.物体の設置位置誤差がなければで正しい輪郭位置と法線力Fnになるが,誤差があると
両者ともずれるので,それを制御する.
6.Hybrid1,3,4を選択すれば対象物体は既知,Hybrid6を選択すれば対象物体は未知である.
7.1項目変更しても他はそのまま保たれる.2項目以上変更したいときはその項目毎に変更する.
・運動推移グラフにはX,Y方向変位と輪郭に沿う移動誤差が表示される.
[ハイブリッド制御一般の特徴]
・どのハイブリッド制御でも同程度の制御性が得られている.
・輪郭追従の速度が大きいと法線力の大きな誤差が生じる.または運動が不安定になる.
これは駆動モータのトルク限界があるからで,必要なフィードバックトルクが出せないからである.
・FFトルクを与えていないので,法線力に起因するモータへの反力によって指令法線力からわずかにずれる.
・法線力の誤差は系のサーボ剛性とハンドのばね定数の比にほぼ等しい.
・この定常誤差は,力制御系(撓み制御系)に積分要素を加えるとなくすことができる.
・運動中に関節変位が正から負へ(負から正へ)と切り替わる付近で,軌道上の移動量誤差と法線力誤差が大きくなる.
・これは,関節加速度が大きくて慣性のために遅れが生じることと,減速機の摩擦が正から負(負から正)に不連続に切り替わることが原因と思われる.
[各ハイブリッド制御の再説明と特徴]
(1)ハイブリッド制御1
−輪郭既知で位置と力(撓み)を独立にフィードバック制御する場合−
・図2のように位置・力の各PID制御系は独立に構成する.
・制御対象は4つ(位置・力各2成分),制御変数は2つであるから正しい制御はできないが,近似的に制御できる条件がある.
・モータ駆動トルクは位置フィードバックによるトルクと撓みフィードバックによるトルクの和であり,ロボットの動力学方程式は
, (1―1)
(1−2)
・定常状態(釣り合い状態)では
(1−3)
(1−4)
・でなくても釣り合い,位置・力が指令値通りにならない.
・撓みを生じさせる関節変位が十分な精度で指令関節変位に近い値となるためには
(1−7)
すなわち撓み制御系のゲイン(撓みのサーボ剛性)が位置制御系のゲイン(位置のサーボ剛性)やばね定数より十分大きい必要がある.
・減速比1:uの減速機を使う場合,制御系のサーボ剛性は関節変位に換算して倍になるので,ばね剛性より10倍以上とすることは容易い.
・とすることによって,接触力はほぼ指令通りの値になる.
・輪郭上の位置を指令値とするが,その位置は正確には設定できないのが普通である.位置指令に誤差があると縮小した値ではあるが接触力の誤差に転写される.
・この誤差をなくすには,積分要素を撓みフィードバック系にのみ与えるとよい.
・位置誤差は輪郭上の移動量の誤差であり,輪郭からはずれることはない.
・輪郭上を台形速度則によって動かしたが,加速度の変わり目で位置・接触力の誤差が大きくなる.
・ハンドのばね定数をとしたが,これは実用されている力覚センサの剛性より柔らかい.しかし硬くすると力制御が難しくなる.
(2)ハイブリッド制御3
−輪郭既知で作業座標系で位置と力を分離してフィ−ドバック制御する場合−
・作業座標系では輪郭に沿う方向に運動制御(位置制御)し,法線方向には力(撓み)制御とする.
・作業座標系をΣB座標系とする(図1参照).
・t方向位置誤差FB力: (3−1)
・測定した撓みから法線力から計算すると
(3−2)
・指令接触力をとすると力の誤差は
(3−3)
・撓み誤差のFB力: (3−4)
・作業空間上のFB力を関節トルクに変換: (3−5)
・モータ駆動トルクとロボットの動力学方程式は
(3−6)
・FFトルクも与えたとして,定常状態では接触子は輪郭線上にあり,法線力も指令の力となっている.輪郭線上では撓みがないとすれば指令位置に位置決めされるが,撓みがあれば接線方向にその分だけずれる.
・位置制御は関節変位を観測して行うので撓みによるそのずれは修正されない.また撓みの制御は法線方向のみであるから当然接線方向の撓みによるずれは,力制御(撓み制御)では修正されない.
・接線方向移動量に法線力による接線方向の撓みの理論値を加算して指令値とすれば誤差は小さくなる.
・モータ回転角に関するゲインを接触子先端の位置FBサーボ剛性,法線力FBサーボ剛性に換算すると
[N/m] (3−7)
[N/N] (3−8)
・とすることによって,接触力はほぼ指令通りの値になる.
・位置制御系には積分要素を含めない方がよい.
・結論として,設置誤差があるときは,Hybrid制御3(作業空間で位置と力を分けて制御)では接線方向位置誤差を0とすることはできない.というよりは設置誤差のために位置指令値(輪郭接線方向の移動量)の正しい設定ができないので,例えば終点位置は輪郭上の正しい終点位置にならない.
(3)ハイブリッド制御4
−輪郭既知で位置・力(撓み)制御を各関節に対応させる場合−
・例えば第1関節変位φ1を位置制御に,第2関節変位Φ2を力(撓み)制御に利用する.
・位置指令は1つであり,物体輪郭に接触しているがどの位置にあるかは撓み次第である.
・それぞれのFBトルク:
(4−1)
(4−2)
:位置誤差. は無視 (4−3)
・の計算:
実際の撓みから実法線力FNを計算し,指令法線力から決まる必要撓みとの差(撓み誤差)を計算する.その 関節変位への換算値をとし,この中のをFBし,は無視する.
・定常状態では
(4−7)
(4−8)
・ならば近似的に指令の位置で指令の法線力となる.
・設置誤差があると,接触力はハンドのばねの撓みによって修正できるが,輪郭の接線方向の位置は指令値通りにはならない.
・接触子の物体への接触状態によって位置・力制御する関節を入れ替えている.
・すなわち,図1のθnに対して,円筒座標ロボットでは
,またはのとき: φ1位置制御,φ2力制御
上記以外の範囲 : φ1力制御,φ2位置制御
SCARAロボットでは
,またはのとき: φ1力制御,φ2位置制御
上記以外の範囲 : φ1位置制御,φ2力制御
としている.
・制御関節を入れ替える時にかなりの位置誤差・力誤差が生じる.FBトルクが不連続に変化することが原因と思われる.
・この入れ替えがなければ十分な精度で位置力制御結果が得られる.
(4) ハイブリッド制御6 −輪郭未知で力制御のみ行う場合−
・これはハイブリッド制御でなく力制御である.
・関節駆動トルクは
(6−1)
(6−2)
(6−3)
・ならば,近似的に指令した接触力になる.
・物体輪郭は未知なので,初めに物体の探索をしなければならない.すなわち手探りで物体に接触するまでアームを動かす.接触の有無は手首の力センサ(ばねの撓み)で分かる.
・接触後の操作は
(1)接触力の法線方向・接線方向(θn)をセンサによって計測・計算する.
(2)法線力を指令の力となるように制御する.
(3)接線方向にわずか動かして(1)に戻る.
(5)ハイブリッド制御7
−速度制御型ドライバー回路・位置制御型ドライバーによる位置・力制御−
このシミュレーションでは扱わない.