ロボットアームに「この座標へ動け」という指令だけを与える位置制御は、腕が自由空間を動いているあいだは問題なく働く。ところが手先が机の面やネジ穴の壁のような硬い環境に接触した瞬間、位置制御は本質的に破綻する——目標位置に到達しようとする指令と、環境が押し返してくる反力がぶつかり合い、理論上は無限大に近い力が発生しうる。この記事では、この「接触した瞬間に何が起きるか」という具体的な失敗から出発し、力とロボットの動きの関係を仮想的なバネ・ダンパ・質量で規定するインピーダンス制御、その因果関係を逆にしたアドミタンス制御、そして位置と力を空間の方向ごとに分離するハイブリッド位置/力制御までを、式を追いながら体系的に積み上げていく。
0. この記事で分かること
- なぜ位置制御だけでは、ロボットが環境に接触する作業をこなせないのか
- 力制御が扱う入力(位置・力のセンシング)と出力(トルク・関節角)の関係
- インピーダンス制御が「仮想バネ・ダンパ・質量」で位置誤差と力を結び付ける仕組み
- アドミタンス制御がインピーダンス制御と因果関係を逆転させた設計であること
- ハイブリッド位置/力制御が、拘束方向と自由方向を空間的に分離する考え方
- 純粋な力制御・インピーダンス制御・アドミタンス制御・ハイブリッド制御の違いと使い分け
- 剛性の高い環境、摩擦、センサーノイズがなぜ力制御を難しくするのか
- 産業用ロボットの組立・研磨、協働ロボットの安全機能、ヒューマノイドの歩行でどう選び方が変わるか
1. まず結論:力制御・インピーダンス制御とは何か
一言で言えば、力制御とは、ロボットの手先(または関節)が環境に及ぼす力・環境から受ける力を、位置だけでなく明示的な制御対象として扱う枠組みであり、インピーダンス制御はその中でも、位置の誤差と力の関係を仮想的なバネ・ダンパ・質量(機械インピーダンス)として規定することで、力を間接的に制御する代表的な設計である。
ここで重要なのは「力を直接指令する」ことと「力と位置の関係を規定する」ことは別の話だという点である。純粋な力制御は「この方向に10Nの力を出せ」と力そのものを目標にするのに対し、インピーダンス制御は「位置がずれたら、そのずれに比例した力で押し返す(あるいは押し返させる)」という、位置と力のあいだの振る舞いの規則を目標にする。この違いが、後の章で見るように、接触の不確実性に対する頑健性を大きく左右する。
2. なぜ位置制御だけでは接触作業ができないのか
産業用ロボットアームの多くは、関節角度の目標値を高いゲインのPD制御でひたすら追従させる位置制御を土台にしている。自由空間を動いているあいだ、これは何の問題もない——目標位置と現在位置の差(誤差)を小さくするようにトルクを出すだけで、腕は狙った軌道を正確になぞる。
問題は、手先が硬い物体に接触した瞬間に起きる。位置制御のコントローラは「目標位置に届いていない」という誤差を検出し続け、その誤差を減らそうとしてトルクを出し続ける。ところが環境(机の面やネジ穴の壁)は動かないため、手先はそれ以上先へ進めない。理想化された剛体同士の接触では、この状況は次のように定式化できる。
環境が完全剛体で手先が動けない(\theta \approx 一定)場合でも、目標角度 \theta_d が環境の奥へ向かって指令され続ける限り、比例ゲイン K_p が大きいほど、位置誤差 (\theta_d - \theta) に応じたトルクは際限なく増大しようとする。実際のロボットではモーターのトルク上限やギアの弾性、関節の物理的な遊びによって力は有限にとどまるが、それでも意図しない過大な接触力が発生し、部品の破損やロボット自体の故障、人との接触であれば重大な安全上のリスクにつながる。
さらに、位置制御は「目標軌道」そのものが環境の形状と厳密に一致していることを前提にしている。ネジ穴にピンを差し込む作業を考えると、ネジ穴の中心位置がわずか0.1mmでもずれていれば、位置制御だけのロボットはその誤差ぶんだけ壁に押し付け続けてしまう。人間が手作業でこの種の作業をこなせるのは、手首や指先が自然に「力を感じて、少し逃がす」という柔らかさ(コンプライアンス)を持っているからであり、ロボットにも同様の性質を意図的に作り込む必要がある——これが力制御・インピーダンス制御が生まれた動機である。
3. 入力は何か
力制御が扱う入力は、位置制御単体よりも情報源が増える。
- 関節角・関節角速度: 位置制御と共通する、エンコーダから得られる関節の状態量 \theta, \dot{\theta}。
- 手先(またはアーム全体)にかかる力・トルク: 手首に取り付けた6軸F/Tセンサー、あるいは各関節のトルクセンサーから得られる、実際に環境から受けている力 F_{\text{ext}}。この力覚センシングの原理は力覚・触覚センサーの仕組みと主要製品で詳しく扱っている。
- 目標軌道・目標インピーダンス: 手先に実現させたい基準位置 \mathbf{x}_d に加えて、インピーダンス制御では目標とする仮想的な質量・減衰・剛性のパラメータ(M_d, D_d, K_d)自体も、あらかじめ設計者が与える入力になる。
- 接触の有無や環境の性質に関する情報: ハイブリッド制御など、空間の方向ごとに拘束の有無が異なることを前提にする手法では、どの方向が環境によって拘束されているか(選択行列)も設計上の入力として与えられる。
力覚センシングが加わる点が、位置制御との最大の違いである。力センサーの帯域(サンプリングレート)やノイズ特性が、力制御ループ全体の応答速度と安定性を直接左右する。
4. 何を求めるのか/出力は何か
力制御が最終的に出力するのは、位置制御と同じく各関節へのトルク指令 \tau である。ただし、そのトルクを計算する際に何を目標にするかが手法によって異なる。
- 純粋な力制御: 目標力 F_d と実測力 F_{\text{ext}} の差を直接フィードバックし、力の誤差そのものをゼロに近づける。
- インピーダンス制御: 目標とする「位置と力の関係」(仮想バネ・ダンパ・質量)を実現するトルクを出す。結果として、環境が硬ければ大きな反力を受け止めながら位置を譲り、環境が柔らかければ位置を優先する、という振る舞いが自動的に生まれる。
- アドミタンス制御: 実測した力から、望ましい位置・速度の修正量を計算し、それを内側の位置制御ループに渡す。力を入力、位置を出力とする点で、インピーダンス制御と因果関係が逆になる。
- ハイブリッド位置/力制御: 作業空間を「位置を制御すべき方向」と「力を制御すべき方向」に分割し、方向ごとに異なる制御則(位置制御 or 力制御)を同時並行で適用する。
いずれの手法も、「接触時に発生する力を、破損や事故につながらない範囲に収めつつ、作業として意味のある軌道・力加減を実現する」という共通の目的を、異なる数式の組み方で達成しようとしている。
5. 基本構成
力制御まわりのループは、位置制御ループに「力のフィードバック」がどこでどう合流するかという構造で整理できる。まずインピーダンス制御とアドミタンス制御の因果関係の違いを図で見る。
図1 — インピーダンス制御は位置(誤差)を入力し力を出力してトルク指令に変換する。アドミタンス制御は逆に力を入力し位置の修正量を出力して、既存の位置制御ループに渡す。両者は同じ「仮想バネ・ダンパ・質量」の関係式を、入出力を逆にして使っている。
次に、ハイブリッド位置/力制御が空間をどう2つの部分空間に分割するかを見る。
図2 — ハイブリッド位置/力制御は、作業空間の各方向を選択行列で「位置を制御する方向」と「力を制御する方向」に分け、それぞれ独立に計算したトルクを合成して1つの関節トルク指令にする。
6. 代表アルゴリズム
コンプライアンス制御 — 力制御の理論的な土台
力覚を使った制御を体系的に定式化した初期の重要な仕事の1つが、Matthew T. Masonが1981年にIEEE Transactions on Systems, Man, and Cyberneticsで発表した論文「Compliance and Force Control for Computer Controlled Manipulators」である。この論文は、ロボットの手先位置が作業対象の幾何形状によって拘束される状況を、拘束の種類(自然拘束・人為拘束)に応じて位置と力を分類する枠組みを与え、後述するハイブリッド位置/力制御の理論的な基礎になった。「タスク座標系のどの軸で位置を、どの軸で力を制御すべきか」を幾何学的に整理するというこの考え方は、現在の力制御の教科書的な出発点になっている。
ハイブリッド位置/力制御 — 空間を分割して同時制御する
M.H. RaibertとJ.J. Craigが1981年にASMEのJournal of Dynamic Systems, Measurement, and Controlで発表した論文「Hybrid Position/Force Control of Manipulators」は、作業空間の座標軸それぞれを、位置を制御すべき方向と力を制御すべき方向に明示的に分け、両者を同時並行に制御するハイブリッド位置/力制御(hybrid position/force control)を提案した。テーブルの上を滑らせながら組み立てる作業を例にとると、テーブル面に垂直な方向(押し付け力を一定に保ちたい)は力制御、テーブル面に平行な2方向(軌道をなぞりたい)は位置制御、というように役割を分ける。
数式では、対角成分が0か1の選択行列(selection matrix) S を使い、S が1の方向には位置制御則を、(I - S) が1の方向には力制御則を適用する。
F_{\text{pos}} は位置誤差から計算した仮想力、F_{\text{force}} は力誤差から計算した仮想力である。この方式の強みは直感的な分かりやすさにあるが、拘束方向がタスク座標系の軸と厳密に一致していることを前提にしており、環境の形状や姿勢が不確かな場合には選択行列の設計自体が難しくなるという弱点を持つ。
インピーダンス制御 — 位置と力の関係そのものを規定する
Neville Hoganが1985年にASMEのJournal of Dynamic Systems, Measurement, and Controlで発表した3部構成の論文「Impedance Control: An Approach to Manipulation」(Part I—Theory、Part II—Implementation、Part III—Applications)は、ハイブリッド制御とは異なる発想を提示した。位置と力のどちらか一方を制御対象に選ぶのではなく、位置の誤差と、それに対して手先が及ぼす(あるいは受ける)力との関係を、目標とする仮想的な質量・減衰・剛性のパラメータで規定する。
M_d, D_d, K_d はそれぞれ目標とする仮想質量・仮想減衰係数・仮想剛性(バネ定数)で、設計者が作業内容に応じて選ぶパラメータである。この式は「手先が目標位置からずれるほど、外力 F_{\text{ext}} に応じてバネのように押し返す(または押し返される)」という、質量・バネ・ダンパから成る仮想的な力学系そのものを手先の振る舞いとして実現しようとしている。K_d を大きくすれば硬く、小さくすれば柔らかく反応する手先になり、D_d は振動を抑える減衰を担う。
重要なのは、インピーダンス制御は目標力そのものを直接指令しているわけではないという点である。環境が硬ければ、わずかな位置誤差でも大きな反力が生じてバランスするため、結果として過大な力を出さずに済む。逆に自由空間では外力がゼロなので、この式は通常の位置制御(バネ・ダンパによる軌道追従)とほぼ同じ振る舞いに帰着する。接触の有無や環境の硬さを明示的に切り替えることなく、同じ制御則が自由空間でも拘束空間でも自然に振る舞いを変えるという頑健性が、インピーダンス制御が力制御の中心的な考え方として広く使われている理由である。
アドミタンス制御 — 力から位置修正量を計算する逆方向の設計
インピーダンス制御が「位置(の誤差)を入力し、力を出力する」設計であるのに対し、アドミタンス制御(admittance control)は「力を入力し、位置(の修正量)を出力する」という、因果関係が逆の設計である。実測した外力 F_{\text{ext}} を、同じ質量・減衰・剛性の力学系に入力し、そこから得られる位置の修正量 \Delta \mathbf{x} を、既存の(高ゲインな)位置制御ループの目標値に足し合わせる。
この式を(数値的に、あるいは解析的に)積分して得られる \mathbf{x} が、内側の位置制御ループへ渡す修正後の目標位置になる。数式の形はインピーダンス制御の式とほぼ同じだが、何を入力とし何を出力とするかが逆になっている点が本質的な違いである。この因果関係の違いは、実装上のトルク制御能力の有無と結び付いている——関節にトルクを直接指令できる高性能なアクチュエータを持つロボットではインピーダンス制御が素直に実装できるのに対し、位置(または速度)しか指令できない、剛性の高い減速機を持つ産業用ロボットでは、力の情報を位置指令に変換するアドミタンス制御のほうが既存の位置制御ループにそのまま乗せやすい。
7. アルゴリズム同士の違い
| 手法 | 原理 | 精度(力の追従性) | 計算コスト | 環境の硬さ変化への頑健性 | 実装難易度 |
|---|---|---|---|---|---|
| 純粋な力制御 | 力の誤差を直接フィードバック | 高い(目標力に忠実) | 低い | 低い(硬い環境で不安定化しやすい) | 中程度 |
| ハイブリッド位置/力制御 | 選択行列で方向ごとに位置制御・力制御を分離 | 拘束方向は高い、自由方向は位置追従が高い | 中程度(選択行列の設計が必要) | 中程度(拘束方向の想定がずれると弱い) | 中程度〜高い(タスク座標系の設計が必要) |
| インピーダンス制御 | 位置誤差と力を仮想バネ・ダンパ・質量で結び付ける | 力を間接的にしか制御できない(狙った力への追従は弱い) | 中程度 | 高い(接触/非接触を明示的に切り替えなくてよい) | 高い(トルク制御可能なアクチュエータが前提) |
| アドミタンス制御 | 力を入力し位置修正量を出力、内側の位置制御ループへ渡す | インピーダンス制御と同等の間接性 | 中程度 | 高い | 中程度(既存の位置制御ロボットに後付けしやすい) |
大まかな傾向として、目標力そのものへの忠実さを優先するなら純粋な力制御やハイブリッド制御、環境の硬さや形状が不確かな状況での安定性・安全性を優先するならインピーダンス制御・アドミタンス制御が有利になる。実際の産業用ロボットの多くは、トルク制御可能な関節を持たない(位置・速度指令が主体の)機構であるため、インピーダンス制御そのものよりもアドミタンス制御、あるいは両者を組み合わせたハイブリッドな実装が採用されることが多い。
8. 何が苦手か/難しい環境
力制御・インピーダンス制御が実運用で直面する難しさは、大きく次のように整理できる。
極端に硬い環境での安定性: インピーダンス制御の式で目標剛性 K_d を大きくしすぎると、わずかな位置誤差でも大きな力が生じ、センサーのサンプリング遅延や関節の弾性(ギアのたわみなど)と相互作用して振動的な不安定挙動(接触振動、いわゆるcontact instability)を引き起こしやすい。逆に K_d を小さくしすぎると、目標軌道への追従性が失われる。この K_d の選び方は、環境の実際の硬さについての事前知識がないと最適化しづらい。
摩擦とアクチュエータの非線形性: 関節の減速機やベルト駆動には摩擦・バックラッシュ(遊び)が存在し、これらは理想化されたトルク制御の式には現れない外乱として働く。特に安価な減速機を使うロボットでは、この摩擦の影響でインピーダンス制御が想定する「仮想バネ・ダンパ」の振る舞いが正確に再現できないことがある。
力覚センサーのノイズと帯域: 力制御ループの応答速度は、力センサーのサンプリングレートとノイズ特性に直接制限される。ノイズの多いセンサー出力をそのままフィードバックに使うと、制御則が意図しない高周波の振動を増幅してしまうため、フィルタリングと制御帯域のトレードオフを常に考える必要がある。
環境の形状・硬さについての事前知識の不足: ハイブリッド位置/力制御は、拘束方向がどの軸に対応するかをあらかじめ知っている必要がある。実際の作業対象の姿勢や形状に誤差があると、想定していた方向とは違う方向に予期しない力が生じ、選択行列の設計そのものが崩れる。
多点接触・面接触: これまでの議論の多くは、手先の1点が環境と接触する状況を前提にしている。ロボットハンドで物体を包み込むように把持する場合のような多点・面での接触では、各接触点の力を個別に扱う必要があり、単純な1点のインピーダンス制御の枠組みをそのまま拡張するのが難しくなる。
9. 実用上の選び方
力制御・インピーダンス制御の方式をどう選ぶかは、ロボットのアクチュエータの種類、作業の性質、安全要件によって変わる。
- 産業用ロボットアームの組立・研磨(ネジ締め、バリ取り、はめ合い作業): 拘束方向が事前に分かっている作業が多く、ハイブリッド位置/力制御、あるいは既存の位置制御ロボットに後付けしやすいアドミタンス制御が広く使われる。押し付け力を一定に保ちながら面をなぞる研磨作業は、力制御方向と位置制御方向が明確に分かれる典型例である。
- 協働ロボット(コボット)の安全機能: 人との接触を検知して即座に力を弱める・停止するという安全機能は、関節トルクセンサーや手首の力覚センサーからの信号を使ったインピーダンス制御的な設計(柔らかい仮想剛性)と組み合わされることが多い。ISO/TS 15066のような協働ロボットの安全規格が定める接触力の上限も、この種の力制御の設計目標と直結している。
- ヒューマノイド・脚型ロボットの歩行・接地: 足が地面に接地する瞬間の衝撃を吸収し、不整地でも姿勢を崩さずに済むよう、脚の各関節にインピーダンス制御(または全身のインピーダンスを統合的に扱うWhole-Body制御)を適用する設計が一般的である。地面の硬さが未知であることが多く、環境の硬さ変化に頑健なインピーダンス制御の性質が特に活きる場面である。
- 義手・リハビリ用ロボット(人と直接触れ合う機器): 装着者の意図しない力の変化に柔らかく追従する必要があり、力を入力として扱えるアドミタンス制御が、既存の位置制御主体のアクチュエータ構成にも組み込みやすいことから好まれる。
- 精密な力の値そのものが要求される検査・計測作業: 目標力への忠実な追従が最優先される場合は、間接的にしか力を制御しないインピーダンス制御・アドミタンス制御よりも、純粋な力制御やハイブリッド制御のほうが適している。
いずれの用途でも、力制御はロボット単体の孤立した技術ではなく、力・トルクを検知する力覚・触覚センサーや、逆運動学・ヤコビアンによって関節空間と作業空間を結び付ける運動学、そして関節トルクを実際に生成するアクチュエータの特性(油圧駆動の力制御については油圧システム入門を参照)が組み合わさって初めて、実機の上で意味のある「柔らかい接触」を実現できる。
10. まとめ(3行で復習)
- 位置制御だけのロボットは、硬い環境に接触した瞬間に過大な力を出そうとして破綻するため、力を明示的に扱う制御が必要になる。
- インピーダンス制御は位置誤差と力を仮想バネ・ダンパ・質量で結び付け、アドミタンス制御はその因果関係を逆にして力から位置修正量を求める。
- ハイブリッド位置/力制御は空間を方向ごとに位置制御・力制御に分割する明快さを持つ一方、環境の姿勢・形状についての事前知識に依存する。
コメント
コメントの投稿にはログインが必要です
まだコメントはありません。