본문 바로가기
ROS Project🦾

2D LiDAR에 obstacle_detector 라이브러리 적용하기 [5]

by 우직한 사람 2023. 7. 26.
반응형

사용 환경 : Ubuntu 20.04 noetic (docker)

2D LiDAR : YD LiDAR G4

보드 : JetsonNano 4GB Dev kit

 

obstacle_detector github

https://github.com/tysik/obstacle_detector

 

GitHub - tysik/obstacle_detector: A ROS package for 2D obstacle detection based on laser range data.

A ROS package for 2D obstacle detection based on laser range data. - GitHub - tysik/obstacle_detector: A ROS package for 2D obstacle detection based on laser range data.

github.com


1. catkin_ws/src에 git clone & catkin_make

#catkin_ws/src로 이동
cd catkin_ws/src

git clone https://github.com/tysik/obstacle_detector.git

cd ..
catkin_make

* catkin_make 명령어 실행 시, obstacle_detector 라이브러리를 make하는 과정에서 Qt5 패키지 설치 관련 에러가 발생 할 수 있음

다음 명령어를 통해 Qt5 관련 패키지를 설치한다.

sudo apt install qt5-default

 

2. lidar를 작동 시킨다.

작동 방법은 여기를 참고하시면 됩니다.

roslaunch ydlidR_ros_driver lidar_view.launch

라이다가 센싱하는 /scan 토픽 즉, 포인트 클라우드 데이터를 rosbag 파일로 저장한다.

 

저장하는 명령어

rosbag record -O test.bag /scan

 

3. 경로 및 파라미터 수정

obstacle_detecotr 라이브러리 워크플로우를 보면 (read.me에 나와있음)
기본적으로 두개의 라이다를 사용한다. 나는 한 개의 라이다를 사용하기 때문에 파라미터를 조정해줘야한다.

아래 글에서 front_scan 토픽을 이용하는 것을 알수 잇다.

 

전에 생성한 test.bag 파일은 /scan 토픽을 이용한다.

이 토픽을 /front_scan 토픽으로 변환해줘야한다.

 

rosbag 파일의 토픽 변환하는 방법은 rosbag_editor를 이용하는 것이다.

 

rosbag_editor

https://github.com/facontidavide/rosbag_editor

 

GitHub - facontidavide/rosbag_editor: Create a rosbag from a given one, using a simple GUI

Create a rosbag from a given one, using a simple GUI - GitHub - facontidavide/rosbag_editor: Create a rosbag from a given one, using a simple GUI

github.com

cd /catkin_ws/src

git clone https://github.com/facontidavide/rosbag_editor.git

cd ..

catkin_make

 

사용방법

rosrun roabag_editor roabag_editor

아래와 같은 화면이 나타난다.

1. Load Rosbag 버튼 클릭

2. >> 버튼을 클릭하여 변경할 토픽을 오른쪽 박스로 이동시킨다.

3. Renamed topic 에서 토픽의 이름을 변경해준 다음 save 버튼을 클릭한다.

 

obstacle_detector 라이브러리 launch 파일 파라미터 수정

5번째 줄의 resources 디렉터리 안에 bag 파일을 기반으로 실행시키는 코드이다.

이전에 저장한 rosbag 파일을 obstacle_detector/resources 디렉터리에 이동시킨다음

코드 또한 내 bag 파일 이름으로 수정한다.

robot으로 되어있는 부분을 laser_frame으로 수정한다.

 

Result

정상적으로 작동하는 것을 알 수 있다. 

 

Demo

https://youtu.be/HFIuKTtnGhU

 

반응형