第4章 开发环境搭建(上):安装Ubuntu 22.04、配置ROS2 Humble、安装必要的开发工具

说实话,搭建开发环境这件事,看着简单,但坑是真不少。我带过好几个项目组,新人来了第一周基本都在折腾环境。我自己也踩过不少雷,所以这一章我打算把最稳的路径告诉你。

咱们的目标很明确:一台能跑ROS2 Humble的Ubuntu 22.04系统,配上趁手的开发工具。别贪多,够用就行。

4.1 为什么选Ubuntu 22.04 + ROS2 Humble?

你可能要问:Ubuntu版本那么多,为什么非得是22.04?

原因很简单:ROS2 Humble是长期支持版(LTS),而它官方推荐的就是Ubuntu 22.04。我在项目里试过用20.04硬装Humble,结果依赖库各种打架,折腾了两天才搞定。后来老老实实换回22.04,半小时就完事了。

说白了,官方说啥你用啥,别自己找麻烦。

组件 推荐版本 说明
操作系统 Ubuntu 22.04 LTS 官方支持最完善
ROS2发行版 Humble Hawksbill 2024年5月前长期维护
Python 3.10(系统自带) 不要手动升级

4.2 安装Ubuntu 22.04

这里我假设你用的是x86架构的电脑。如果你用的是树莓派或Jetson,安装方式略有不同,但核心思路一样。

4.2.1 制作启动U盘

我个人习惯用Rufus(Windows下)或者balenaEtcher(跨平台)。别用那种老旧的UltraISO了,我遇到过它做的启动盘在安装时卡在分区步骤,折腾了半小时才发现是工具的问题。

  1. 下载Ubuntu 22.04.3 LTS镜像(建议从清华镜像站,速度快)
  2. 用balenaEtcher写入U盘(8GB以上)
  3. 重启电脑,按F2/F12/Del进入BIOS,设置U盘启动
小技巧: 如果你用的是NVMe固态硬盘,安装时如果找不到硬盘,进BIOS把SATA模式从RAID改成AHCI。我去年帮一个学员远程调试,他卡在这步整整一下午。

4.2.2 分区建议

嗯,这里要注意:千万别把整个硬盘都给根分区。我见过有人这么干,结果系统崩了想重装,数据全没了。

我的建议分区方案:

  • /boot:1GB,足够了
  • /:50-80GB,系统加ROS2够用
  • /home:剩余全部,你的代码、数据都放这里
  • swap:如果你的内存小于8GB,建议分8GB swap;内存16GB以上可以不分

4.3 配置ROS2 Humble

系统装好了,接下来就是重头戏。我建议你严格按照下面的步骤来,别跳步。

4.3.1 设置语言环境

ROS2对locale有要求。我曾经因为没设置好locale,编译时报了一堆莫名其妙的编码错误。

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
export LANG=en_US.UTF-8

4.3.2 添加ROS2软件源

这一步很关键。别用Ubuntu自带的源,里面没有ROS2。

sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
sudo apt update
注意: 如果curl下载失败,多半是网络问题。你可以手动下载ros.key文件放到指定目录。我在国内某云服务器上就遇到过,换了阿里云镜像才搞定。

4.3.3 安装ROS2 Humble

这里有两个选择:桌面版(Desktop)基础版(Base)。如果你只是做嵌入式开发,基础版就够了。但如果你要可视化调试,建议装桌面版。

# 桌面版(包含RViz、Gazebo等)
sudo apt install ros-humble-desktop

# 或者基础版(仅核心库)
sudo apt install ros-humble-ros-base

安装时间取决于你的网速。我建议你泡杯咖啡,大概15-20分钟。

4.3.4 配置环境变量

装完别忘了配置环境变量。不然每次打开终端都要手动source,烦得很。

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc

验证一下是否安装成功:

ros2 run demo_nodes_cpp talker

如果看到类似「Publishing: 'Hello World'」的输出,恭喜你,环境搭好了。

4.4 安装必要的开发工具

环境跑起来了,但光有ROS2还不够。你还需要趁手的兵器。

4.4.1 VS Code

我个人强烈推荐VS Code。它插件生态好,对ROS2支持也不错。我试过用Vim写ROS2代码,说实话效率差不少。

安装方式:

sudo snap install --classic code

或者去官网下载.deb包安装。装完后建议安装这几个插件:

  • ROS:官方插件,支持launch文件高亮、消息补全
  • Python:微软官方,写Python节点必备
  • C/C++:写C++节点必备
  • CMake Tools:编译ROS2包时有用
我的习惯: 把VS Code的自动保存打开(File → Auto Save)。写代码时经常忘了保存就编译,结果改了半天没效果,白费功夫。

4.4.2 Git

Git不用多说,版本控制是基本功。Ubuntu 22.04自带Git,但版本可能不是最新的。

sudo apt install git
git --version

配置一下你的信息:

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

这里有个小建议:邮箱最好用GitHub注册的那个,不然提交记录里头像显示不出来,看着难受。

4.4.3 其他实用工具

这几个是我项目中常用的,顺手装上:

sudo apt install terminator   # 分屏终端,调试时一个窗口看日志一个窗口发命令
sudo apt install htop         # 系统资源监控,看CPU内存占用
sudo apt install net-tools    # ifconfig等网络工具
sudo apt install vim          # 应急编辑用

4.5 验证环境

最后,我们来个快速验证。写一个最简单的ROS2节点,确保整个链路是通的。

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
colcon build
source install/setup.bash

如果编译没有报错,说明你的环境已经可以正常工作了。

到这里,你的开发环境就搭建完成了。 下一章我们会正式开始写第一个ROS2节点,到时候你会用上今天装的所有工具。

说实话,环境搭建这一步虽然枯燥,但基础打好了,后面写代码会顺畅很多。我见过太多人因为环境问题卡在第一步,最后放弃了ROS2。别急,慢慢来,稳一点。