先锋机器人gmapping配置详解

 硬件:先锋机器人p3dx  LMS1xx激光测距仪

完整的代码命令为:

roslaunch lms1xx LMS1xx.launch

rosrun rosaria RosAria

rosrun topic_tools relay  /RoaAria/odom odom   

rosrun rviz rviz

rosrun gmapping slam_gmapping

rosrun rosaria_client teleop

rosbag record /odom /scan /tf

rosrun map_server map_saver -f 地图名字



1.tf是连接laser/scan、odom、slam_gmapping之间的桥梁,设置好正确的frame_id是Gmapping正常工作的关键。在启动gmapping后,如果发现地图没有正常生成,可以运行 
 rosrun view_frames 


2.与p3dx进行通信的RosAria节点发布的里程计的topic是/RoaAria/odom,而gmapping订阅的topic是odom,因此需要应用topic_tools将/RoaAria/odom映射为odom。这里介绍一款让人为之一振的神器topic_tools,有时可能会让你头疼,一定选择与你系统相同的版本。topic_tools的包的链接为https://github.com/ros/ros_comm.git,注意选择与ubuntu相同的版本。把包放在工作空间下src中,并重新编译后,在启动RosAria节点后,运行以下命令


rosrun topic_tools relay /RoaAria/odom odom   
即可将产生odom的消息


此时在rviz上能够显示odom;


注:RosAria发布的tf是正确的,仅仅是里程计消息的name需要修改


3.激光传感器的启动不能使用rosrun lms1xx LMS1xx,应该通过launch文件启动,其中,完整的launch文件内容为


 
 
 
  
 
 
 








注:laser的父节点是base_link,odom的子节点是base_link,原始lms1xx包的launch文件里是没有启动static_transform_publisher节点的.启动该节点的意义是建立laser与gmapping之间的转换关系,使得gmapping能够订阅到激光消息,launch中的参数意义请参考ros.org


这里需要说明的是,launch文件启动失败的原因可能是由于安装了topic_tools导致的,因为topic_tools里面同样包含了roslaunch工具,解决方法是将相对路径改为绝对路径


4.依此启动rviz、RosAria、LMS1xx、slam_gmapping,即可进行建图。


5.rosrun rosaria_client teleop为启动键盘控制,小键盘上的方向键控制


6.rosbag record /odom /scan /tf 为记录数据,最后三项为需要记录的主题,全部记录则为-a


7.如果要重放记录的数据,进行再次处理,输出中间变量等,根据ROS WIKI上的教程,详细的步骤如下

1)  roscore

2) rosparam set use_sim_time true

3) rosrun gmapping slam_gmapping。这一步中如果要改变其中的参数,比如输出时间间隔等,可以在launch文件中修改,然后加载一次launch文件改变其中的参数,然后再次正常运行。比如roslaunch gmappping slam_gmapping_pr2.launch,终止掉,然后rosrun gmapping slam_gmapping

4) 另一个窗口中 rosbag play --clock bag的名字

如果要查看bag的信息,命令是 rosbag info bag的名字



导航配置说明:
在启动导航launch文件时,由于使用了rostools中的roslaunch,因此launch文件中不能包含相对路径,应包含绝对路径


导航功能包发布的是cmd_vel控制机器人运动,而先锋机器人订阅的topic是RosAria/cmd_vel,因此应该讲cmd_vel 映射到 RosAria/odom中
rosrun topic_tools relay cmd_vel RosAria/cmd_vel

你可能感兴趣的:(先锋机器人gmapping配置详解)