2012-03-26 38 views
1

私はロボットとカメラを持っています。ロボットは単なる3Dプリンタであり、押出機をツール用に交換したので、印刷はしませんが、すべての軸が独立して動いています。ベッドは透明で、ベッドの下にはカメラがあり、カメラは動かない。それはちょうど普通のウェブカメラ(プレイステーションの目)です。カメラとロボットのキャリブレーション方法

ロボットとカメラを調整して、カメラが提供する画像上のピクセルをクリックすると、そこにロボットが移動するようにしたいと思います。私は、2つのフレーム間の平行移動と回転を測定できますが、それはおそらく多くのエラーを返します。

これは私の質問です。どうすればカメラとロボットを関連付けることができますか?カメラはすでにチェス盤を使用して較正されています。

すべてを簡単にするために、Z軸は無視することができます。したがって、キャリブレーションはXとYになります。

答えて

1

どのようなエラーが受け入れられるかによって異なります。

私たちは、移動可能なオブジェクトを持つ平面を見るカメラを持っているのと同じ設定です。

画像と平面が平行であると仮定します。

まず、回転を計算します。画像の中心にあるような位置にツールを置き、ツールの位置に対応する画像上のポイントを1つの軸上に移動します。 これらの2点は、画像座標系のベクトルを与えます。 このベクトルと元の画像軸の間の角度が回転を与えます。

ベクトルの長さ(ピクセル単位)とツールの位置間の距離(mmまたはcm)がわかっていれば、イメージと実世界の軸の間のスケール係数が得られます。

この方法では十分な精度が得られない場合は、コンピュータービジョン技術を使用してカメラの歪みや相対位置をキャリブレーションすることができます。それはもっと複雑です。 歪みが非常に高かったので、私は、画像を校正し、以下のリンク

http://opencv.willowgarage.com/documentation/camera_calibration_and_3d_reconstruction.html

http://dasl.mem.drexel.edu/~noahKuntz/openCVTut10.html

+0

を参照してください。 次に、カメラのポイントとツールの実世界のポイント(すべて2D)の関係を使って、変換行列(1回転、x以上の変換、yの1回転)を計算します。 しかし、翻訳の計算に問題があります。私は手でそれをすることができますが、それは非常に間違いやすいです。 –

+0

基本的には、イメージ上のツールシステム内のいくつかのポイントを特定する必要があります。マーカーを配置するか、ポイントを自分で選択することができますが、設定がわかりません。手順を正確に説明することは非常に困難です –

+0

THisロボットです: http://youtu.be/YZnsBhWDvFI 工具は針の先端です。 また、カメラとカメラからの画像を見ることができます。私の目的は、カメラからその画像内のあるピクセルをクリックし、そこに針を移動させることです。 私はその画像に10箇所の異なる場所に針を置いて、針があるところのピクセルをクリックさせます。それから、私はOpenCVの "findhomography"を使って関係を見つけました。翻訳はとてもいいです。回転はそうではありません。針がどこにあるのか、そしてどこにあるのかには大きな違いがあります –

関連する問題