세팅은 링크 참고하기
$ git clone https://github.com/YDLIDAR/ydlidar_ros
<launch>
<node name="ydlidar_node" pkg="ydlidar_ros" type="ydlidar_node" output="screen" respawn="false" >
<param name="port" type="string" value="/dev/ttyUSB0"/>
<param name="baudrate" type="int" value="128000"/>
<param name="frame_id" type="string" value="base_scan"/>
<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>
<node pkg="tf" type="static_transform_publisher" name="base_link_to_laser4"
args="0.2245 0.0 0.2 0.0 0.0 0.0 /base_footprint /base_scan 40" />
</launch>
ydlidar 을 ttyUSB0 로 바꾸고
laser_scan 부분을 base_scan 으로 바꾼다.
만약에 다른 ydlidar 을 사용한다면
다음 표를 참고해서 baudrate 를 설정해 주어야 한다.
roslaunch ydlidar_ros X4.launch
Error, cannot bind to the specified serial port [/dev/ttyUSB0] and baudrate[12800]
다른 스레드가 이미 저 포트를 사용하고 있기 때문에 발생하는 에러이다.
나의 경우에는 gps 를 사용하기 위해 /ttyUSB0 를 건드렸었는데,
$ systemctl | grep gpsd
를 해보면 gpsdctl@ttyUSB0.service 에서 포트를 사용하고 있는 것을 확인할 수 있다.
$ systemctl stop gpsdctl@ttyUSB0.service
를 해서 스레드를 종료시켜주면 라이다가 제대로 작동하게 된다.