CVAD

Ubuntu 20.04에서 ROS를 통해 USB Cam 연결하기 본문

etc

Ubuntu 20.04에서 ROS를 통해 USB Cam 연결하기

_DK_Kim 2024. 2. 15. 00:42

원래는 윈도우에서 wsl을 이용해서 ubuntu를 설치하고, ros까지 연결해서 사용해보려고했으나... 중간에 오류가 발생해서 그냥 연구실 컴퓨터처럼 듀얼 부팅으로 세팅했다.

 

CARLA랑 ISSAC Sim도 깔아야하고 할게 태산이지만, 최근에 USB Cam을 사서 이것부터 먼저 ROS로 연결해보고싶었다.

 

우선, 내가 쿠팡으로 구매한 cam은 로지텍 C920 모델이다. 근데 박스도 중국어로 적혀있고, logitec 로고 옆에 이상한 한자도 붙어있던데...이거 정품이 맞는지 의심이 든다...

 

의심은 잠시 접어두고 연결 과정을 알아보자.


1. USB 인식 확인

먼저, 컴퓨터에서 정상적으로 USB가 인식되는지부터 확인해 봐야한다. 터미널을 켜주고 아래의 코드를 입력해주자

ls -ltr /dev/video*

 

 

그러면 위와 같이 video + 숫자 형태로 카메라가 인식되는 것을 확인할 수 있다. 나의 경우 video0과 1번 모두 USB cam에 해당하는 port였다.


2. Package 설치 & Camera 확인

이제 관련 패키지를 설치해보자. 아래의 코드를 입력해준다.

apt-get install ros-noetic-usb-cam
apt-get install ros-noetic-image-view

sudo apt-get install libv4l-dev

 

설치가 완료되면, 연결된 카메라가 어떤 포멧과 해상도를 지원하는지 확인해본다. 확인을 위해 아래 코드를 입력한다.

 

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

 

그러면 아래의 터미널 사진처럼 지원 형식과 그에 따른 해상도, fram 속도 등의 정보를 보여준다.

내 카메라의 경우 YUYV(아마 YUV를 말하는 것 같다.), H264, MJPG 의 형식을 지원한다.


3. Git clone 해서 추가 프로그램 설치

이제 아래의 코드로 마지막 패키지만 설치해주면 거의 끝난다.

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

 

해당 파일은 catkin_ws/src에 clone 해준다. catkin_make를 해주기 전에 yml 파일을 수정해줘야한다.

수정 파일의 경로는 usb_cam/config/usb_cam.yml이다.

 

 

 

여기서 우리가 수정해야할 부분은 pixel_format, image_width, image_height 정도다.
아까 확인했던 카메라 정보를 반영해주면 된다. 나의 경우 MJPG 형식을 제외하곤 계속 catkin_make가 되지 않아

해당 값을 mjpeg로 입력하였다.

 

수정이 끝나면 아래와 같이 진행해준다.

catkin_make

source devel/setup.bash

 


4. ROS로 연결해보기

이제 카메라가 ros를 통해 잘 연결되는지 확인해 볼 차례다. 우선 roscore를 실행 시킨뒤, 터미널을 하나 열어 아래의 코드를 입력해주자.

 

roslaunch usb_cam usb_cam.launch

 

 

그리고 또 다른 터미널을 열어서 아래의 코드를 실행시켜주자

rosrun rqt_image_view rqt_image_view

 

잘 실행되었다면, 아래처럼 될 것이다. 아래는 내 컴퓨터에 보이는 rqt_image_view 화면을 가져온 것이다.

 

추가적으로 rostopic을 살펴보면 아래처럼 나온다.

 

물론, rqt graph도 잘 설정되어있는 것을 볼 수 있다.

728x90