跑通LIO_SAM->用VSCode调试ROS项目
1、编译lio-sam
根据官方github的REAME即可,链接在此:LIO_SAM
安装好ros-melodic-navigation; ros-melodic-robot-localization; ros-melodic-robot-state-publisher:gtsam之后就可以编译运行程序。具体看README。
2、配置VSCode
2.1 在VSCode中设置ROS
安装ROS插件,选择微软的那款。
选择install即可
2.2 用VSCode来调试LIO-SAM(launch)
在.vscode文件夹下添加launch.json文件,复制如下到该文件。修改target为你的run.launch的绝对路径。
{
"version": "0.2.0",
"configurations": [
{
"name": "lio_sam",
"type": "ros",
"request": "launch",
"target": "/home/caston/Code/Cpp/lio_ws/src/LIO-SAM/launch/run.launch"
}
]
}
这里设置好以后,点击左侧小瓢虫就可以出现2.3中的效果啦。
2.3、直接debug报错
点击小瓢虫–>点击开始按钮
出现了错误【xacro:in-order processing became default in ROS Melodic.You can drop the option】
错误提示:in-order选项在ROS-melodic版本中是默认的。
我们在项目中全局搜索这个选项找到在LIO-SAM的launch/include/module_robot_state_publisher.launch中有提到。在这里把–inorder给删掉即可。
接下来再点击开始按钮,可以看到,执行到预设的断点处了,也可以查看当前存活的变量值了。
ps1:记得另启一个终端,rosbag play~
ps2:如果想尽可能显示多变量信息,记得在CMakeLists.txt中关闭优化,在其中注释掉RELEASE相关行,并添加两行即可
SET(CMAKE_BUILD_TYPE Debug)
set(CMAKE_CXX_FLAGS_RELEASE "-O0 -Wall -g -pthread")
ps3:切记,打开工程从命令行进入,具体操作如下:
cd code_path
source devel/setup.bash
rm -rf .vscode # 这里删除.vscode是因为不删除的话每次打开我的vscode就会丧失变量类型查看的功能。一堆飘红,看着很难受!
code .