cartographer仿真建图实现记录
----------------------------调试代码阶段1----------------------------------------------
在 cartographer_ws 下,执行 catkin_make_isolated --install --use-ninja编译
在 new_ws 下,执行 catkin_make编译(或者快捷键Ctrl+shift+B)
注意:如果在编译new_ws时报错,见评https://blog.csdn.net/qq_52537255/article/details/115606432论区。
把这个CMakeLists.txt删了自己重新在src下catkin_init_workspace一下就好。
在.bashrc 文件底部加入:source ~/cartographer_ws/install_isolated/setup.bash 和source ~/new_ws/devel/setup.bash
在new_ws下运行
1.1:roslaunch my_gazebo robot_laser_gazebo.launch
1.2:rosrun teleop_twist_keyboard teleop_twist_keyboard.py 新开一个独立窗口运行这个程序,不要用VScode中的端口,因为要放鼠标在这个窗口上。
1.3.1 roslaunch my_navigation cartographer_demo.launch (把cartographer_ros cartographer_demo_rplidar.launch的代码完全复制过来,可以用)
或
1.3.2 roslaunch cartographer_ros cartographer_demo_rplidar.launch (试试这个,ok,所以可以知道这是古月居老版本的代码。存在问题:rviz与gazebo地图不符,出现建图漂移的问题)
或
1.3.3 roslaunch cartographer_ros cartographer_velodyne.launch (出现map无法订阅的问题)
注意:如果有报错见:https://blog.csdn.net/sunstarss/article/details/88256646
1.4 建图存在问题:rviz漂移以及重影问题。
----------------------------调试代码阶段2----------------------------------------------
2.1把cartographer_ws 工作空间下 cartographer_ros包中的launch文件夹下面的launch文件复制到new_ws工作空间的my_navigation包中的launch文件夹。
这样全部代码可以在new_ws中编译,当需要修改lua文件时才需要打开cartographer_ws 工作空间。
注意:requires the ‘bag_filename’ arg to be set
说明该launch文件缺少引入的包?
或者是由于之前官方源码本身的问题没有解决,解决方法:在launch文件中,要求的参数名是“bag_filenames”而不是“bag_filename”。来源:https://zhuanlan.zhihu.com/p/50511558
代码见云盘