ROS 2 Foxy에서의 YOLOv5 실행 가이드

강민우·2023년 5월 8일
2

0. 개요

개발 환경
OS : Ubuntu 20.04 LTS
ROS : ROS 2 Foxy

본 게시글은 ROS 2 Foxy에서 웹캠과 YOLOv5를 사용하여 Object Detection을 실행할 수 있도록 하는 가이드입니다.

이를 위해 Github의 Ar-Ray-code님의 YOLOv5-ROS Repository를 사용하였습니다. 이는 YOLOv5detect.py를 ROS 2 input의 sensor_msgs/Image에 맞게 변환시킨 버전입니다.
Github : Ar-Ray-code/YOLOv5-ROS

해당 Repository의 README에 사용 방법이 설명되어있지만, 그대로 적용 시 몇가지 오류가 발생합니다. 따라서 본 게시글은 이러한 오류와 충돌을 해결할 수 있는 방법을 설명합니다.


1. 패키지 설치

아래 패키지는 모두 Ubuntu 20.4 LTS, ROS 2 Foxy 개발환경에서 설치를 진행합니다.

1.1 v4l2_camera_node

ROS 2에서 웹캠을 Yolov5에 사용하기 위해서는 video device 입력을 sensor_msgs/Image로 변경해야 합니다. 따라서 이를 지원하는 v4l2_camera_node 패키지가 필요여 해당 패키지를 설치합니다.

$ sudo apt install ros-foxy-v4l2-camera

1.2 YOLOv5-ROS

Github의 Ar-Ray-code/YOLOv5-ROS Repository를 다운받고 설치합니다. README에 사용 방법이 설명되어있지만, 그대로 적용시 오류와 충돌이 발생합니다. 아래와 같은 방법으로 install합니다.

먼저 yolov5 워크스페이스 폴더를 생성합니다.

$ mkdir -p ws_yolov5/src
$ cd ws_yolov5/src

이후 git clone 명령어로 해당 Repository를 다운받습니다.

$ git clone https://github.com/Ar-Ray-code/YOLOv5-ROS.git
$ git clone https://github.com/Ar-Ray-code/bbox_ex_msgs.git

YOLOv5 패키지는 사용되는 라이브러리를 requirements.txt 파일에 명시하여 제공합니다. 아래의 명령어로 관련 라이브러리를 자동으로 설치할 수 있습니다.
$ pip3 install –r ./YOLOv5-ROS/requirements.txt

여기서, python-dateutil 라이브러리가 충돌이 발생합니다. 아래와 같은 버전으로 업그레이드를 진행합니다.

$ pip install python-dateutil=2.8.2

bashrc에 아래와 같은 전역변수를 선언하여 저장합니다.

$ echo 'export PATH=${PATH}:/home/odroid/.local/lib/python3.8/site-packages'
>> ~/.bashrc
$ source ~/.bashrc

2. YOLOv5 실행

아래의 명령어로 ROS 2 Foxy 버전의 YOLOv5를 실행할 수 있습니다. 웹캠은 PC에 설치되어있어야 합니다. 이제 웹캠과 YOLOv5를 통한 Object Detection을 수행할 수 있습니다.

$ cd ws_yolov5/src/
$ source ./install/setup.bash
$ ros2 launch yolov5_ros yolov5s_simple.launch.py

profile
어제보다 성장한 오늘

1개의 댓글

comment-user-thumbnail
2023년 9월 11일

글 너무 잘 읽었습니다. 도움이 많이 됐어요!!
질문드리고 싶은게 있는데, 혹시 alscjfsmc@naver.com으로 메일 주실 수 있나요?

답글 달기