728x90
- Intel NUC 상에서 USB Camera를 통한 Aruco Marker 인식 진행
- 아래의 USB Camera 사용
- https://www.icbanq.com/P014881255
1. USB Camera Driver 설치
$ sudo apt install ros-noetic-usb-cam
- USB Webcam 사용을 위한 ROS Driver 설치
$ roscore
$ rosrun usb_cam usb_cam_node _camera_name:='usb_cam' _camera_frame_id:='usb_cam'
- 서로 다른 Terminal 창에서 roscore와 Camera Driver 실행
- 실행 후 Rviz 창에서 Add -> By topic -> /usb_cam 선택 -> /image_raw 중 image(raw) 을 선택하여 카메라 영상 확인
$ rostopic list
- Camera 정상 동작 여부 확인
- /usb_cam/camera_info, /usb_cam/image_raw 확인
- Camera가 아직 uncalibrated 된 상태이므로, 아래와 같은 경고창이 표시되어야 함
- camera_info topic의 모든 값들은 0이어야 함
2. Aruco Detector 설치
$ cd catkin_ws/src
$ git clone https://github.com/CesMak/aruco_detector_ocv
$ git clone https://github.com/CesMak/alfons_msgs
$ cd ..
$ catkin_make --only-pkg-with-deps aruco_detector_ocv
- Aruco 인식을 위한 Aruco Detector 설치 후 Package Build 진행
- https://github.com/CesMak/aruco_detector_ocv
- detector.launch file에서 image의 width와 height를 Camera에 맞게 설정
$ roslaunch aruco_detector_ocv detector.launch
- Aruco Detector 실행
- VIDIOC_G_FMT error 22, Invalid argument Error 발생
- 위 명령어로 Aruco Marker Launch 시도 시 'VIDIOC_G_FMT error 22, Invalid argument' Error가 표시되며 아무런 영상도 뜨지 않음
- 이는 Launch File에서 사용할 수 없는 Argument가 있어 발생하는 Error
- 해결 방법
$ ls /dev/video*
- 위 명령어를 통해 다른 Camera Application이 있는지 확인
- 확인 결과 2개의 Camera Application 구동 중
- Launch File (~/catkin_ws/src/aruco_detector_ocv/launch/detector.launch) 확인 결과 "video_device" Parameter의 값이 "/dev/video1" 로 설정되어 있었음
- 이를 "/dev/video0" 으로 변경 후 Launch File 실행. 이후 Aruco Detector 정상 실행
$ rostopic echo /tf
- 이후 TF topic의 값을 확인하여 USB Camera와 Aruco Marker의 거리값 확인
- USB Camera와 Aruco Marker의 거리는 translation_z 값
- 이후 USB Camera와 Aruco Marker의 TF 방향 확인
- 위 TF 값을 통해 로봇과 Aruco Marker 간의 거리를 파악할 수 있을 것으로 보임
$ sudo gedit /opt/ros/noetic/share/cv_bridge/cmake/cv_bridgeConfig.cmake
- OpenCV 관련 Error 발생 시 위 명령어 입력
'set(_include_dirs "include;/usr/include;/usr/include/opencv"'
'set(_include_dirs "include;/usr/include;/usr/include/opencv4"'
- 이후 96번째 줄을 위처럼 변경
참고 자료 :
https://github.com/NVlabs/Deep_Object_Pose/blob/master/doc/camera_tutorial.md
https://95mkr.tistory.com/entry/DD4
https://95mkr.tistory.com/entry/OPENCV1
https://answers.ros.org/question/9098/usb_cam-vidioc_s_fmt-error-22/
https://answers.ros.org/question/246775/where-is-the-source-code-of-installed-packages/
https://github.com/ros-drivers/usb_cam/tree/develop
'Project > KUSMO' 카테고리의 다른 글
[KUSMO] 10/27 Arduino 기반 폐기부 및 배액량 모니터링 (0) | 2023.10.27 |
---|---|
[KUSMO] 10/20 ~ 21 (1) | 2023.10.24 |
[KUSMO] 10/3 (0) | 2023.10.04 |
[KUSMO] 9/30 임베디드 관련 계획 (0) | 2023.09.30 |
[KUSMO] 9/22 Map 좌표 지정을 통한 이동 명령 (0) | 2023.09.23 |