개발 환경
OS : Ubuntu 20.04 LTS
ROS : ROS 2 Foxy
본 게시글은 ROS 2 Foxy
에서 웹캠과 YOLOv5
를 사용하여 Object Detection
을 실행할 수 있도록 하는 가이드입니다.
이를 위해 Github의 Ar-Ray-code
님의 YOLOv5-ROS Repository
를 사용하였습니다. 이는 YOLOv5
의 detect.py
를 ROS 2 input의 sensor_msgs/Image
에 맞게 변환시킨 버전입니다.
Github : Ar-Ray-code/YOLOv5-ROS
해당 Repository의 README에 사용 방법이 설명되어있지만, 그대로 적용 시 몇가지 오류가 발생합니다. 따라서 본 게시글은 이러한 오류와 충돌을 해결할 수 있는 방법을 설명합니다.
아래 패키지는 모두 Ubuntu 20.4 LTS, ROS 2 Foxy
개발환경에서 설치를 진행합니다.
ROS 2에서 웹캠을 Yolov5에 사용하기 위해서는 video device 입력을 sensor_msgs/Image
로 변경해야 합니다. 따라서 이를 지원하는 v4l2_camera_node
패키지가 필요여 해당 패키지를 설치합니다.
$ sudo apt install ros-foxy-v4l2-camera
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
아래의 명령어로 ROS 2 Foxy 버전의 YOLOv5를 실행할 수 있습니다. 웹캠은 PC에 설치되어있어야 합니다. 이제 웹캠과 YOLOv5를 통한 Object Detection
을 수행할 수 있습니다.
$ cd ws_yolov5/src/
$ source ./install/setup.bash
$ ros2 launch yolov5_ros yolov5s_simple.launch.py
글 너무 잘 읽었습니다. 도움이 많이 됐어요!!
질문드리고 싶은게 있는데, 혹시 alscjfsmc@naver.com으로 메일 주실 수 있나요?