实时建图链接:Cartographer实时建图(个人定制版)
一、建图
1、启动机器人
roslaunch lp_robot lp_robot.launch
2、启动键盘
roslaunch lp_robot keybord.launch
3、录包
rosbag record -a
4、生成pbstream
文件(两种方法)
方法1:
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=floor_12.bag
rosservice call /finish_trajectory 0
rosservice call /write_state "{filename: '${HOME}/Downloads/floor_12.pbstream'}"
方法2:
roslaunch cartographer_ros offline_backpack_2d_lp_hy.launch bag_filenames:=/home/lyp/XXX.bag
bag使用绝对路径
注意:修改yaml文件夹的绝对路径
5、转成pgm
和yaml
文件
rosrun cartographer_ros cartographer_pbstream_to_ros_map -map_filestem=/home/lyp/Downloads/floor_22 -pbstream_filename=/home/lyp/Downloads/floor_22.pbstream -resolution=0.05
二、修图
1、将pbstream
、pgm
、yaml
文件复制到rviz_map_tool
文件夹的map
下。
2、启动rviz_map.launch
文件
roslaunch rviz_map_tool rviz_map.launch
3、依次选择Panels—>Add New Panel—>RvizMapTool。再选择Add,再添加Map。最后选择Add—>SegmentArry,然后修改topic为roadedge
,配置修图的线颜色和粗细。
4、将data文件夹下的.csv文件复制到read_markfile_pub
文件夹下。
5、运行read_markfile_pub.launch
文件测试是否能发布/roadedge
话题
roslaunch rviz_map_tool rviz_map.launch
roslaunch read_markfile_pub read_markfile_pub.launch
6、在上一步基础上测试navigation_map
是否发布/navigation_map
话题
roslaunch navigation_map navigation_map.launch
详细链接:
【1】Cartographer建图后的原始图像处理(Rviz插件修图)
【2】Rviz插件修完图之后发布修图坐标值(读取CSV文件)
【3】navigation_map订阅修图的坐标值并发布导航专用的地图
三、导航
1、修改read_markfile_pub.launch
加载.csv
文件路径
注意:将
roadedge.csv
文件拷贝到/read_markfile_pub/data/floor_11/
文件夹下
2、修改dwa_loop_move_base_simulation_object.launch
的加载地图.yaml
路径
注意:将
pbstream/pgm/yaml
文件拷贝到/simulation_launch/map/
文件夹下
3、 修改demo_backpack_2d_localization_test.launch
定位包,修改pbstream
文件路径
4、运行导航launch文件
roslaunch simulation_launch dwa_loop_move_base_simulation_object.launch
5、启动rviz
监测画面
rviz
6、将导航过程录制成bag
rosbag record -a
[总结]:需要修改的文件:
simulation_launch/launch/dwa_loop_move_base_simulation_object.launch
./read_markfile_pub/launch/read_markfile_pub.launch
./install_isolated/share/cartographer_ros/launch/demo_backpack_2d_localization_test.launch
四、仿真
/home/lyp/zhankun/SLAM/slam_simulation/catkin_ws
/home/lyp/zhankun/SLAM/slam_simulation/catkin_ws/src/rbx1/rbx1_nav/maps
1、运行一个机器人
roslaunch rbx1_bringup fake_turtlebot.launch
2、运行fake_amcl.launch调用已有的测试地图
roslaunch rbx1_nav fake_amcl.launch
或者,手动指定要调用的地图
roslaunch rbx1_nav fake_amcl.launch map:=test_map.yaml
3、启动rviz 并调用amcl配置文件
rosrun rviz rviz -d `rospack find rbx1_nav`/amcl.rviz
参考链接:ROS导航仿真和多点导航1———导航仿真