ROS uvc_camera Calibration

2019. 9. 17. 20:14드론

실제 3차원의 점들이 이미지 상에서 최대한 현실과 맞게 위치하도록 하는 작업. 또한 3차원 공간좌표로 복원하기 위해서 필요한 작업이다.

 

먼저 uvc-camera 패키지를 설치한다

 $ sudo apt-get install ros-kinetic-uvc-camera -y 
 $ sudo apt-get install ros-kinetic-image-* -y 
 $ sudo apt-get install ros-kinetic-rqt-image-view -y 

 

그리고 roscore 후에 uvc-camera-node를 실행한다

 $ rosrun uvc_camera uvc_camera_node 

 

 

노드를 실행시키면, 다음과 같이 경고문구가 뜨는데 카메라 Calibration 파일이 없다는 내용이다. 지금 실습을 통해서 위 camera.yaml 파일을 생성할 것이다.

 

 

camera_info에 대한 파일이 /camera 하위에 있는지, / 하위에 있는지 확인해야 한다

 $ rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=image_raw camera:=/ 

만일 camera_info 파일이 /camera 하위에 있다면, camera:=/camera로 수정해야 한다

 

실행시킨 후, 약 41개의 샘플 데이터를 얻은 후 저장파일이 /tmp에 생성된 것을 확인할 수 있다

 

 

 $ cd /tmp 
 $ tar -xzvf calibrationdata.tar.gz -C ~/camera_calibration_data/ 
 $ cd ~/camera_calibration_data 
 $ mv ost.txt ost.ini 
 $ rosrun camera_calibration_parsers convert ost.ini camera.yaml 
 $ mkdir ~/.ros/camera_info 
 $ mv camera.yaml ~/.ros/camera_info/ 

 

camera.yaml 파일에서 camera_name은 narrow_stereo에서 camera로 수정하는 것이 좋다. 일반적으로 카메라 관련 패키지들이 camera로 설정되어 있기 때문이다.

 

 

저장하고 다시 uvc_camera_node를 실행하면 경고가 사라졌음을 알 수 있다

 

 

[참고 1] https://darkpgmr.tistory.com/32#calibration0

[참고 2] ROS 프로그래밍, 표윤석

'드론' 카테고리의 다른 글

ROS 터틀봇에서 topic시 주의할 점  (0) 2019.09.23
ROS remote action  (0) 2019.09.18
ROS 이기종 디바이스 간 통신  (0) 2019.09.13
ROS rqt  (0) 2019.09.12
ROS RViz  (0) 2019.09.12