Ⅰ. 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
Ⅲ. launch 파일
1. 센서를 이용하는 경우
<launch>
<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>
<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 설정