2017-11-03 13 views
0

systens usb 카메라와 2D 라이더. 나는 lidar 프레임과 카메라 프레임에서 대응하는 점들의 좌표를가집니다. (3 점과 lidar 프레임의 좌표와 카메라 프레임의 같은 3 점의 좌표를가집니다).

한순간 예 :
...
공지되어
lidar_pt1 (x1, y1)인지 여부를
camera_pt1 (XC, YC, ZC).
내가 카메라 LIDAR 교정에서 일하고 나는 다음과 같은 문제에 약간의 시간 붙어

변환 행렬을 하드 코드하면 예상되는 결과가 나타납니다. 지금은 그것을 하드 코드하지 않으려 고하지만 좌표의 알려진 값을 사용하여 자동으로 계산하려고합니다. 내가 가지고있는 것은 lidar 프레임의 2D 좌표에서 3 점이고 카메라 프레임에서 3D 좌표로 정확히 3 점입니다. 여기에 내가 가지고있는 좌표 값에 따라 회전을 어떻게 든 계산하는 수학에 어려움을 겪고있는 곳입니다. 저 회전을 얻을 수있는 방법이 있습니까?

camera_pt1 = transformMat * lidarpt1
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

감사! 예, 이는 의미가 있습니다. 2D 및 3D에서 하나의 알려진 점 집합, 즉 한 회전에 대한 누락 된 정보가있을 경우이 작업을 수행 할 수 있습니까? 라이다 점에 대한 z 좌표가 0이라고 가정하면 라이다 점 (xl, yl, 0)과 해당 카메라 점 (xc, yc, zc)을 가질 수 있습니까? – Pavel

+0

죄송합니다. 한 번 좌표 세트가 3D 인 것을 알지 못했습니다. 이 경우 z 좌표를 떨어 뜨리고 카메라 데이터를 2D로 처리해야한다고 생각합니다. 라이저 z 좌표를 0으로 설정할 수 없기 때문에 변환 행렬을 역변환 할 수 있습니다. 3D ⇔ 2D 변환은 정보를 한 방향으로 멀리 던지고 다른 방향으로 아무 곳에도 생성하지 않기 때문에 반전 할 수 없습니다. –