본문 바로가기
ROS2

[ROS2] ros2 usb_cam 설치 및 사용

by ykr0919 2024. 12. 5.

 

 

설치한 버전은 아래와 같음! 

 

version

  • Ubuntu22.04.5
  • ROS2 Humble

 

Quickstart

humble 버전

sudo apt-get install ros-humble-usb-cam

 

 

Building from Source

우선 usb_cam_ws 폴더를 만들어줌 →그 안에 src 폴더 만들어줌

mkdir -p usb_cam_ws/src

 

src폴더 안에!

git clone https://github.com/ros-drivers/usb_cam.git

 

다시 usb_cam_ws으로 나옴

..cd 

 

의존성 확인!

rosdep install --from-paths src --ignore-src -y

 

build 하고

colcon build

 

source install/setup.bash

 

 

Running

ros2 run usb_cam usb_cam_node_exe

 

다른 터미널 하나 더 열어서 rqt로 확인 가능

 

자동으로 뜨는 카메라 설정하고 싶을 때는 

 

usb_cam_node.cpp 들어가서

 

 

this->declare_parameter("video_device", "/dev/video2"); 뒤에 포트번호만 바꾸고

 

 

다시 usb_cam_ws/ 경로에서 colcon build 하고 source install/setup.bash

 

뒤에 포트 번호를 모를 때는

 

ros2 launch usb_cam camera.launch.py

 

ros2 humble, ubuntu22.04 환경에서 오류 발생

 

error_code

[ERROR] [launch]: Caught exception in launch (see debug for traceback): Caught multiple exceptions when trying to load file of format [py]: - PydanticUserError: If you use @root_validator with pre=False (the default) you MUST specify skip_on_failure=True. Note that @root_validator is deprecated and should be replaced with @model_validator.

 

 

https://qlalf-smithy.tistory.com/38

 

ROS2_USB_Cam_Error(@root_validator)

https://qlalf-smithy.tistory.com/34 ROS2_usb_cam 설치https://github.com/ros-drivers/usb_cam GitHub - ros-drivers/usb_cam: A ROS Driver for V4L2 USB CamerasA ROS Driver for V4L2 USB Cameras. Contribute to ros-drivers/usb_cam development by creating an a

qlalf-smithy.tistory.com

 

Launching Multiple usb_cam's

 

카메라를 여러 개 켜려면 

 

/usb_cam/config/params_1.yaml과 /usb_cam/config/params_2.yaml 들어가서 본인이 키고 싶은 카메라에 맞는 포트번호 수정 (/dev/video1)

 

ros2 run usb_cam usb_cam_node_exe --ros-args --remap __ns:=/usb_cam_1 --params-file /본인경로/colcon_ws/src/usb_cam/config/params_1.yaml

 

ros2 run usb_cam usb_cam_node_exe --ros-args --remap __ns:=/usb_cam_2 --params-file /본인경로/colcon_ws/src/usb_cam/config/params_2.yaml

 

 

카메라 화질 올리기

내가 사용하는 usb 카메라 정보 확인하기

 

v4l2-ctl -d /dev/video2 --list-formats-ext

 

 

 

usb 카메라는 ‘MJPG’, ‘YUYV’ 2가지 포맷방식을 지원하고 각 포맷별로 여러 가지 출력 사이즈를 지원하고 있음.

 

 

yaml 파일에서 카메라 해상도를 480 → 720으로 올림.

 

다시 usb_cam_ws/ 경로에서 source install/setup.bash

 

ros2 run usb_cam usb_cam_node_exe --ros-args --params-file ~/usb_cam_ws/src/usb_cam/config/params_2.yaml

 

rqt로 확인해 보면 

 

 

480p 🔼

 

 

720p 🔼

 

더 좋아진 화질은 눈으로 확인이 가능했음!

 

 

rqt_gragh

 

/usb_cam은 /image_raw topic을 pub 함.

 

/image_raw를 sub 해서 사용하면 됨.