Lidar sensor

정승균·2021년 1월 12일
0

ROS

목록 보기
11/14
post-thumbnail

Ⅰ. 2d 라이다 센서


  • 1도 단위로
  • 3600 sampling
  • 15cm ~ 18m 감지
    표기법, 인간이 인지하기 쉬운 표기법이나 계산비용이 크다

Ⅱ. IMU 센서가 발행하는 msg


  • topic : /scan
  • msg : sensor_msgs/LaserScan
jsg@jsg-ubuntu:~$ rosmsg show sensor_msgs/LaserScan
std_msgs/Header header
  uint32 seq
  time stamp
  string frame_id
float32 angle_min
float32 angle_max
float32 angle_increment
float32 time_increment
float32 scan_time
float32 range_min
float32 range_max
float32[] ranges
float32[] intensities
  • ranges에 거리 정보가 담긴다

Ⅲ. launch 파일


1. 센서를 이용하는 경우

<launch>
    <!-- rviz display -->
    <node name="rviz_visualizer" pkg="rviz" type="rviz" required="true" 
          args="-d $(find rviz_lidar)/rviz/lidar_3d.rviz"/>
    <node name="xycar_lidar" pkg="xycar_lidar" type="xycar_lidar" output="screen">
      <param name="serial_port"         type="string" value="/dev/ttyRPL"/>
      <param name="serial_baudrate"     type="int"    value="115200"/>
      <param name="frame_id"            type="string" value="laser"/>
      <param name="inverted"            type="bool"   value="false"/>
      <param name="angle_compensate"    type="bool"   value="true"/>
      <param name="scan_mode"	        type="string" value="Express"/>
    </node>
</launch>
  • serial_port : 디바이스 위치
  • serial_baudrate : 통신 속도
  • scan_mode : sampling 속도
  • frame_id : 디바이스의 frame id
  • inverted : 라이더가 뒤집어져 있는지
  • angle_compensate : angle compensation 기능 쓰는지 여부

2. rosbag을 이용하는 경우

<launch>
    <!-- rviz display -->
    <node name="rviz_visualizer" pkg="rviz" type="rviz" required="true" 
          args="-d $(find rviz_lidar)/rviz/lidar_3d.rviz"/>
    <node name="rosbag_play" pkg="rosbag" type="play" output="screen" 
          required="true" args="$(find rviz_lidar)/src/lidar_topic.bag"/>
</launch>

Ⅳ. Rviz 시각화

  • 실행 후 Add 클릭 -> LaserScan 추가

  • Fixed Frame, Topic, Size 설정

0개의 댓글