网上看了好多CLion调试ROS的教程,但是没一个能用的,自己摸索了好久才找到方法,所以记录了下来,原本这个是我记在Notion上的,但是感觉没人能看得到,所以搬运到CSDN上。
👉原文见此处
调试步骤
-
从命令行终端启动clion 之所以要在命令行启动而不是从图标启动,是因为如果点击图标的话,在 .bashrc 或 .zshrc 中source的ROS环境无法生效,进而导致某些依赖库找不到 -
在打开项目中选择 <工作空间根目录的绝对路径>/src/CMakeLists.txt 以项目方式打开 -
打开设置,在CMake选项一栏加入以下内容 -DCATKIN_DEVEL_PREFIX:PATH=<工作空间根目录的绝对路径>/devel -DCATKIN_BUILD_PREFIX:PATH=<工作空间根目录的绝对路径>/build ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3LWgyyVq-1647003769535)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8b9721d5-381b-472d-bc3b-3f229d4f30ba/Untitled.png)]](https://img-blog.csdnimg.cn/7e71176b25714c8caf5a8d3fce018ee8.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5LiA5aS05bCP5a2m54my,size_20,color_FFFFFF,t_70,g_se,x_16) -
打上断点,调试运行看能不能命中断点,如果断点无法命中,那么在功能包的 CMakeLists.txt 下加入选项 set(CMAKE_BUILD_TYPE "Debug") 就行了 -
编译项目
注: 推荐使用 caktin build 编译,因为使用 catkin_make 编译的话,配置CMAKE选项比较麻烦,每次都要重新加入CMAKE参数,而 catkin build 这种编译方式,在当前工作空间下配置好CMAKE参数后,编译的时候就不用二次配置了 如果使用 catkin build 编译报错,可能是因为原来是用 catkin_make 编译的,把工作目录下的除了 src 以外的文件夹全都删了,再用 catkin build 重新编译就可以了
注意,调试ROS节点时需要预先启动 roscore
调试Tips
-
调试ROS节点时,需要加载参数怎么办? 方法一:将参数配置到 .yaml 文件中,调试节点前预先使用 rosparam 命令将需要的参数加载即可,rosparam 的具体用法参考ROS官方网站 方法二:将参数配置写到 .launch 文件中,使用 roslaunch 预先加载即可 -
CLion只能调试一个节点,如果一个节点的运行依赖其它ROS节点怎么办? 把其它节点及其参数配置写到 .launch 文件中,预先用 roslaunch 加载,用CLion单独调试需要调试的节点即可 -
找不到 CMakeLists.txt ? 把文件夹打开找,肯定找得到的
|