第四章 ROS2 开发环境配置【VMware Ubuntu22.04 Humble】

摘要

完成 ROS2 系统安装之后,还需要搭建代码编写环境。本章主要讲解Git 版本管理工具 与VSCode 编辑器 的安装配置,手把手搭建 ROS2 的开发工作台,包含下载课程源码、VSCode 必备插件清单、工作空间.vscode配置文件、colcon 编译工具,同时整理 VMware 虚拟机下高频踩坑,新手可以直接复制命令完成整套配置。

一、开发工具介绍

做 ROS2 机器人开发,光有 ROS 运行环境还不够,还需要两个核心工具:

  1. Git:版本管理工具,用来下载开源源码、课程示例代码,管理自己项目代码变更,Github/Gitee 全部基于 Git 实现代码托管。
  2. VSCode:轻量跨平台代码编辑器,丰富插件可以支持 C++、Python、CMake、URDF、ROS 消息语法,是 ROS2 开发主流编辑器。

环境前置:已经完成 ROS2 Humble 安装,终端可以正常识别ros2命令。

二、Git 工具安装与课程源码下载

2.1 安装 Git

Git 是 Linux 原生的版本控制软件,终端直接 apt 安装:

复制代码
sudo apt update
sudo apt install git build-essential -y
  • build‑essential:C/C++ 编译基础工具集,后续编译功能包必须依赖。

安装完成验证:

复制代码
git --version

三、VSCode 安装(Ubuntu22.04 VMware)

3.1 安装 VSCode

两种安装方式,推荐 deb 包安装,避免 snap 版本在虚拟机中出现插件异常、权限问题。

方式 1:apt 源安装

复制代码
sudo apt update
sudo apt install code

方式 2:官网下载 deb 包 访问官网:Download Visual Studio Code - Free AI Code Editor for Mac, Linux, Windows 下载.deb包后终端执行:

复制代码
sudo dpkg -i code_xxx_amd64.deb
# 如果报依赖缺失,执行修复
sudo apt --fix-broken install

启动 VSCode

复制代码
# 终端输入直接打开
code .
# .代表打开当前所在文件夹

VMware 小技巧:虚拟机内 VSCode 复制粘贴异常,务必确认已经安装增强工具: sudo apt install open‑vm‑tools open‑vm‑tools‑desktop

四、ROS2 开发必备 VSCode 插件清单

打开 VSCode,快捷键 Ctrl+Shift+X 进入插件市场,搜索下面插件逐个安装。

插件名称 作用说明
Chinese (Simplified) Language Pack 中文语言包,界面汉化
Python Python 语法高亮、提示、调试(写 ROS2 Python 节点必备)
C/C++ C++ 语法解析、头文件跳转、代码补全
CMake CMakeLists.txt 语法高亮,编译辅助
ROS Microsoft 官方 ROS 插件,支持 ROS2 语法、快捷命令、创建功能包
Msg Language Support msg/srv/action 接口文件语法高亮
URDF URDF 机器人模型文件高亮
vscode‑icons 文件图标美化,区分不同后缀文件
Markdown All in One md 文档编写预览

✅全部安装完成后重启 VSCode,插件才会全部加载生效。

五、ROS2 工作空间与.vscode 配置(重点)

问题现象:打开 ROS2 代码,头文件全部飘红,找不到rclcpp/rclcpp.hpp,无法跳转定义。 解决:在工作空间根目录新建.vscode文件夹,写入配置文件,告诉 VSCode ROS2 头文件路径。

5.1 创建标准 ROS2 工作空间

复制代码
cd ~
mkdir -p ros2_ws/src
cd ros2_ws
# 后续所有功能包都放在src下面

5.2 新建.vscode/c_cpp_properties.json

在ros2_ws根目录创建.vscode文件夹,新建c_cpp_properties.json,复制下面完整内容(适配 humble):

