マニピュレーションと把持
ロボットが物体をつかみ、動かし、組み合わせる方法を扱います。摩擦円錐とフォースクロージャ、学習ベースの把持計画器、ピックアンドプレースのパイプライン、力制御による接触作業、エンドエフェクタの選び方を解説します。
概要
マニピュレーションとは、物体の位置や配置を変える作業です。つかむ、置く、挿入する、開ける、拭く、たたむといった動作が含まれます。把持は、ロボットと物体の間に安定した接触をつくる段階です。ここでは運動学・知覚・動作計画・制御のすべてが関わります。ピッキングセルで起きる失敗の大半もここで生じます。把持の失敗、搬送中の滑り、アプローチ時の衝突です。このページは、ピックアンドプレースのセルや研究用の環境を構築するエンジニアのうち、ライブラリの背後にある考え方を知りたい人を対象にしています。
重要な考え方
接触・摩擦・閉包
指先が表面を押すとき、接触法線の方向に力を加えられます。クーロン摩擦があれば、法線力の μ 倍までの横方向の力にも抵抗できます。μ は摩擦係数です。したがって、1つの接触点が加えられる力の集合は、法線を軸とする円錐になります。これが摩擦円錐で、半頂角は arctan(μ) です。すべての接触点を合わせて、物体に加わる任意の小さな外力と外トルクに抵抗できるとき、その把持はフォースクロージャであるといいます。2本指の平面把持なら判定は簡単です。2つの接触点を結ぶ線が、両方の摩擦円錐の内側にあればよいのです。把持品質指標は、ある把持力のもとで、その把持がどれだけ大きな外乱に抵抗できるかを評価します。
解析的な把持には、物体の形状、質量、摩擦係数が必要です。実験室の外では、これらが正確にわかることはまれです。そのため、現在使われている把持計画器の多くはデータから学習します。
学習ベースの把持計画
学習ベースの計画器は、深度画像または点群を、順位付けされたグリッパ姿勢のリストに変換します。Bohgら(2014)は、対象物が既知・類似・未知のいずれであるかで、この分野を分類しています。Dex-Net 2.0(Mahlerら、2017)は、解析的な指標でラベル付けした670万個の合成点群を使って把持品質ネットワークを学習しました。著者らによれば、扱いにくい形状の既知物体8個を対象とした1,000回を超える実機試行で、把持を0.8 sで計画し、成功率は93%でした。Grasp Pose Detection(ten Pasら、2017)は、点群の中で6 自由度(DoF)の把持候補をサンプリングし、それぞれを分類します。これらの手法の出力はいずれも候補姿勢の集合であり、動作ではありません。そのいずれかに衝突なく到達する経路は、別途計画器で求める必要があります。
パイプラインとしてのピックアンドプレース
ピックアンドプレースの作業は、段階の連鎖です。物体を検出し、把持候補を生成し、逆運動学と衝突判定で候補を絞り込み、アプローチし、グリッパを閉じ、持ち上げ、搬送し、置いて、退避します。どの段階も失敗しうるうえ、各段階は互いに制約し合います。その持ち方のまま配置姿勢にアームが届かなければ、その把持は役に立ちません。MoveIt Task Constructorは一連の作業を連結した段階として計画するため、両立しない選択はロボットが動く前に除外されます。実運用のセルでは、各段階の後にグリッパ開き幅の測定値や真空度などのチェックを加え、リトライ方針も設けます。
接触の多い作業とエンドエフェクタ
ペグの挿入、コネクタの嵌合、表面の拭き取りでは、硬いものに押し当てる必要があります。純粋な位置制御では、剛体部品に対して1 mmの位置誤差があるだけで、大きな接触力が生じることがあります。こうした作業にはインピーダンス制御やアドミタンス制御を使います。これらはアームをばねとダンパのようにふるまわせる制御で、多くの場合、手首の力覚センサと組み合わせます。ros2_controllersリポジトリには、そのためのアドミタンスコントローラと力覚センサ用ブロードキャスタが含まれています。
作業をこなせる最も単純なエンドエフェクタを選んでください。平行ジョーのグリッパには、対向する2面にすき間が必要です。吸着パッドには、平らで、あまり多孔質でない表面が必要です。柔らかい指やコンプライアンスのある指は、姿勢誤差を許容します。多指ハンドは物体を手の中で持ち替えられますが、アクチュエータの数ははるかに多くなり、センシングもずっと難しくなります。OpenAI(2018)は、摩擦と外観をランダム化したシミュレーションだけで、実機の多指ハンド向けにハンド内で物体の向きを変える方策を学習し、それを実機のハンドに転移しました。
どこから始めるか
まず順運動学と逆運動学に取り組んでください。どの把持姿勢も、最終的にはIKの問い合わせになるからです。MuJoCoでアームをシミュレーションするでは、物理エンジン上での接触と摩擦を確認できます。次にPyBulletのピックアンドプレース・プロジェクトを作ってください。単純なグリッパを付けたシミュレーション上のアームで、上記のパイプライン全体を実行します。用語集のヤコビ行列の項では、指先の力が関節トルクにどう対応するかを説明しています。
ツールとプラットフォーム
| ツール | 用途 | ライセンス |
|---|---|---|
| MoveIt 2 | アームの動作計画、把持のアプローチと退避、ROS 2上の衝突オブジェクト | BSD-3-Clause |
| MoveIt Task Constructor | 多段階のピックアンドプレース計画 | BSD-3-Clause |
| GPD | 点群から6 自由度の把持候補を生成 | BSD-2-Clause |
| GG-CNN | 深度画像からピクセルごとに対向把持を予測 | BSD-3-Clause |
| ros2_controllers | アドミタンスコントローラ、平行グリッパコントローラ、力覚センサ用ブロードキャスタ | Apache-2.0 |
| MuJoCo | 把持や挿入など接触の多い場面のシミュレーション | Apache-2.0 |
| Drake | C++とPythonによる接触シミュレーションと最適化 | BSD-3-Clause |
よくある間違い
- カメラとロボット間のキャリブレーションを確認せずに信用する。数ミリのハンドアイ誤差があると、中心をとらえたはずの把持が指先だけの把持になります。
- 把持姿勢と配置姿勢を別々に計画する。その結果、把持したままの持ち方では配置姿勢にアームが届かないことが後でわかります。
- 位置だけを頼りにグリッパを閉じる。閉じた後に開き幅か力を確認し、空振りの把持を検出してください。
- 挿入に位置制御を使う。コンプライアンスを加え、力を制限してください。
- シミュレーションの摩擦をデフォルト値のままにして、実際の部品でも同じ把持成功率を期待する。
- アプローチ経路を無視する。失敗の多くは、進入途中での隣接物体との衝突です。
さらに深く
- Mason、Toward Robotic Manipulation、Annual Review of Control, Robotics, and Autonomous Systems、2018年。
- Lynch・Park、『Modern Robotics』、Cambridge University Press、2017年。第12章で把持とマニピュレーションを扱います。Northwestern大学の講義資料もあります。
- Tedrake、Robotic Manipulation: Perception, Planning, and Control、MITの講義ノート、オンラインで無料公開。
- Bohg・Morales・Asfour・Kragic、Data-Driven Grasp Synthesis: A Survey、IEEE Transactions on Robotics、2014年。
- Mahlerら、Dex-Net 2.0、2017年。ten Pasら、Grasp Pose Detection in Point Clouds、2017年。
- OpenAIら、Learning Dexterous In-Hand Manipulation、2018年。