Visual Servoing
- 別名: visual servo control, vision-based control
- カテゴリ: Control › Feedback control
- タグ: control, computer-vision, feedback-control, manipulation, closed-loop
視覚フィードバックを用いたロボットの運動の閉ループ制御。カメラ画像上で測定された誤差を継続的にゼロへ近づける。
定義
ビジュアルサーボ(Visual servoing)は、カメラの測定値を直接制御ループに入れてロボットを制御する。一度だけ見て目標の位置を推定し、その後オープンループで動くのではなく、ロボットは現在の画像と目標の画像との誤差を繰り返し測定し、それを減らす運動を指令する。誤差は毎周期測定し直されるので、ロボットは動きながら、キャリブレーション誤差、モデルの不正確さ、目標の動きを補正する。
古典的な定式化には画像ベースと位置ベースがある。画像ベースビジュアルサーボ(image-based visual servoing、IBVS)では、誤差は点の座標や直線のパラメータなどの画像特徴量の上で定義され、インタラクション行列(画像ヤコビ行列とも呼ばれる)が、カメラの速度ツイストとそれらの特徴量の変化率を関係づける。典型的な制御則は、インタラクション行列の擬似逆行列と特徴量誤差の積に比例するカメラ速度を指令する。IBVS はキャリブレーション誤差に強いが、特徴量の奥行きの推定が必要で、3D 空間では不自然なカメラ経路を生むことがある。位置ベースビジュアルサーボ(position-based visual servoing、PBVS)では、画像を使って目標の 3D 姿勢を推定し、コントローラが姿勢誤差を直接調整する。これによりデカルト空間での直線運動が得られるが、正確なキャリブレーションと姿勢推定に依存する。2.5D ビジュアルサーボのようなハイブリッド方式は両者を組み合わせる。カメラはロボットに取り付ける(アイインハンド、eye-in-hand)か、作業空間に固定してロボットと目標の両方を観察する(アイトゥハンド、eye-to-hand)。
学習ベースのビジュアルサーボは、手作業で設計した特徴量や制御則をニューラルネットワークで置き換える。ネットワークは現在の画像とゴールから、エンドエフェクタが動くべき方向や速度を予測し、ロボットは小さな一歩を実行してこれを繰り返す。これにより、閉ループの構造を保ちながら、手作りの特徴量を定義しにくい物体やシーンにも対応できる。
重要な理由
ロボットとカメラのキャリブレーションが完璧になることはなく、物体がモデルの示す位置にぴったりあることもまれである。視覚でループを閉じることで、ロボットは、事前にすべてをどれだけうまくキャリブレーションしたかではなく、主にカメラに見えているものに依存する精度で、手を伸ばし、位置を合わせ、挿入できるようになる。
主な用途
- ペグインホール、コネクタなどの精密な位置合わせタスク
- 動いている物体や位置のよくわからない物体の把持
- 内視鏡カメラによる外科・医療器具の位置決め
- 移動ロボットやドローンの充電ステーションや目標へのドッキング
- 画像から学習した目標物体へのリーチング
実際の使われ方
手首カメラを備えたアームが、グリッパーを回路基板上のコネクタに位置合わせしなければならない。コネクタの隣にあるフィデューシャルマーカーの四隅を画像特徴量とし、その目標画素位置は、グリッパーを手で正しい姿勢に置いて一度だけ記録する。実行時には、カメラのフレームレートで動くコントローラが四隅を検出して画素誤差を計算し、近似的な奥行きを使ってインタラクション行列の擬似逆行列を掛け、得られたカメラ速度をハンドアイ変換とロボットのヤコビ行列を通してアームへ送る。収束近くでは振動を避けるためにゲインを下げ、画素誤差がしきい値を下回るとループを止める。ハンドアイキャリブレーションの小さな誤差は経路を変えるが、最終的な位置合わせは変えない。
よくある誤解
- ビジュアルサーボには完璧にキャリブレーションされたカメラが必要である — 特に画像ベースの方式は、ある程度のキャリブレーション誤差や奥行き誤差があっても正しい画像へ収束する
- 目標を検出してからそこへ移動するのと同じである — ビジュアルサーボは、オープンループの計画を実行するのではなく、運動中も測定と補正を続ける
- 画像ベースのサーボは常にカメラを直線的に動かす — 画像上の直線経路が 3D では曲がった経路や後退する経路になることがあり、特徴量が視野から外れることもある
知っておくべき人
- マニピュレーションと組立のエンジニア
- ロボットビジョンと知覚の開発者
- 医療・手術ロボットのエンジニア
- ドローンや移動ロボットのドッキングの開発者
関連技術
- ViSP
- インタラクション行列(Interaction Matrix)
- ハンドアイキャリブレーション(Hand-Eye Calibration)
- フィデューシャルマーカー(Fiducial Markers)
- OpenCV
関連用語
関連プロジェクト
- LeRobot: HuggingFace ML library for real-world robotics in PyTorch
- Isaac Lab: NVIDIA robot learning framework: one task API across Newton, PhysX and Isaac Sim
- NVIDIA Isaac GR00T: NVIDIA open foundation model for humanoid robot reasoning and skills
- OpenVLA: 7B-parameter Vision-Language-Action model for robotic manipulation
- Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
- OpenArm: 7DOF humanoid arm for physical AI research in contact-rich environments
動画
- Image-Based Visual Servoing - Robot Control Part 1: Engineering Educator Academy
- Robot Image-based Visual Servoing I | Robotic Systems: Leopoldo Armesto