티스토리 뷰

 작성자 : 한양대학원 융합로봇시스템학과 유승환 석사과정 (CAI LAB)

 

 오늘은 YOLO-ROS를 설치하겠습니다! Jeston Nano를 기준으로 설명을 합니다. YOLOv2-tiny와 YOLOv3-tiny를 ROS로 구동하는 것은 성공했지만, YOLOv4-tiny는 실패했습니다... YOLOv4-tiny를 실행시키면 nano 시스템이 다운이 되버리네요ㅜㅜ 메모리 부족 문제인지, 제 코드의 문제인지는 모르겠지만... 일단은 YOLOv3-tiny를 베이스로 설명하겠습니다.!


 

leggedrobotics/darknet_ros

YOLO ROS: Real-Time Object Detection for ROS. Contribute to leggedrobotics/darknet_ros development by creating an account on GitHub.

github.com


1. YOLOv3-ROS 설치

  • 먼저 workspace를 생성합니다. 
## Create workspace for ROS, Change directory
mkdir -p workspace/src 
cd workspace/src

## init workspace
catkin_init_workspace

## Make
cd ../
catkin_make

 

  • 이제 깃헙에서 git 명령어를 활용하여 소스코드를 가져옵니다.
cd workspace/src
git clone --recursive git@github.com:leggedrobotics/darknet_ros.git
cd ../

 

  • 소스코드를 build 해줍니다.
catkin_make -DCMAKE_BUILD_TYPE=Release

  • 빌드를 하면 Cmake 에러가 발생할 겁니다.
  • 에러 내용 : (Project 'cv_bridge' specifies '/usr/include/opencv' as an include dir, which is not found.  It does neither exist as an absolute directory nor in '${{prefix}}//usr/include/opencv'.)

  • 이럴 때는 다음의 링크를 참고하여 아래와 같이 cv_bridgeConfig.cmake 파일을 수정하면 해결됩니다! : 95mkr.tistory.com/entry/ROS6
 

[ROS] 6. ROS + OPENCV (cv_bridge) 실시간 스트리밍

☞  메인보드 : Jetson Nano Developer Kit ☞  이미지 파일 버전 : JetPack 4.3 ☞  ROS 버전 : Ubuntu 18.04 LTS bionic > ROS Melodic <이전 포스트> ROS Melodic 언어 : C++ <이전 포스트> 4. 예제를 통..

95mkr.tistory.com

pkg-config --cflags opencv

# -I/usr/local/include

sudo gedit /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake

# in cv_bridgeConfig.cmake in line 94~96

# before
if(NOT "include;/usr/include;/usr/include/opencv " STREQUAL " ")
  set(cv_bridge_INCLUDE_DIRS "")
  set(_include_dirs "include;/usr/include;/usr/include/opencv")
  
# after
if(NOT "include;/usr/include;/usr/include/opencv " STREQUAL " ")
  set(cv_bridge_INCLUDE_DIRS "")
  set(_include_dirs "include;/usr/include;/usr/local/include/opencv")


  • 이제 yolov3-tiny를 사용하도록 몇 가지 파일을 수정해야 합니다.
  • (1) ~/workspace/src/darknet_ros/darknet_ros/config/ 위치에서 yolov3-tiny.yaml 파일 생성 :
  • yolov3.yaml 파일을 복사해서 yolov3-tiny.yaml 파일로 이름을 바꾼 후에,
  • config_file과 weight_file의 name을 yolov3-tiny.cfg와 yolov3-tiny.weights로 수정해줍니다.

 

  • (2) ~/workspace/src/darknet_ros/darknet_ros/config/ 위치에서 ros.yaml 파일 수정 :
  • ros.yaml 파일에서 camera_reading 부분의 topic을 자신의 카메라 환경에 맞게 바꿔줍니다.
  • 저는 리얼센스의 컬러 이미지 토픽이 /camera/color/image_raw여서 이렇게 수정했습니다.

 

  • (3) ~/workspace/src/darknet_ros/darknet_ros/launch/ 위치에서 darknet_ros.launch 파일 수정 :
  • Line 14 : yolov2-tiny.yaml -> yolov3-tiny.yaml 으로 수정
  • Line 6, 24 : 카메라 이미지 토픽이 다르다면, 토픽에 맞게 설정 (ex : /camera/color/image_raw)

 


 

2. YOLOv3-ROS 실행

  • 먼저 카메라 노드를 킵니다. 저는 real-sense의 컬러 이미지 노드를 키겠습니다.
# 터미널 1 : 카메라 키기
roslaunch realsense2_camera rs_camera.launch

 

  • 이제 darknet-ros 노드를 킵니다! 그러면 창이 뜨면서 카메라에서 검출되는 물체들을 보여줍니다ㅎㅎ 실습 끝~!
# 터미널 2 : darknet_ros 구동
roslaunch darknet_ros darknet_ros.launch

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31