Clion 的 ROS配置

1,103 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

首先是一些基本操作了:

1)创建一个基本的ROS包,创建和构建ROS工作空间:

mkdir -p test/src
cd test
catkin_make

2)在工作空间中,创建一个名为my_package的包:

cd src
catkin_create_pkg hello roscpp rospy std_msgs

注:clion是以package为单位进行project管理的。当需要管理多个package包时,先参照进阶玩法装好插件。当需要切换到另一个包时,右键所在包的CMakeList.txt文件 ->Load CMake Porject 在这里插入图片描述

之后环境变量配置Clion

命令行窗口下打开clion:

/home/daybeha/Programs/clion-2020.2.5/bin/clion.sh

如果你的clion.sh和我一样藏的比较深,并且和我一样懒得记路径的话,可以把clion的路径存到环境变量里:

gedit ~/.bashrc

内容加上:

export PATH=" /你的Clion路径/clion-2020.2.5/bin:$PATH"

然后命令行

source ~/.bashrc

之后你所需要敲的内容就少多啦:

clion.sh

即可

在这里插入图片描述

如果还是更喜欢Windows那种有桌面图标的方式,可以在Clion界面最上方的Tools->Create Desktop Entry 不过个人踩坑建议:对于Ros工程而言,命令行打开clion能避免一些问题

打开clion后

File -> Open 选择 src下的 CMakeLists.txt,点 Open as Project.

在这里插入图片描述

在这里插入图片描述

src/hello文件夹中新建C++文件helloworld.cpp

#include "ros/ros.h"

int main(int argc, char *argv[]){

    //初始化ros节点
    ros::init(argc,argv,"hello");
    //创建ros节点句柄(not necessary)
    ros::NodeHandle n;
    //控制台输出 hello world
    ROS_INFO("hello world!");

    return 0;
}

在CmakeList.txt中加入

add_executable(hello src/helloworld.cpp)
target_link_libraries(hello ${catkin_LIBRARIES})

终端打开roscore 在这里插入图片描述 再回到clion就可以运行啦:

在这里插入图片描述

下面是进阶版玩法

1、 clion安装插件ROS-Robot Operating System

在这里插入图片描述 之后你会发现,新建工程多了一个选项 在这里插入图片描述 并且File下也多了一个Import ROS workspace

2、 修改bulid路径

默认情况下,CLion 将build输出放在自动创建的 cmake-build-debug 或 cmake-build-release 目录中。对于 ROS 开发,这意味着我们会在 CLion 和控制台分别有一个不同的build目录。

要解决这个问题:进入File | Settings(Ctrl+Alt+S) | Build, Execution, Deployment | CMake ,修改两个地方 在这里插入图片描述 其中CMake option内是:

-DCATKIN_DEVEL_PREFIX:PATH=workspace_folder/devel

注意修改workspace_folder

使用Launch文件

使用XML格式编辑launch文件,使其能够高亮显示和自动补齐: 找到File | Settings (Ctrl+Alt+S) | Editor | File Types 选择XML ,添加*.launch 在这里插入图片描述 将调试器附加到正在运行的节点: 运行你的.launch文件。 示例:

roslaunch roscpp_tutorials talker_listener.launch

talker_listener.launch

<launch>
  <node name="talker" pkg="rospy_tutorials" type="talker" />
</launch>

使用命令

rosnode list

获取目前正在运行的节点。在clion中选择Run | Attach to Process按 Ctrl+Alt+F5(按这个要谨慎,ubuntu下可能会黑屏,亲测),然后选择要连接的节点。 在这里插入图片描述

创建Msg文件

当需要根据*.msg, *.srv, *.action自动生成.h文件时,需要找到类似 xxx_generate_messages的CMake Application 在这里插入图片描述 不用管报错,Continue Anyway 在这里插入图片描述 之后就可以在

c++ : .../工作空间/devel/include/包名/xxx.h python: .../工作空间/devel/lib/python3/dist-packages/包名/srv/xxx.py

找到对应库文件

下面这步或许有用(有待验证)

3、编译使用的cmake版本

默认情况下,CLion编译使用的CMake是其内置的一个版本,而使用这个版本的CMake进行编译时会报出一些莫名其妙的错误,命令行中catkin_make明明可以正常编译,而这里就是会失败。解决这个问题的办法就是将CLion中的CMake更换为系统中的CMake,具体设置在Settings->Build->Toolchains,可以看到其中的CMake默认为Bundled,我们需要手动指定为系统中的CMake,具体看下图: 在这里插入图片描述

参考: ROS全局设置脚本加入.bashrc中:source /opt/ros/kinetic/setup.bash ROS setup tutorial(Clion官方文档) Installing and Configuring Your ROS Environment wiki.ros.org/IDEs#CLion (ROS官方文档) ROS Clion开发踩坑记录 Ubuntu20.04

CLion中编译ROS工程的配置详细教程