IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 使用CLion调试ROS节点的正确方式/Clion如何调试ROS/调试ROS的方法 -> 正文阅读

[人工智能]使用CLion调试ROS节点的正确方式/Clion如何调试ROS/调试ROS的方法

网上看了好多CLion调试ROS的教程,但是没一个能用的,自己摸索了好久才找到方法,所以记录了下来,原本这个是我记在Notion上的,但是感觉没人能看得到,所以搬运到CSDN上。

👉原文见此处

调试步骤

  1. 命令行终端启动clion

    之所以要在命令行启动而不是从图标启动,是因为如果点击图标的话,在 .bashrc.zshrc 中source的ROS环境无法生效,进而导致某些依赖库找不到

  2. 在打开项目中选择 <工作空间根目录的绝对路径>/src/CMakeLists.txt 以项目方式打开

  3. 打开设置,在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)]

  4. 打上断点,调试运行看能不能命中断点,如果断点无法命中,那么在功能包CMakeLists.txt 下加入选项 set(CMAKE_BUILD_TYPE "Debug") 就行了

  5. 编译项目

    • 如果使用 catkin_make

      使用 caktin_make -DCMAKE_BUILD_TYPE=Debug 编译

    • 如果使用 catkin-tools

      编译前配置好CMAKE选项,运行 catkin config --cmake-args -DCMAKE_BUILD_TYPE=Debug

      然后使用 catkin build 编译即可

    注:

    推荐使用 caktin build 编译,因为使用 catkin_make 编译的话,配置CMAKE选项比较麻烦,每次都要重新加入CMAKE参数,而 catkin build 这种编译方式,在当前工作空间下配置好CMAKE参数后,编译的时候就不用二次配置了

    如果使用 catkin build 编译报错,可能是因为原来是用 catkin_make 编译的,把工作目录下的除了 src 以外的文件夹全都删了,再用 catkin build 重新编译就可以了

注意,调试ROS节点时需要预先启动 roscore

调试Tips

  1. 调试ROS节点时,需要加载参数怎么办?

    方法一:将参数配置到 .yaml 文件中,调试节点前预先使用 rosparam 命令将需要的参数加载即可,rosparam 的具体用法参考ROS官方网站

    方法二:将参数配置写到 .launch 文件中,使用 roslaunch 预先加载即可

  2. CLion只能调试一个节点,如果一个节点的运行依赖其它ROS节点怎么办?

    把其它节点及其参数配置写到 .launch 文件中,预先用 roslaunch 加载,用CLion单独调试需要调试的节点即可

  3. 找不到 CMakeLists.txt

    把文件夹打开找,肯定找得到的

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 17:30:27  更:2022-03-12 17:31:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 15:29:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码