Extrinsic Calibration
- 다른 이름: extrinsics, extrinsic parameters
- 카테고리: Foundations & spatial maths › Frames & transforms
- 태그: calibration, sensors, coordinate-frames, hand-eye, sensor-fusion
로봇이나 다른 센서에 대한 센서의 강체 자세를 구해, 측정값을 공통 좌표계에 놓을 수 있게 하는 것.
정의
외부 캘리브레이션(extrinsic calibration)은 어떤 기준, 즉 로봇 베이스, 엔드 이펙터, 차량 차체 또는 다른 센서에 대한 센서의 위치와 방향, 곧 SE(3)의 강체 변환을 추정한다. 이는 카메라의 초점 거리나 렌즈 왜곡처럼 센서 내부에서 일어나는 일을 모델링하는 내부 캘리브레이션과는 별개이다. 정확한 외부 파라미터가 없으면 카메라가 검출한 점을 로봇 좌표계에 올바르게 놓을 수 없고, 여러 센서의 데이터를 융합할 수도 없다.
방법은 관련된 센서에 따라 다르다. 아이인핸드 카메라(eye-in-hand camera)는 카메라가 어디에 장착되는지를 가리키는 말이고, 외부 캘리브레이션은 그 장착으로 카메라가 정확히 어디에 놓이는지를 측정하는 절차이다. 로봇 팔에 달린 카메라의 경우 핸드-아이 캘리브레이션(hand-eye calibration)은 카메라가 고정된 타깃을 보는 동안 팔을 여러 자세로 움직이고, 방정식 AX = XB를 푼다. 여기서 A와 B는 그리퍼와 카메라의 상대 운동이고 X는 미지의 변환이다. Tsai와 Lenz(1989)가 널리 쓰이는 해법을 제시했다. 같은 방정식에 다른 항을 넣으면, 그리퍼가 든 타깃을 고정된 카메라가 보는 경우도 다룰 수 있다. 카메라-LiDAR 캘리브레이션은 보통 보드 평면이나 모서리처럼 두 센서가 모두 보는 타깃의 특징을 대응시킨다. Kalibr 툴박스에서처럼 카메라-IMU 캘리브레이션은 연속적인 궤적으로부터 센서 간 변환과 시간 오프셋을 추정한다. 많은 시스템은 그 뒤 상태 추정기 안에서 외부 파라미터를 온라인으로 정제한다.
작은 외부 파라미터 오차가 큰 영향을 미친다. 0.5도의 각도 오차는 1미터 떨어진 점을 거의 9 mm 옮겨 놓는데, 이는 파지를 놓치거나 융합된 지도를 어긋나게 하기에 충분하다. CAD 값은 출발점이 되지만 실제로 만들어진 로봇과 맞는 경우는 드물며, 장착부는 충격, 온도, 정비에 따라 움직인다. 좋은 관행은 넓은 범위의 자세에서 캘리브레이션 데이터를 수집하고, 따로 남겨 둔 데이터에서 재투영 오차나 정렬 오차를 측정해 결과를 확인하며, 기계적 변경이 있을 때마다 다시 확인하는 것이다.
중요한 이유
센싱을 동작이나 다른 센서와 결합하는 모든 로봇은 외부 캘리브레이션에 의존한다. 카메라 검출 결과가 그리퍼가 가는 곳에 정확히 놓이는지, LiDAR와 카메라 데이터가 맞아떨어지는지, 융합된 상태 추정이 일관적인지가 이것으로 결정된다.
주요 응용
- 손목 장착 카메라와 고정 카메라를 위한 핸드-아이 캘리브레이션
- 차량과 이동 로봇의 카메라-LiDAR 정렬
- 시각 관성 주행거리계를 위한 카메라-IMU 캘리브레이션
- 모션 캡처와 3D 재구성을 위한 다중 카메라 리그
- 고정 카메라를 로봇 작업 셀에 정합
실제 사례
한 연구실이 파지를 위해 로봇 손목에 깊이 카메라를 장착한다. ChArUco 보드를 인쇄해 테이블에 고정하고, 서로 다른 회전을 포함하는 약 25개 자세로 팔을 움직이면서, 각 자세에서 순기구학으로 얻은 엔드 이펙터 자세와 카메라로 얻은 보드 자세를 기록한다. 핸드-아이 솔버는 카메라-플랜지 변환을 반환한다. 이를 검증하기 위해 여러 손목 자세에서 얻은 깊이 이미지를 하나의 점군으로 융합하는데, 캘리브레이션이 좋으면 테이블과 물체가 맞아떨어지고, 나쁘면 표면이 이중으로 보인다. 또 그리퍼 끝으로 보드 모서리를 짚어 그 위치를 카메라의 추정값과 비교하고, 오차가 수 밀리미터이면 캘리브레이션을 받아들인다.
흔한 오해
- CAD 치수면 충분하다 — 제조 공차와 장착 오차 때문에 측정된 외부 파라미터는 설계값과 다르다
- 캘리브레이션은 한 번만 하면 된다 — 장착부는 시간이 지나며 움직이므로, 충격이나 하드웨어 변경 후에는 외부 파라미터를 다시 확인해야 한다
- 외부 캘리브레이션과 내부 캘리브레이션은 같은 단계이다 — 내부 파라미터는 센서 자체를, 외부 파라미터는 그 자세를 모델링하며, 함께 풀면 어느 한쪽의 오차가 다른 쪽을 오염시킨다
- 공간 변환만 중요하다 — 움직이는 센서에서는 데이터 스트림 사이의 시간 오프셋이 잘못된 자세와 비슷한 오차를 일으킨다
알아야 할 사람
- 로봇 인식 및 통합 엔지니어
- 자율주행차 센서 엔지니어
- 상태 추정 및 SLAM 개발자
- 조작 테스트베드를 구축하는 연구자
관련 기술
- Kalibr
- OpenCV 핸드-아이 캘리브레이션(OpenCV Hand-Eye Calibration)
- ChArUco 및 AprilTag 보드(ChArUco and AprilTag Boards)
- MoveIt Calibration
- ROS tf2
관련 용어
관련 프로젝트
- FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
- GTSAM: Factor-graph optimization library powering many modern SLAM backends
- AprilTag: The standard visual fiducial marker system for robot localization and pose estimation
- Gazebo: Industry-standard open-source robotics simulator with multi-physics and ROS integration
- image_pipeline: The standard ROS camera stack: calibration, rectification, stereo and depth
동영상
- Camera Intrinsics and Extrinsics - 5 Minutes with Cyrill: Cyrill Stachniss
- OpenCV Python Camera Calibration (Intrinsic, Extrinsic, Distortion): Kevin Wood | Robotics & AI