1.先根据雷达类型,下载相应的雷达驱动;
2.创建激光雷达的串口别名(这一步不是必要步骤,只不过方便后面程序文件中的表示,比ttyUSB端口更容易辨认);
3.制作雷达驱动启动文件,以rplidar为例:
<launch>
<node name="rplidarNode" pkg="rplidar_ros" type="rplidarNode" output="screen">
<param name="serial_port" type="string" value="/dev/ttyUSB0"/>
<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"/>
</node>
<node pkg="tf" type="static_transform_publisher" name="base_to_laser" args="0.0 0.0 0.18 0 0.0 0.0 base_link laser 100"/>
</launch>
其中主要注意的几个点如下:
serial_port:后面的值是雷达插的相应的usb端口名,如果前面创建过串口别名,也可以写相应的串口别名。
frame_id:注意后面值的对应关系。
tf参数设置:tf后面的args参数需要根据实际的机器人和雷达的相应位置进行修改,具体修改方法参考ros wiki。
4.制作建图导航启动文件,该启动文件主要有三个部分组成:
laser driver:上面制作的雷达驱动程序
Gmapping:建图启动程序
move base:导航启动程序
制作完以上文件后,就可以进行激光雷达建图导航了,下面以turtlebot为例:
启动机器人:
roslaunch turtlebot_bringup minimal.launch
启动上面制作好的建图导航启动文件:
roslaunch turtlebot_navigation rplidar_gmapping_demo.launch
启动键盘或游戏手柄,方便控制机器人运动建图(以下以手柄为例):
roslaunch rbx1_nav joystick_teleop.launch
启动rviz,实时查看建图情况:
roslaunch turtlebot_rviz_launchers view_navigation.launch