9.1. ロボットのCP運動の学習制御
2007−7−12
(「詳説ロボットの運動学」第6章第5節参照)
ソースファイル lrncpctrlSource 実行ファイル lrncpctrlexe
・CP運動を関節変位に換算した値をとする.
・通常のCP制御として通常の位置フィードバック(FB)制御系を取り,その指令値をとする.
・速い運動に対して,の速い変化にFB制御系がついていけないことが考えられる.
・その誤差を観測し,指令値を誤差に応じて修正するというのが学習制御の基本的な考え方である.
(1)指令関節変位の繰り返し修正
・軌道を関節変位に変換した値を指令値としただけでは動的な力(トルク)が不足で遅れが生じる(あるいは行き過ぎる)ことがあるので,誤差の分だけ加算して指令値をとする.
・ただし,誤差が大きいときは発散する恐れがあるので,修正量を加減して()とする.
・この修正を繰り返せばロボットの応答は正しい関節変位となるはずである.
・関節変位の修正値は,ロボットの位置フィードバックゲインを,積分フィードバックゲインをとすると,のトルクを与えていることと同じである.すなわち関節変位の修正値を加算することはFFトルクを与えることと同じ意味を持っている.
[CPの学習制御シミュレーションにおける前提]
・ロボットタイプ:
2自由度ロボット2種(円筒座標ロボット,SCARAロボット)についてシミュレーションする.
・メカニズム:全ての諸元は不変
アーム長・ワーク質量・慣性モーメント・質量などの諸元は決まっている.
モータパワー・モータ慣性モーメント・許容最大トルクは決まっている..
減速機の減速比・順方向伝達効率・逆方向伝達効率は決まっている.
減速機の伝達効率を考慮した動力学計算をしている(本ホームページ補足説明参照).
・重力:
重力の有り無し(垂直運動・水平運動)を選択できる.
・制御系:
制御系の特性(固有振動数など)・フィードバックゲインは決まっている.
学習の誤差修正係数cは変更できる.
・軌道設定:
CP運動の4種の軌道があり,始点・終点・運動時間などを変更できる.
軌道に沿う移動量s(t)に対して台形速度則による時間関数の指令値としている.
s(t)を空間運動に変換し,更に関節変位に変換する.その値を学習第0回目の指令値とする.
[CPの学習制御シミュレータの使い方]
(1)使用ファイル名(フォルダ名)
・使用file名:roblrncpctrl (program名:roblrncpctrl.c, graph2d.h)
(2)文字画面でのキー操作
(1) スタート → (1-1)ファイルから諸元読み込み
または → (1-2) ロボット(円筒座標 or SCARA)を選択 → 予め設定したロボット諸元表示
→ (2) 変更する項目がある?
(2) 変更する項目:(2-1)重力考慮ありなし
(2-2)CP運動の選択とその諸元変更
(2-3)学習の誤差修正係数cの変更
の順に行い描画画面へ
(3) 変更しない場合:シミュレーションの諸元提示後描画画面へ
(3)描画画面におけるキー操作
画面には左:(1)ロボットの運動
右:(2)関節1,2の変位と誤差の推移グラフ (3)トルク変動グラフ
が描画される.
・画面表示の操作
‘s’:時間経過による運動の推移
‘m’:学習(誤差修正)の繰り返し
‘x’, ‘X’:ロボット運動の座標を左右に移動
‘y’, ‘Y’:ロボット運動の座標を上下に移動
‘w’, ‘W’:画面の縮小拡大
‘0’:初期状態に戻る
・パラメータ変更の操作
‘a’ or ‘b’:ロボットを選択し文字画面の(1-2)へ
‘g’ or ‘h’:重力ありなし(垂直運動 or 水平運動)の選択,そのまま描画画面
‘c’:CP運動変更のために(2-2)へ
‘l’:学習制御の修正係数変更のために(2-3)へ
ESC:終了
・軌道上の点で逆運動学の解がないときは文字画面で警告を出し全て終了
[CP運動の学習制御の特徴]
(1)学習による軌道追従性の改善
・軌道上の加速度が不連続または大きく変化する点で軌道追従誤差が大きい.
・誤差修正係数を適当に取ると回数を重ねるにつれて軌道追従性がよくなることが分かる.
・このとき,軌道指令値は真の軌道指令値と異なる値となっている.
・修正係数cが1に近いほど誤差の収束する速度が速い.
(2)追従性改善の限界
・条件によっては修正係数cが大きいと却って誤差の収束が遅くなることがある.
・さらに,誤差が回数を重ねるにつれて大きくなる場合もある.
・cが小さくても発散する場合がある.
・動作時間が短いと誤差修正ができない場合がある.これは運動に必要なモータトルクが限界を超えるためで(シミュレーションのトルクグラフ参照),学習しても追従できない.
[U字軌道追従の例]