以我自己的小车mrobot为例。
1. 硬件环境:
mrobot小车(采用turtlebot create协议,可以用turtlebot)。
git clone https://github.com/robopeak/rplidar_ros
建立catkin包,编译。
为了方便,先插上mrobot,识别为ttyUSB0,。再插上rplidar,识别为ttyUSB1。故到rplidar_ros里面,修改rplidar.launch文件。
将: <param name="serial_port" type="string" value="/dev/ttyUSB0"/>
改为: <param name="serial_port" type="string" value="/dev/ttyUSB1"/>
mrobot的launch文件中添加以下内容:
<node name="base2laser" pkg="tf" type="static_transform_publisher" args="0 0 0 0 0 0 1 /base_link /laser 50"/>
其中args前三个0 0 0,代表mrobot置于baselink的中心坐标上。可以根据rplidar位置改动坐标。
4.2 修改 topic数据接口
mrobot和turtlebot的gmapping数据接口是/odom/scan,不需要修改。
若不一致,添加 <remap from="scan" to="$(arg scan_topic)"/>。将scan映射到scan_topic。
运行rplidar雷达:roslaunch rplidar_ros rplidar.launch
运行gmapping:roslaunch mrobot_nav gmapping_demo.launch
然后启动rviz: rosrun rviz rviz -d `rospack find mrobot_nav`/gmapping.rviz,可以看到地图信息,如下图所示。
最后配一个mrobot小车的图
Steven.Zhang
1. 硬件环境:
mrobot小车(采用turtlebot create协议,可以用turtlebot)。
rplidar激光雷达。
git clone https://github.com/robopeak/rplidar_ros
建立catkin包,编译。
3. USB端口权限配置
mrobot小车默认串口是ttyUSB0,rplidar默认串口也是ttyUSB0。需要修改USB的权限和端口号。为了方便,先插上mrobot,识别为ttyUSB0,。再插上rplidar,识别为ttyUSB1。故到rplidar_ros里面,修改rplidar.launch文件。
将: <param name="serial_port" type="string" value="/dev/ttyUSB0"/>
改为: <param name="serial_port" type="string" value="/dev/ttyUSB1"/>
4. Mrobot底盘代码修改
4.1 在mrobot的TF上添加rplidarmrobot的launch文件中添加以下内容:
<node name="base2laser" pkg="tf" type="static_transform_publisher" args="0 0 0 0 0 0 1 /base_link /laser 50"/>
其中args前三个0 0 0,代表mrobot置于baselink的中心坐标上。可以根据rplidar位置改动坐标。
4.2 修改 topic数据接口
mrobot和turtlebot的gmapping数据接口是/odom/scan,不需要修改。
若不一致,添加 <remap from="scan" to="$(arg scan_topic)"/>。将scan映射到scan_topic。
5. 运行
运行mrobot底盘:roslaunch mrobot_bringup mrobot.launch运行rplidar雷达:roslaunch rplidar_ros rplidar.launch
运行gmapping:roslaunch mrobot_nav gmapping_demo.launch
然后启动rviz: rosrun rviz rviz -d `rospack find mrobot_nav`/gmapping.rviz,可以看到地图信息,如下图所示。
启动键盘或摇杆,建立完整的地图。
建地图的过程:
建好的完整地图:
键盘和摇杆关闭后,点2D Nav Goal 可以进行导航:
最后配一个mrobot小车的图
Steven.Zhang