ubuntu20.04 配置clion开发ROS2
使用vscode开发ros2时老是出现误报错,因此换到clion进行ros2的开发,用这篇博客记录一下
文章目录
0,前置任务
1,安装ros2:略
2,安装ninja:sudo apt-get install ninja-build
1,创建新的工作区并导航到该目录
mkdir dev_ws
cd dev_ws
mkdir src
cd src
创建示例功能包(应当创建节点,否则无法生成compile_commands.json文件,不知道为什么)
ros2 pkg create --build-type ament_cmake cpp_demo --dependencies rclcpp --node-name cpp01_demo
此时,我们有以下文件夹结构:
|_dev_ws
|_src
|_cpp01_demo
|_include
|_src
cpp01_demo.cpp
CMakeLists.txt
package.xml
2,在终端中搭建工作空间并生成编译数据库
在 clion中打开dev_ws文件夹,在clion的终端中使用以下指令构建:
colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -G Ninja --no-warn-unused-cli
生成完成后,请确保 dev_ws\build 包含compile_commands.json文件。
3,在 CLion 中打开工作区
在 CLion 中,调用 文件|打开,然后在build目录中选择compile_commands.json文件,作为项目打开。项目成功加载后如下所示:
4,更改项目根目录
默认情况下,CLions 将包含 compile_commands.json 文件的目录视为项目根目录。在我们的例子中,它是build目录。在“项目”树中,实际的源文件被标记为外部源文件。为了获得正确的项目结构,我们需要将项目根目录设置为实际的工作空间目录。在工具 |编译数据库 |更改项目根 并选择工作区目录(在本例中为 dev_ws)。
然后就可以使用clion开发ros2啦。
参考jetbrain官方文档
2024.4.7日更新
1,python包问题:当我使用python编写launch文件时,发现clion无法找到ros2的python软件包,如ros2launch等,可通过设置系统的python解释器的package搜索路径来解决,如下:
1,配置clion的python解释器
进入设置|构建,执行,部署|python解释器,点击“添加解释器”,“添加本地解释器”,再点击系统解释器,在右侧选择系统解释器的位置,将clion的python解释器配置为系统的python解释器
2,配置系统解释器的的package搜索路径
打开终端,输入
cd /usr/local/lib/python3.8/dist-packages
再创建一个.pth文件
sudo gedit filename.pth
在弹出的窗口中输入你ros的python软件包的路径,比如我的是:/opt/ros/foxy/lib/python3.8/site-packages
然后clion就可以找到ros的python软件包
2,添加新的cpp文件:
创建新的cpp文件并配置好cmake文件后,再次在终端中执行以下指令(在工作空间目录下),即可把该文件加入compile_commands.json中,可以使用alias为该指令设置别名来快捷输入
colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -G Ninja --no-warn-unused-cli