CAMERA - ROBOT CALIBRATION METHOD 정리

2023. 10. 3. 23:42카테고리 없음

우리가 협동로봇으로 Bin Picking Task를 수행할 때 가장 중요한 것은 카메라가 바라보는 물체의 좌표계를 로봇 베이스 좌표계로 변환하여 로봇의 6D POSE를 제어해야한다는 것이다. 이를 위해서 보편적으로 hand-eye calibration을 수행하게 된다.  이는 패턴이 있는 이진화된 보드를 카메라로 여러장 촬영함으로써 카메라의 외부 파라미터 ( 변환, 이동 행렬)을 획득하고 자세를 추정하기 위함이다. 이때 가장 많이 쓰이는 패턴은 Aruco , ChAruco 패턴으로 빠르게 Detection하고 유연하다는 장점이 있다. Charuco 보드는 chessboard와 Aruco 패턴의 결합으로 체커보드 모서리의 높은 서브 픽셀 검출 정확도를 이용하여 Aruco 마커의 위치 결정 정확도의 단점을 보완하고, Aruco 마커의 고유한 인코딩을 통해 체커보드의 간섭방지 문제를 해결한다. 

 

Hand-Eye-calibration 은 크게 두가지 방법으로 나뉜다. 1. Eye-in-hand 2. Eye-to-hand 

 

Eye-in-hand 방법을 알아보자.

Eye-in-Hand

그림에서 보는바와같이 카메라가 로봇의 End-effector에 부착되어있고 칼리브레이션 보드가 고정되어있는 상태에서 칼리브레이션을 수행하는것을 말한다. 이를 수식적으로 풀어내면 결국 획득하고자 하는 관계는 AX = XB 이다. 

아래의 수식을 보며 이를 계산할 수 있다. 

: 로봇 베이스로 부터 로봇 End의 좌표계로의 변환 행렬

:  카메라 좌표계로 부터 calibration 보드좌표계로의 변환 행렬

 

: 로봇 End 좌표계로 부터 카메라 좌표계로의 변환 행렬

 

 


로봇 베이스로 부터 로봇 End의 좌표계로의 변환 행렬

 

여기서 로봇 베이스로 부터 로봇 End의 좌표계로의 변환 행렬은 로봇의 D-H Parameters 테이블을 통해 계산해낼 수 있다. 

이는 링크와 링크사이의 관계를 표현한 테이블이며 통상 아래와 같이 표현된다. 

 

D-H 테이블을 통하여 로봇의 Forward Kinematics 에 따라 로봇 베이스부터 End 까지 모든 링크간의 변환행렬을 곱하면

구하고자하는  로봇 베이스로 부터 로봇 End의 좌표계로의 변환 행렬을 계산할 수 있을것이다.

 

(이는 실제로 로봇을 사용하면 어플리케이션에서 Tool 좌표계와 Base 좌표계 를 획득할 수 있기에 변환 행렬을 계산할 수 있다.)


카메라 좌표계로 부터 calibration 보드좌표계로의 변환 행렬

 

 

카메라 좌표계는 아래의 사진과 같다. 렌즈의 중심을 기준(0,0,0)으로 하는 좌표계이며 카메라의 정면 방향을 z축 카메라의 아래 방향을 y축 오른쪽 방향을 x축으로 설정한다.

 

 

원하고자하는 카메라 좌표계로 부터 Calibration 보드 좌표계로의 변환행렬은 ChAruco 이미지를 통해 계산해 낼 수 있다. 


로봇 End 좌표계로 부터 카메라 좌표계로의 변환 행렬

 

이는 통상적으로 Ros 프로그래밍에서 카메라의 위치를 잡아두고 좌표계 변환 공식을 통해 계산할 수 있을것이다.

 

 


참고 문헌

Paper - Lin, W.; Liang, P.; Luo, G.; Zhao, Z.; Zhang, C. Research of Online Hand–Eye Calibration Method Based on ChArUco Board. Sensors 2022, 22, 3805. https:// doi.org/10.3390/s22103805