开发环境搭建:Ubuntu系统安装与配置、ROS2 Humble安装、Git版本控制、VS Code与IDE配置、Docker环境搭建
说实话,做自动驾驶开发,环境搭建往往是第一道坎。
我见过太多人,代码写得不错,结果卡在环境配置上,一折腾就是两三天。我自己早期也踩过不少坑——比如Ubuntu版本选错,ROS和系统不兼容,最后只能重装系统。那滋味,真不好受。
所以这一章,咱们把环境搭得稳稳当当的。你跟着我的步骤走,基本不会出问题。
本章核心目标:搭建一套完整的智能驾驶软件栈开发环境,涵盖操作系统、中间件、版本控制、IDE和容器化工具。
1. Ubuntu 22.04 LTS 系统安装与配置
为什么选 Ubuntu 22.04?说白了,这是目前对 ROS2 Humble 支持最好的版本。我试过 20.04 装 Humble,折腾半天,最后还是老老实实升了级。
安装步骤:
- 下载 Ubuntu 22.04 LTS 镜像(建议从清华镜像源下载,速度快)
- 制作启动U盘(推荐用 Rufus 或 balenaEtcher)
- 安装时选择「最小安装」,省去不必要的软件包
- 分区建议:
/分配 50GB,/home分配剩余空间,swap 分配 8GB
我的小技巧:安装时记得勾选「为图形或无线硬件安装第三方软件」。不然你可能会遇到显卡驱动问题,别问我怎么知道的。
系统配置:
# 更新软件源
sudo apt update && sudo apt upgrade -y
# 安装常用工具
sudo apt install -y curl wget vim git build-essential
# 配置中文输入法(如果你需要)
sudo apt install -y ibus-libpinyin
注意:不要随意更换软件源为未知源。我曾经为了图快换了个第三方源,结果系统依赖全乱了,最后只能重装。
2. ROS2 Humble 安装
ROS2 是自动驾驶软件栈的核心中间件。Humble 版本是目前最稳定的选择之一。
安装流程:
# 设置编码
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
# 添加 ROS2 源
sudo apt install software-properties-common
sudo add-apt-repository universe
# 添加 ROS2 GPG 密钥
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
# 添加仓库到 sources.list
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
# 安装 ROS2 Humble
sudo apt update
sudo apt install -y ros-humble-desktop
安装完成后,配置环境变量:
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
验证安装:打开终端,输入 ros2 run demo_nodes_cpp talker,如果能看到消息输出,说明安装成功。
3. Git 版本控制配置
做自动驾驶项目,代码版本管理是基本功。我个人习惯用 Git + GitHub 的组合。
# 安装 Git
sudo apt install -y git
# 配置用户信息
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
# 配置 SSH 密钥(方便与远程仓库交互)
ssh-keygen -t rsa -b 4096 -C "你的邮箱"
cat ~/.ssh/id_rsa.pub
把生成的公钥添加到 GitHub 或 GitLab 的 SSH Keys 设置里。
避坑指南:我曾经忘记配置 .gitignore,结果把编译生成的 build 目录也提交上去了。建议一开始就创建好 .gitignore 文件,把 build/、install/、log/ 这些目录排除掉。
4. VS Code 与 IDE 配置
VS Code 是目前最适合 ROS2 开发的编辑器,没有之一。插件生态丰富,调试方便。
安装 VS Code:
# 下载 .deb 包安装
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /etc/apt/trusted.gpg.d/
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
sudo apt update
sudo apt install -y code
必装插件:
| 插件名称 | 用途 |
|---|---|
| ROS | ROS2 语法高亮、代码补全、调试支持 |
| C/C++ | C++ 智能提示和调试 |
| Python | Python 开发支持 |
| GitLens | Git 历史可视化 |
| Docker | Docker 容器管理 |
注意:VS Code 的 ROS 插件需要配置 ROS_DISTRO 环境变量。如果插件不工作,检查一下 echo $ROS_DISTRO 是否输出 humble。
5. Docker 环境搭建
Docker 是解决「在我电脑上能跑」问题的终极方案。我团队现在所有开发环境都容器化了,部署效率提升了不少。
安装 Docker:
# 卸载旧版本
sudo apt remove docker docker-engine docker.io containerd runc
# 安装依赖
sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
# 添加 Docker 官方 GPG 密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# 设置仓库
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 安装 Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
# 将当前用户加入 docker 组(避免每次 sudo)
sudo usermod -aG docker $USER
newgrp docker
验证安装:
docker run hello-world
看到 Hello from Docker! 就说明安装成功了。
推荐做法:创建一个 ROS2 Humble 的 Docker 镜像,把开发环境打包进去。这样团队成员拉下来就能用,省去重复配置的时间。
# 示例 Dockerfile
FROM ros:humble-ros-base-jammy
RUN apt update && apt install -y \
vim \
git \
build-essential \
python3-pip
RUN pip3 install colcon-common-extensions
WORKDIR /workspace
CMD ["/bin/bash"]
我的经验:Docker 容器里跑 GUI 程序需要额外配置。如果你要用 rviz2 或 gazebo,记得加上 --net=host --env="DISPLAY" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" 这些参数。
好了,环境搭建到这里就完成了。你手头现在应该有一套完整的开发环境:Ubuntu 22.04 打底,ROS2 Humble 做中间件,Git 管代码,VS Code 写代码,Docker 做隔离。这套组合拳,足够你应付大部分自动驾驶开发场景了。
嗯,接下来你就可以开始写第一个 ROS2 节点了。不过那是下一章的事,咱们先把基础打牢。