사용환경
- Ubuntu 18.04
- ROS Melodic
- Camera topic = usb_cam/image_raw
ROS에 내장되어 있는 패키지를 사용해 손 쉽게 카메라 캘리브레이션을 진행 할 수 있다.
순서는 아래와 같이 진행된다.
roscore
와 rosrun
명령어를 통해 카메라 노드를 실행시키거나, roslaunch
로 카메라 노드를 실행 시켜 카메라 토픽을 발행한다.camera_calibration
패키지에서 cameracalibrator.py
을 실행시킨다.1, 2 단계는 조금 더 부연 설명을 하고자 한다.
각 실행시키려하는 카메라 노드를 실행시킨다. 필자의 경우 usb_cam
이라는 패키지에 카메라를 실행시키는 런치파일이 존재하므로 아래와 같이 카메라 노드를 실행시켰다.
$ roslaunch usb_cam usb_cam-test.launch
카메라 토픽이 발행 중이므로, 이 토픽을 받아 카메라 캘리브레이션을 진행할 노드를 실행시킨다. 이 노드는 camera_calibration
이라는 패키지 안에 cameracalibrator.py
파일로 존재하므로 rosrun
으로 실행시킨다.
$ rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 image:=/usb_cam/image_raw camera:=/usb_cam
인자에 대해서 설명을 하자면,
--size
: 체커보드의 코너들의 개수. 여기선, 가로로 코너가 8개, 세로로 6개 있음을 의미. 사용자 환경에 맞게 바꿔줄 수 있음.--square
: 체커보드에 있는 정사각형의 실측 길이. m 단위이므로 여기선 10.8cm를 의미. 사용자 환경에 맞게 바꿔줄 수 있음.image:=
: 카메라 토픽을 받아와야하므로, 카메라 토픽을 적어주면 된다. 사용자 환경에 맞게 바꿔줄 수 있음.camera:=
: 카메라 토픽이 발행되는 패키지 이름. (필자가 확인한 결과 안적어주어도 무방하다)3, 4, 단계를 실행하면 $ rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 image:=/usb_cam/image_raw camera:=/usb_cam
를 입력했던 터미널에서 카메라 Intrinsic Matrics와 Distortion coefficient 값이 출력 된다.