ロボット-カメラキャリブレーション (robot camera calibration) |
2017-12-02 - 2018-11-07 (update) |
|
|
*ロボット-カメラキャリブレーション とは
ロボットとカメラの相対的な関係を推定する操作です.その関係は,カメラを使って認識した人や物に対して,ロボットがアプローチを行う時に必要になります.ハンド-アイキャリブレーション(hand eye calibration)と呼ぶ場合もあるようです.
次のデモ映像は,キャリブレーションのための画像撮影の様子を表します.ロボットに取り付けたカメラを動かしながらマーカーを撮影しています.そこで得られた画像とその時のロボットの制御値を入力として,キャリブレーションを行います.
[youtube:6TXBMRcK3-w]
キャリブレーションの計算方法について詳しく学びたい場合,[1]の文献が参考になります.
{{small:[1]F.Dornaika and R.Horaud, "Simultaneous robot-world and hand-eye calibra-tion", IEEE Transactions on Robotics and Automation, 1998}}
{{small:[link:https://hal.inria.fr/inria-00590087/document] }}
*サンプルコード (C++)
ライブラリ:[link:simplesp]
サンプルコード:simplesp/sample/sp/robotcam
シミュレーションにより与えたマーカーの観測結果とロボットの制御値に基づいて,キャリブレーションを行います.
シミュレーションは図1に示す配置の条件を想定しています.
*ロボットとカメラの関係
ロボットとカメラの配置は,図1と図2に示す様に大きく2つの場合が考えられます.
[img:tbl5]
{{small:図1 ロボットの基準(base)に対して,動くハンドの部分にカメラを配置}}
[img:bjlh]
{{small:図2 ロボットの基準(base)に対して,動かない部分にカメラを配置}}
ここで,{$A$}はカメラ座標系とマーカー座標系の関係を表す行列で,カメラでマーカーを認識することで推定します.{$B$}はロボットの先端座標系(hand)とロボットの基準座標系(base)の関係を表す行列で,ロボットの制御値に相当します.そして,{$X$}と{$Z$}がキャリブレーションで推定する行列です.
また,図1と図2に示す関係から,以上4つの行列は次の拘束条件があることが分かります.
{$$AX=ZB$$}
この式から,{$A$}と{$B$}を入力として,{$X$}と{$Z$}の行列を推定します.
{{small:通常,その後にさらに精度を上げるために,マーカーの検出点に注目した非線形最適化を実行します.}}
>> ご意見・ご質問など お気軽にご連絡ください.info