使用ide调试slam算法,假定已经在ide构建好功能包(ROS工程已经包含build、devel、src目录(即:在bash窗口已经初始化 + 编译ros工程))。
1、clion设置
文件 -> 设置 -> 构建、执行、部署 -> :
CMake选项:add -DCATKIN_DEVEL_PREFIX:PATH=/home/temp/loam-note/devel
构建目录:/home/temp/loam-note/build
2、开一个窗口启动 roscore
3、再开一个窗口,source一下ROS工程,然后播放数据:
rosbag play --clock /home/data/nsh_indoor_outdoor.bag
note(似乎会影响调试): 将播放速度降低为原来的1/10
rosbag play -r 0.1 --clock /home/data/nsh_indoor_outdoor.bag
或者按空格键暂停。
推荐不改变播放数据速度,使用空格暂停来辅助调试代码。
参考:https://www.cnblogs.com/gdut-gordon/p/10643426.html
4、在IDE调试、设置断点、启动相关节点。(多个节点无非就是多个可执行程序)
最后,如果你的节点执行顺序是这样:roscore -> nodeA ->nodeB
如果你想在IDE调试节点nodeB源代码,很简单,开两个窗口,分别source,启动roscore、nodeA就行了。