본문 바로가기

작업 일기

Raspberry Pi 4B에서 ydlidar 구동하기

- 개발 환경 : Raspberry Pi 4B (Ubuntu 18.04 / ROS melodic)

- 준비물 : ydlidar X4

- 참조 : https://github.com/YDLIDAR/ydlidar_ros

            https://github.com/EAIBOT/ydlidar/blob/master/launch/lidar.launch

            https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=rmlee&logNo=221475076977 

 

 

 

 

* ydlidar X4 Spec

- Sampling frequency (Hz) : 5000
- Range frequency (Hz) : 6 - 12
- Range Radius (m) : 0.12 - 10
- Baud rate : 128000
- Size : 47.5x60x95

 

 

Step1. Raspberry Pi 4B에 Ubuntu 18.04 설치하기

https://do-9un6.tistory.com/2

 

Raspberry Pi 4B에 Ubuntu 18.04 설치하기

- 준비물 : Raspberry Pi 4B, SD Card, SD Card Reader - 참조 : https://www.youtube.com/watch?v=zasvSKaobVI&t=576s (유투브 구선생) Step1. SD Card 포맷 - SD 카드를 USB 리더기에 꽂아주고 PC에 연결합..

do-9un6.tistory.com

 

 

Step2. Ubuntu 18.04에 ROS melodic 설치하기

https://do-9un6.tistory.com/4

 

Raspberry Pi 4B에 Ubuntu 18.04 설치하기

- 준비물 : Raspberry Pi 4B, SD Card, SD Card Reader - 참조 : https://www.youtube.com/watch?v=zasvSKaobVI&t=576s (유투브 구선생) Step1. SD Card 포맷 - SD 카드를 USB 리더기에 꽂아주고 PC에 연결합..

do-9un6.tistory.com

 

Step3. ydlidar 

- 참고 메뉴얼 :

YDLIDAR X4 Lidar User Manual V1.3.pdf
1.08MB

 

 

- Raspberry Pi 4B에 ydlidar-X4 연결

- lidar package 설치 및 컴파일

$ cd ~/catkin_ws/src
$ git clone https://github.com/EAIBOT/ydlidar.git
$ cd ..
$ catkin_make

$ cd ~/catkin_ws/src/ydlidar/startup
$ sudo chmod +x initenv.sh
$ sudo sh initenv.sh
$ cd
$ ls /dev/ttyUSB*
lidar의 USB 연결 정보 확인 후 
catkin_ws/src/ydlidar/launch에서 lidar.launch에서
/dev/ttyUSB*수정

 

- 라이다 rivz 실행 및 frame_ID 확인하기

$ cd ~/catkin_ws
$ source ./devel/setup.bash
$ roslaunch ydlidar lidar_view.launch
$ rostopic list
$ rostopic echo /scan

 

- lidar.launch 파일 수정

$ cd ~/catkin_ws/src/ydlidar/launch
// lidar.launch 파일 수정

<launch>
  <node name="ydlidar_node"  pkg="ydlidar"  type="ydlidar_node" output="screen" respawn="false" >
    <param name="port"         type="string" value="/dev/ydlidar"/>  
    <param name="baudrate"         type="int" value="128000"/>  
    <param name="frame_id"     type="string" value="laser"/>
    <param name="resolution_fixed"    type="bool"   value="true"/>
    <param name="auto_reconnect"    type="bool"   value="true"/>
    <param name="reversion"    type="bool"   value="false"/>
    <param name="angle_min"    type="double" value="-180" />
    <param name="angle_max"    type="double" value="180" />
    <param name="range_min"    type="double" value="0.1" />
    <param name="range_max"    type="double" value="12.0" />
    <param name="ignore_array" type="string" value="" />
    <param name="frequency"    type="double" value="8"/>
    <param name="samp_rate"    type="int"    value="5"/>
  </node>
</launch>

- ydlidar_node.cpp 파일 수정

  https://github.com/EAIBOT/ydlidar/pull/19/files

*변경 전
scan_msg.scan_time = scan.config.scan_time;
scan_msg.time_increment = scan.config.time_increment;

*변경 후
scan_msg.scan_time = 1/_frequency;
scan_msg.time_increment = 1/((float)samp_rate*1000);
 

- 라이다 실행

$ roslaunch ydlidar lidar.launch

 

- Rviz

$ roslaunch ydlidar lidar_view.launch