YDlidar 사용


YDlidar X4제품을 ROS1 melodic 과 함께 사용했다. 하지만 우리 차체 특성상 전방위를 볼 수 없고, 약 70 ~ -75' 사이만 볼 수 있었다. 또한 뒤집어서 장착했기에 관련 파라미터 수정에 대해 간단히 보고 가자.

수정하는 이유


slam이나 navigation는 보통 2d lidar로 시작하고, ros1 navigation에서도 기본적으로는 2d lidar기준으로 설명하고 있다. 이를 사용해봤다면 알겠지만, 보통 막히는 부분이 있다면 mapping 혹은 inflation radius를 그릴 때, 라이다를 기준으로 생각한다. 그리고 만약 차체 내부에 라이다를 장착하여 사용한다면, 내부에 존재하기에 기본적으로 배제하고 생각해야하는 범위가 생길 것이고, 그것을 배제하지 않는다면, slam, navigation은 제대로 작동하기 힘들 것이다. 그러므로 처음부터 범위를 제대로 설정해줘야 하는 것이다.

예시


<launch>
  <node name="ydlidar_node"  pkg="ydlidar_ros"  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_frame"/>
    <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 /laser_frame 40" />
</launch>

port는 udev rule에의해 생기므로 문제가 없다. baudrate또한 마찬가지. 여기서 문제가 되는 부분들은 reversion과 angle_min, max 이다.
기본적인 좌표축을 살펴보자.

zero direction이 x축이며, 이에 수직한 것이 y축이다. 우리팀은 라이다를 거꾸로 장착하고(reversion = True), 양 쪽에 가까운 판이 존재하여(angle 수정 필요) angle을 수정해야만 했다. 수정하는 방법은 간단하다. rviz를 통해 scan 토픽을 살피며 수정하면 되기 때문이다. 라이다를 장착하고 본인에게 필요한 파라미터를 수정하도록 하자.

좋은 웹페이지 즐겨찾기