Axis의 PTZ 카메라를 ROS에서 제어해 보았습니다.
경위
Axis의 PTZ 카메라를 ROS상에서 움직일 기회가 있었으므로, 그 순서를 정리해 보았습니다. PTZ(펀틸트 줌) 카메라란, 팬(좌우), 틸트(상하), 줌(확대)의 제어를 할 수 있는 카메라입니다.
axis_camera 정보
처음에는 PTZ도 포함한 카메라 제어를 할 수 있는 python-onvif을 사용하려고 했습니다만, Axis의 카메라에 대응하고 있지 않았기 때문에, 다른 방법을 찾기로 했습니다. 거기서 찾은 것이 axis_camera이었습니다. axis_camera는 Axis 카메라 제어용 ROS 패키지입니다. 매우 편리하지만 python2로 작성되었으므로주의가 필요합니다. 조만간 스스로 python3로 다시 쓴 것을 만들고, 또 기사로 하려고 합니다.
환경
절차
우선, 준비로서 axis의 디폴트의 권한이 root이므로, ptz 제어할 수 있도록(듯이) anonymous로 바꾸어 둡니다. Axis의 카메라 설정 화면 오른쪽 하단의 Settings->System->Users라고 하면 아래와 같은 페이지로 가므로 Anonymous users를 ON으로 합니다.
그런 다음 github에서 소스 코드를 삭제하고 ROS를 이동합니다.
$ cd ~/catkin_ws/src
$ git clone https://github.com/ros-drivers/axis_camera.git
$ git clone https://github.com/ros-perception/camera_info_manager_py.git
$ sudo chmod -R 755 axis_camera
$ cd ..
$ catkin build
$ roscore
다른 터미널을 열고 아래 명령을 실행합니다.
$ rosrun axis_camera axis_ptz.py _hostname:=IP_ADDRESS_OF_YOUR_CAMERA
axis_camera는 ROS의 Dynamic Reconfigure를 사용하여 GUI에서 PTZ 제어를 할 수 있도록 되어 있습니다.
다른 터미널을 열고 아래 명령을 실행합니다.
$ rosrun rqt_reconfigure rqt_reconfigure
그러면 아래와 같은 GUI가 나타납니다. 각 슬라이드 바를 움직이면 PTZ 제어가 가능합니다.
기본값은 tilt가 작동하지 않았기 때문에 PTZ.cfg의 tilt 설정 값을 변경했습니다. 각각의 항목은 gen.add()의 뒤의 3개에 초기치, 최소치, 최대치의 순서로 줄지어 있습니다.
#!/usr/bin/env python
PACKAGE = "axis_camera"
from dynamic_reconfigure.parameter_generator_catkin import *
gen = ParameterGenerator()
#gen.add("speed_control", bool_t, 0, "Speed control (true) or absolute position control (false)", False)
gen.add("autofocus", bool_t, 0, "Autofocus", True)
gen.add("pan", double_t, 0, "Pan value in degrees (or percent in absolute mode)", 0, -180, 180)
// tiltの値を-45,-90,0から0,0,90に変えている
gen.add("tilt", double_t, 0, "Tilt value in degrees (or percent in absolute mode)", 0, 0, 90)
gen.add("zoom", double_t, 0, "Zoom value", 1, 1, 9999)
gen.add("focus", double_t, 0, "Focus", 1, 1, 9999)
gen.add("brightness", double_t, 0, "Brightness", 1, 1, 9999)
exit(gen.generate(PACKAGE, "axis_camera", "PTZ"))
요약
Axis 카메라라면 ROS에서 쉽게 움직일 수 있었습니다. PTZ 카메라는 움직이는 것만으로도 즐겁기 때문에 꼭 사보세요! 집에서의 사용도는 그다지 없다고 생각합니다만(웃음).
실수나 질문, 의견등 있으면 부담없이 코멘트해 주세요. 열심히 대답하니까(웃음).
참고문헌
Reference
이 문제에 관하여(Axis의 PTZ 카메라를 ROS에서 제어해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Hiroaki-K4/items/e1cb3c264688fe71131c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)