使用CLion开发ROS工程


前言

在个人开发实践中,常需面对ROS(Robot Operating System)工程项目,且习惯使用CLion作为集成开发环境(IDE),虽然JetBrains插件市场曾有过ROS相关插件,但早已停止了更新。尽管CLion不直接支持ROS的catkin_make构建系统,但鉴于catkin_make是对CMake的封装,我们可以通过一系列环境配置,使CLion如同处理常规CMake项目一般来管理ROS项目。更重要的是,当面对陌生的ROS工程,不需要修改CMakeLisit.txt文件


一、环境

  • 系统环境: ubuntu20.04
  • ROS版本: noetic
  • CLion版本: 2023.1.7

二、操作步骤

1. 软件安装

Clion软件及ROS的安装可以查阅官网操作手册。

2. 关键操作

选择【设置】,进入设置界面
在这里插入图片描述
选择【构建、执行、部署】,选择【CMake】,进入CMake配置界面
在这里插入图片描述进行三处修改,分别为:
2.1 CMake配置:

-DCMAKE_MODULE_PATH=/opt/ros/noetic/share/catkin/cmake 
-DCMAKE_PREFIX_PATH=/opt/ros/noetic 
-DCATKIN_DEVEL_PREFIX=devel
-DCMAKE_INSTALL_PREFIX=bin 如何需要可以进行配置,不需要可以省略
... 其它项目需要的指定变量

注意:为了展示方便,我将其拆分到很多行,实际使用不同变量之间用空格隔开。

2.2 构建目录
设置为build。
2.3 环境变量
将ROS相关的变量都进行声明,有些项目可能会访问这些变量。
在这里插入图片描述
可以逐项打印这些变量,进行设置。

CMAKE_MODULE_PATH=/opt/ros/noetic/share/catkin/cmake;
ROS_DISTRO=noetic;
ROS_ETC_DIR=/opt/ros/noetic/etc/ros;
ROS_OS_OVERRIDE=ubuntu;
ROS_PACKAGE_PATH=/opt/ros/noetic/share;
ROS_PYTHON_VERSION=3;
ROS_ROOT=/opt/ros/noetic/share/ros;
ROS_VERSION=1;
LD_LIBRARY_PATH=/opt/ros/noetic/lib;

如果还需要指定其它第三方库,可以追加到LD_LIBRARY_PATH。
注意:为了展示方便,我将其拆分到很多行,实际使用不需分开,可参考CLion产品手册。

三、示例

以orb_slam3_ros为例,除了LD_LIBRARY_PATH额外引入了项目指定第三方库DBow2、g2o和Sophus,按照上述配置可完成编译。

1.生成构建系统文件

在这里插入图片描述

2. 生成可执行文件

在这里插入图片描述
只是测试可行性,因此忽略编译中的错误。
如果在 CMake 编译过程中,特定的服务(srv)或消息(msg)文件没有被编译,导致缺省的头文件缺失,可以从一个已经成功编译的 ROS 工程的 build 文件夹中复制缺失的头文件到当前项目的相应位置。例如该项目缺省的srv服务文件。

add_service_files(
  FILES
  SaveMap.srv
)

直接拷贝其文件编译后的头文件。
在这里插入图片描述

3.执行

在这里插入图片描述

根据可执行文件需求配置环境变量、程序实参、工作目录等即可执行ros节点。

四、总结

进行合理的配置,可以使CLion如同处理常规CMake项目一般来管理ROS项目。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值