2017-11-03 4 views
0

systens usbカメラと2Dライダー。私はライダーフレームとカメラフレームの両方に対応する点の座標を持っています(私は3点とライダーフレームの座標とカメラフレームの同じ3点の座標を持っていると言うことができます)。

一点の例:
...
が知られている
lidar_pt1(XL、イル)
camera_pt1(XC、YC、ZC)。
は私がカメラライダーのキャリブレーションに取り組んでいると私は、次のような問題にいくつかの時間のために立ち往生しています

変換マトリックスをハードコードすると、私は期待される結果を得ます。今私はそれをハードコードしないようにしようとしていますが、座標の既知の値を使って自動的に計算します。私が持っているのは、ライダーフレームの2次元座標で3点、カメラフレームで3次元座標として正確に3点です。ここでは、私が持っている座標値に基づいて何らかの方法で回転を計算するための数学に苦労しています。その回転を得る方法はありますか?

camera_pt1 = lidformpt1
TransformMat =?

SVD(http://nghiaho.com/?page_id=671)を使っていくつかの例を見ましたが、より大きなデータセットが必要であり、最低3ポイントは最良の結果をもたらさないと思います。

答えて

1

各システムから3組の座標しか取れない場合は、数学は非常に簡単です。

| 
    4 |      (R) 
    |      : ', 
    |      : ', 
    |      :  ', 
    3 |      :  (P) 
    |      :  ,' 
    |      : ,' 
    |      : ,' 
    2 |  (A).....(B)  (Q) 
    |  :  ,' 
    |  : ,' 
    |  : ,' 
    1 |  (C) 
    | 
    | 
    | 
    0 +------------------------------------- 
    0  1  2  3  4 

はあなたが別の三角形PQRにマップ三角形ABCがあるとします。ここでは簡単な例です。次のようにhomogeneous coordinatesで彼らの頂点を表すことができます。

 .-  -.   .-  -. 
     | 1 2 1 |   | 4 3 1 | 
ABC = | 2 2 1 | PQR = | 3 2 1 | 
     | 1 1 1 |   | 3 4 1 | 
     '-  -'   '-  -' 

あなたがABCPQRの上に(すなわち、ABC × M = PQR)をマッピング行列Mを見つける必要があります。これを行うには、ちょうどABCの逆数でPQRを掛け:

if ABC × M = PQR, 
then ABC⁻¹ × ABC × M = ABC⁻¹ × PQR 
so M = ABC⁻¹ × PQR 

を3×3のマトリックスを反転する方法についての利用可能な参照のたくさんあります。これにより、次の結果が得られます。

+0

ありがとうございます!はい、これは理にかなっていますが、1つの既知の点群を2Dで、もう1つを3Dで、つまり1回転についての情報が欠落している場合にこれを行うことができますか?ライダーポイント(xl、yl、0)と対応するカメラポイント(xc、yc、zc)を持つため、ライダーポイントのz座標はゼロであると仮定できますか? – Pavel

+0

申し訳ありませんが、一度座標セットが3Dだったことに気が付きませんでした。その場合は、z座標を落としてカメラデータを2Dとして扱わなければならないと思います。ライダーzの座標をゼロに設定することはできません。これは、変換行列を非可逆にするためです。 (3D⇔2D変換を反転させることはできません。なぜなら、情報を一方向にスローし、反対方向にはどこにも生成しないからです。) –

関連する問題