差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| articles:rmrc [2022/04/04 12:11] – [比例制御] Takashi Suehiro | articles:rmrc [2022/07/07 10:30] (現在) – [力覚フィードバック] Takashi Suehiro | ||
|---|---|---|---|
| 行 127: | 行 127: | ||
| もう一つの大きな問題点は物理的,機械的実現性の問題である. | もう一つの大きな問題点は物理的,機械的実現性の問題である. | ||
| + | たとえば目標値が急に変化した場合,この制御則の下ではいきなり | ||
| + | ある速度を指令することになる. | ||
| + | それを実現するためには大きな(原理的には無限大の)加速度を生じさせることになる. | ||
| + | これは物理的には不可能であるし,近似的に可能であったとしても衝撃を発生させるため | ||
| + | 機械的にも望ましいものではない. | ||
| + | |||
| + | この問題を避けるには,座標系の誤差を修正する指令値を仮想的な力や加速度として, | ||
| + | それに基づいて速度を決定する仕組みを導入する必要がある. | ||
| + | これについては力覚フィードバックの節でもう少し議論する. | ||
| + | |||
| + | さらに,そしておそらく一番大きな問題点は特異姿勢である. | ||
| + | 分解運動速度制御がうまく働くためにはヤコビ行列ができるだけ均質な方が良い. | ||
| + | 均質というのは特異値分解をしたときの特異値の値に大きな開きがないということである. | ||
| + | 極端に小さな特異値が存在すると,逆行列で解を求めたときに | ||
| + | そこに対応した関節軸(の線型結合)を大きく動かさなくてはならなくなる. | ||
| + | 明らかにゼロとなっている場合は,擬似逆行列として解くと動かさないという解が得られるが | ||
| + | ((得られた解は分解運動速度制御としては正しい解になっていない)) | ||
| + | 数値計算の誤差で値が残った場合は,異常で危険な動作が生成されることになる. | ||
| ==== 力覚フィードバック ==== | ==== 力覚フィードバック ==== | ||
| + | 力覚センサを用い,その値をフィードバックすることで外力に対応したいろいろな動作応答を実現できる. | ||
| + | |||
| + | 力覚フィードバックを用いた制御には,コンプライアンス制御,ダンピング制御,インピーダンス制御,力制御など種々の制御法がある. | ||
| + | 手先の位置・姿勢に対して座標軸ごとに異なる制御を行うハイブリッド制御(通常,位置と力のハイブリッド)などもある. | ||
| + | |||
| + | === ダンピング制御 === | ||
| + | |||
| + | ダンピング制御は速度制御されたロボットアームにとっては比較的分かりやすい. | ||
| + | 外力に押された形でそれに比例した速度(偏差)で動く. | ||
| + | |||
| + | 手先での速度を$\boldsymbol{v}$(姿勢の回転速度も含めても良い), | ||
| + | 中立(目標)速度を$\boldsymbol{v}_0$, | ||
| + | ダンピング係数を$D$とすると,外力を$\boldsymbol{f}$とすると, | ||
| + | $$ | ||
| + | \boldsymbol{f}=D(\boldsymbol{v} - \boldsymbol{v}_0) | ||
| + | $$ | ||
| + | すなわち,外力に対する手先の速度は, | ||
| + | $$ | ||
| + | \boldsymbol{v} = \frac{1}{D} \boldsymbol{f} + \boldsymbol{v}_0 | ||
| + | $$ | ||
| + | これにヤコビ行列の逆行列をかけることで,これを実現する関節速度を得ることができる. | ||
| + | |||
| + | 通常のダンピングは$\boldsymbol{v}_0=0$とすることが多い. | ||
| + | |||
| + | 逆に,目標速度を, | ||
| + | $$ | ||
| + | \boldsymbol{v}_0 = -\frac{1}{D} \boldsymbol{f} | ||
| + | $$ | ||
| + | とすることで,接触力を制御した習い動作などが実現できる. | ||
| + | |||
| + | === コンプライアンス制御 === | ||
| + | コンプライアンス制御は,外力に比例して位置偏位を生じさせる. | ||
| + | $$ | ||
| + | \boldsymbol{f} = K (\boldsymbol{x} - \boldsymbol{x}_0) | ||
| + | $$ | ||
| + | すなわち, | ||
| + | $$ | ||
| + | \boldsymbol{x}=\frac{1}{K} \boldsymbol{f} + \boldsymbol{x}_0 | ||
| + | $$ | ||
| + | しかし,外力が変化したときに瞬時にその位置に移動するというのは無理がある | ||
| + | ((実は,ダンピング制御も見えにくいが同様な問題がある.)). | ||
| + | |||
| + | これを避ける一つの方法は上記の$\boldsymbol{x}$を目標値$\boldsymbol{x}_{ref}$として比例制御を行うことである. | ||
| + | すると, | ||
| + | $$ | ||
| + | \boldsymbol{v}=k \boldsymbol{e} = k(\boldsymbol{x}_{ref} - \boldsymbol{x} ) | ||
| + | = \frac{k}{K} \boldsymbol{f} + k (\boldsymbol{x}_0 - \boldsymbol{x}) | ||
| + | $$ | ||
| + | として,分解運動速度制御を行う. | ||
| + | この式は,中立速度が$k (\boldsymbol{x}_0 - \boldsymbol{x})$の比例制御であたえられた, | ||
| + | ダンピング係数が$\frac{K}{k}$のダンピング制御となっている. | ||
| + | |||
| + | === 力制御, ハイブリッド制御 === | ||
| + | |||
| + | === インピーダンス制御 === | ||
| + | |||
| + | インピーダンス制御はホーガンが提唱したもので, | ||
| + | 力覚センサフィードバックにより,手先の見かけのインピーダンスが変化することに着目し, | ||
| + | 逆に,手先でのインピーダンス特性を明示的に指示し, | ||
| + | それに従うようにフィードバック制御を行うことを提案した | ||
| + | ((N. Hogan: Impedance Control; An Approach to Manipulation, | ||
| + | Part I, II, III. ASME J. of Dynamic Systems, Measurement | ||
| + | and Control, Vol.101, pp.1-24, 1985.)). | ||
| + | インピーダンス特性としては,バネ,ダンパ,マスの2次系を想定していて | ||
| + | コンプライアンス制御やダンピング制御を含んだものになっている. | ||
| + | |||
| + | ホーガンの論文は,トルク制御された関節を持つアームを対象として | ||
| + | 手先の力に対する手先の加速度を逆運動学計算により | ||
| + | 関節トルクを求める計算トルク方式により実現している. | ||
| + | これはいわゆる分解運動加速度制御になっている. | ||
| + | |||
| + | 速度制御された関節の場合は,理想的な速度制御が実現されていれば | ||
| + | アームの動力学が隠蔽されるため逆運動学計算なしに | ||
| + | インピーダンス制御を実現することができる. | ||
| + | |||
| + | このような制御を実現する上で大事なことは内部にインピーダンスモデルを持つということである. | ||
| + | |||
| + | どういうことかと言うと,たとえばバネ特性の場合,外力がゼロであっても振動的な | ||
| + | 振る舞いを行わなくてはいけない | ||
| + | ((振動的な振る舞いは実際のロボットアームにとっては好ましくはないが)). | ||
| + | |||
| + | |||