VSCode Clangd 配置 ROS2

前置条件:

  • 安装 CMake 插件
  • 安装 clangd 插件,并禁用或卸载 c++ intellisense插件
  • 将 source /opt/ros/humble/setup.sh 添加到 ~/.bashrc,并source ~/.bashrc

下面愉快的开始配置吧😎

一、创建工作空间

mkdir -p ~/RosProject/ros_ws/src

二、创建包

cd ~/RosProject/ros_ws/src
ros2 pkg create --build-type ament_cmake --license Apache-2.0 --node-name my_node robot_ctrl

三、vscode 打开 robot_ctrl 文件作为项目目录,并配置CmakeLists.txt

cmake_minimum_required(VERSION 3.8)
project(robot_ctrl)

# 1. 指定C++版本
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 2. 自动在build目录下生成compile_commands.json文件
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  add_compile_options(-Wall -Wextra -Wpedantic)
endif()

# find dependencies
find_package(ament_cmake REQUIRED)

# 3. 引入所需要的包,否者找不到头文件!!!!
find_package(rclcpp REQUIRED)
find_package(std_msgs REQUIRED)

add_executable(my_node src/my_node.cpp)
 # 4. 添加依赖
ament_target_dependencies(my_node rclcpp std_msgs)

install(TARGETS my_node
  DESTINATION lib/${PROJECT_NAME})

if(BUILD_TESTING)
  find_package(ament_lint_auto REQUIRED)
  # the following line skips the linter which checks for copyrights
  # comment the line when a copyright and license is added to all source files
  set(ament_cmake_copyright_FOUND TRUE)
  # the following line skips cpplint (only works in a git repo)
  # comment the line when this package is in a git repo and when
  # a copyright and license is added to all source files
  set(ament_cmake_cpplint_FOUND TRUE)
  ament_lint_auto_find_test_dependencies()
endif()

ament_package()

四、点击 CMake Build
在这里插入图片描述

五、下面添加头文件测试配置是否成功:
在这里插入图片描述
可以看到,成功引入包(rclcpp 和 std_msgs)对应的头文件

六、修改 package.xml文件,因为 colcon build 需要该文件,具体配置如下:

<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
  <name>robot_ctrl</name>
  <version>0.0.0</version>
  <description>TODO: Package description</description>
  <maintainer email="ccy@todo.todo">ccy</maintainer>
  <license>Apache-2.0</license>

  <buildtool_depend>ament_cmake</buildtool_depend>
  
  <!-- 添加依赖 -->
  <build_depend>rclcpp</build_depend>
  <build_depend>std_msgs</build_depend>
  <exec_depend>rclcpp</exec_depend>
  <exec_depend>std_msgs</exec_depend>

  <test_depend>ament_lint_auto</test_depend>
  <test_depend>ament_lint_common</test_depend>

  <export>
    <build_type>ament_cmake</build_type>
  </export>
</package>

七、一切准确就绪,开始构建包

cd /home/ccy/RosProject/ros_ws
colcon build --packages-select robot_ctrl  # 构建robot_ctrl包

八、运行包节点

cd /home/ccy/RosProject/ros_ws 

# 设置工作空间环境变量,但只在当前终端有效。
# 若对每个终端有效,将source ~/RosProject/ros_ws/src/install 添加到 ~/.bashrc并souce ~/.bashrc
. install/setup.bash

ros2 run robot_ctrl my_node  # robot_ctrl为包名、my_node为节点名

在这里插入图片描述


剩余有其它问题,都可以在网上找到,在此不多赘述。


需要重点说明一点:c_cpp_properties.json 是针对 c++ intellisense 插件的,它其中的一系列配置(比如 includePath)对 Clangd 插件无效。Clangd 添加头文件搜索路径的正确方式是在CMake中添加 include_directories,进而重新生成compile_commands.json,这样才能找到头文件。

您好!为了在Ubuntu上安装并配置VSCodeROS2,您可以按照以下步骤进行操作: 1. 安装Visual Studio Code:您可以从VSCode官方网站(https://code.visualstudio.com/)下载并安装适用于Ubuntu的VSCode。 2. 安装ROS2:请确认您已经正确安装并设置ROS2。您可以按照ROS2官方文档(https://docs.ros.org/en/foxy/Installation.html)中的指南进行安装。 3. 安装VSCode插件:在VSCode中,打开“Extensions”(Ctrl+Shift+X),搜索并安装适用于ROS的插件。一些常用的插件包括"ROS"、"ROS2"和"ROS2 for VSCode"。根据您的需求选择适合的插件。 4. 配置VSCode插件:打开VSCode设置(File -> Preferences -> Settings),搜索"ROS"或"ROS2"相关的设置项,根据需要进行配置调整。例如,在设置中指定ROS2安装路径、工作空间路径等。确保将ROS2环境变量配置VSCode中。 5. 创建或打开ROS2工作空间:在VSCode中,使用终端或集成终端(Terminal或Integrated Terminal)导航到ROS2工作空间的根目录,然后使用命令`colcon build`构建工作空间。 6. 编辑和运行ROS2代码:在VSCode中,使用ROS插件的功能可以编辑和运行ROS2代码。您可以创建或打开ROS2包(package),编辑和调试代码,运行ROS2节点等。 请注意,这只是大致的步骤,具体操作可能因您的环境和需求而有所不同。建议您查阅VSCodeROS2官方文档以获取更详细的信息和指南。祝您成功配置VSCodeROS2!如果您有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值