第四章 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 虚拟机注意增强工具安装,解决复制粘贴、图形兼容性问题。
相关推荐
我要见SA姐112 小时前
告别 Copilot?Codex 本地化部署指南
运维·数据库·机器学习·oracle·回归
搞科研的小刘选手14 小时前
【落地武汉 | EI, Scopus 双检索】第二届智能决策与机器学习国际学术会议 (ICIDML 2026)
机器学习·智能决策·学术会议·会议推荐·武汉
萌新小码农‍16 小时前
KL散度的介绍
人工智能·深度学习·机器学习
张祥64228890416 小时前
牛顿迭代法求解开普勒方程:从RTKLIB源码到数值分析
人工智能·算法·机器学习
面包狗AI4S18 小时前
GitHub AI4S 项目观察(2026-09-07—2026-09-13)
人工智能·深度学习·机器学习
宣宣猪的小花园.19 小时前
【机器学习】过拟合与泛化:模型为什么会“刷题很强、实战失灵”
人工智能·算法·机器学习
江畔柳前堤21 小时前
On-Policy Distillation 全景深潜
人工智能·网络协议·目标检测·http·机器学习·chatgpt·重构
Q26433650231 天前
【有i源码】基于大数据的城市交通流量与出行特征可视化分析平台-基于Hadoop的城市交通拥堵关联规则与异常检测研究
大数据·hadoop·机器学习·数据挖掘·数据分析·spark·数据可视化