复制代码
{
    "configurations": [
        {
            "browse": {
                "databaseFilename": "${default}",
                "limitSymbolsToIncludedHeaders": false
            },
            "includePath": [
                "/opt/ros/humble/include/**",
                "/usr/include/**",
                "/usr/local/include/**",
                "${workspaceFolder}/**",
                "${workspaceFolder}/install/include/**"
            ],
            "name": "ROS2",
            "intelliSenseMode": "gcc‑x64",
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "gnu11",
            "cppStandard": "c++17"
        }
    ],
    "version": 4
}
  • /opt/ros/humble/include/**:ROS2 系统头文件路径
  • ${workspaceFolder}/install/include/**:自己编译出来功能包的头文件

5.3 settings.json(可选)

.vscode/settings.json,设置 ROS 发行版、Python 补全路径:

复制代码
{
    "ros.distro": "humble",
    "python.analysis.extraPaths": [
        "/opt/ros/humble/lib/python3.10/site‑packages",
        "${workspaceFolder}/install/lib/python3.10/site‑packages"
    ]
}

5.4 打开工作空间

复制代码
cd ~/ros2_ws
code .

以后开发,统一code .打开整个工作空间,不要单独打开单个.cpp文件。

六、colcon 编译工具安装

ROS2 使用 colcon 编译工作空间,新版本系统不会自带,手动安装:

复制代码
sudo apt install python3‑colcon‑common‑extensions python3‑rosdep -y

简单编译测试:

复制代码
cd ~/ros2_ws
colcon build --symlink-install
source install/setup.bash

--symlink‑install符号链接模式,修改 Python 脚本不用重复编译,开发强烈建议带上该参数。

七、VMware Ubuntu22.04 专属踩坑汇总

坑 1:VSCode 复制粘贴失效、中文乱码

复制代码
sudo apt install open‑vm‑tools open‑vm‑tools‑desktop

重启虚拟机。

坑 2:C++ 头文件全部红色波浪线,无法跳转定义

  1. 确认.vscode/c_cpp_properties.json路径正确;
  2. 确认使用code .打开整个工作空间,不是打开单个文件;
  3. 重启 VSCode,等待索引加载完成。

坑 3:Git clone 下载源码很慢

使用 Gitee 仓库(课程源码已经是 Gitee 地址),不要用 Github 地址。

坑 4:VSCode 终端无法识别 ros2 命令

VSCode 内部终端不会自动读取~/.bashrc,两种方案:

  1. 打开 VSCode 终端手动执行 source ~/.bashrc;
  2. 设置 VSCode 终端 shell 为 bash。

坑 5:colcon build 编译报错缺少依赖

复制代码
rosdep update
rosdep install --from‑paths src --ignore‑src -y

八、本章小结

  1. Git 负责版本管理,用来下载课程源码、管理项目代码;
  2. VSCode 搭配一套 ROS2 专用插件,是 ROS2 主要代码编辑器;
  3. ROS2 代码必须放在工作空间src目录,使用colcon build编译;
  4. .vscode/c_cpp_properties.json解决头文件飘红、跳转失败问题,是新手最容易忽略的配置;
  5. VMware 虚拟机注意增强工具安装,解决复制粘贴、图形兼容性问题。
相关推荐
高洁013 小时前
数字孪生驱动大模型工业知识库
人工智能·python·深度学习·机器学习·transformer
workflower3 小时前
AI 产业链带动效应加速,催生AI 原生企业
人工智能·机器学习·机器人·云计算·无人机
幻影123!3 小时前
AlphaZero 五子棋实战(番外二):白棋专项训练的一种方案
python·机器学习·强化学习·五子棋·alpha zero
鬼手点金3 小时前
opencode-crawl4ai使用建议
java·开发语言·人工智能·python·机器学习
高洁0112 小时前
具身智能中的世界模型训练
人工智能·python·深度学习·机器学习·transformer
正在走向自律14 小时前
AI数据分析与可视化:从基础到应用实践
服务器·人工智能·python·机器学习·数据分析·pandas
for_ever_love__15 小时前
模型评估与过拟合——交叉验证、正则化与指标解读
机器学习·模型评估·交叉验证·过拟合
2501_9269783316 小时前
给自指系统接一个外部锚 —— 一个关于「用 AI 观察自己」的方法
人工智能·经验分享·笔记·机器学习·ai写作
for_ever_love__18 小时前
线性回归与梯度下降——从零手写一个模型
python·机器学习·线性回归·梯度下降
AOI小白新手上路20 小时前
anomalib 缺陷检测复现笔记:从跑通库到 EfficientAD 落地
人工智能·笔记·机器学习