2. ROS2开发环境搭建

说实话,环境搭建这事儿,看着简单,但坑是真不少。我见过太多同学卡在这一步,一卡就是一整天。嗯,咱们今天就把这事彻底捋清楚。

2.1 Ubuntu系统配置——打好地基

ROS2 Humble官方推荐的是Ubuntu 22.04 LTS。我个人习惯用桌面版,调试起来方便。如果你用服务器版,也不是不行,就是少了图形界面,后面调试可视化工具会麻烦点。

系统要求速览:

  • 操作系统:Ubuntu 22.04 LTS(Jammy Jellyfish)
  • 架构:x86_64 或 ARM64(树莓派用户注意)
  • 内存:建议8GB以上(4GB也能跑,但编译时会卡)
  • 磁盘:至少20GB空闲空间

装好系统后,第一件事是换源。你想想看,默认的国外源下载速度有多慢。我当年第一次装ROS,等了一个小时还没下完,后来才发现是源的问题。

# 备份原源文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 替换为清华源(用sed直接替换)
sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list

# 更新
sudo apt update && sudo apt upgrade -y

小技巧:换源后记得检查一下系统语言。我建议把系统语言设为英文,因为很多ROS报错信息是英文的,中文环境下有时会乱码。你可以在设置里改,或者直接装英文版。

2.2 ROS2 Humble安装——核心步骤

ROS2的安装方式有好几种。我推荐用apt安装,最省心。二进制包虽然大,但稳定,不用自己编译。

为什么会这样?因为ROS2的依赖链很长,自己从源码编译,光是等cmake跑完就能让你怀疑人生。

2.2.1 设置软件源

# 添加ROS2 GPG key
sudo apt install curl gnupg lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg

# 添加ROS2仓库
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

sudo apt update

2.2.2 安装ROS2 Humble

这里有两个选择:桌面版和基础版。做感知的话,我建议装桌面版,因为包含了rviz2、可视化工具这些。基础版只有核心库,连话题发布都看不到。

# 桌面版安装(推荐)
sudo apt install ros-humble-desktop

# 或者基础版
# sudo apt install ros-humble-ros-base

注意:安装过程大概需要10-20分钟,取决于网速。我曾经在客户现场装ROS2,结果网络断了,apt下载到一半卡住了。解决办法是:sudo apt --fix-broken install,然后重新执行安装命令。

2.2.3 配置环境变量

装完ROS2,你会发现ros2命令用不了。别慌,这是环境变量没配置。

# 把ROS2环境变量加到bashrc里
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc

# 验证安装
ros2 --version

如果看到类似 ros2 humble 的版本号,说明安装成功了。

2.3 工作空间创建与编译——你的第一个ROS2项目

工作空间(workspace)说白了就是你的项目文件夹。ROS2用colcon来编译,取代了ROS1时代的catkin。

2.3.1 创建工作空间

# 创建目录结构
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws

# 编译空工作空间(测试colcon是否正常)
colcon build

第一次编译会生成 build、install、log 三个文件夹。我个人习惯把 install 目录加到环境变量里:

echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc

2.3.2 创建你的第一个功能包

咱们创建一个简单的发布订阅节点,验证整个环境是否通顺。

cd ~/ros2_ws/src
ros2 pkg create my_first_pkg --build-type ament_cmake --dependencies rclcpp std_msgs

这个命令会生成一个功能包模板。你可以在 src/my_first_pkg/src 下写C++代码,或者在 my_first_pkg/my_first_pkg 下写Python代码。

2.3.3 编译与测试

cd ~/ros2_ws
colcon build --packages-select my_first_pkg

# 运行节点(假设你写了一个talker节点)
ros2 run my_first_pkg talker

避坑指南:我曾经在编译时遇到 CMake Error: The source directory does not appear to contain CMakeLists.txt。原因是工作空间路径有中文或空格。记住,ROS2对路径中的中文支持很差,所有路径最好都用英文。

2.4 知识体系总览

下面这张图帮你理清整个环境搭建的逻辑链条:

ROS2开发环境搭建知识体系 第一步:Ubuntu系统配置 安装Ubuntu 22.04 → 换源(清华/阿里) → 系统更新 → 设置语言为英文 第二步:ROS2 Humble安装 添加ROS2源 → 安装桌面版(ros-humble-desktop) → 配置环境变量 第三步:工作空间创建与编译 mkdir -p ros2_ws/src → colcon build → 创建功能包 → 编译测试 桌面版 含rviz2、可视化工具 基础版 仅核心库 源码编译 耗时较长,不推荐新手

2.5 常见问题与避坑

问题 原因 解决办法
ros2命令找不到 环境变量未配置 检查 ~/.bashrc 中是否有 source /opt/ros/humble/setup.bash
colcon build 报错 依赖缺失或路径有中文 sudo apt install python3-colcon-common-extensions,检查路径
apt update 失败 ROS2源未正确添加 重新执行添加仓库的步骤,检查网络
编译时内存不足 虚拟机分配内存太少 增加虚拟机内存到8GB,或使用 colcon build --parallel-workers 1

重要提醒:如果你用的是虚拟机,记得给虚拟机分配至少2个CPU核心和8GB内存。我见过有人在1核2G的虚拟机上编译ROS2,结果编译了3个小时还没完,最后系统直接卡死了。

嗯,到这里环境就搭好了。你可以运行 ros2 run demo_nodes_cpp talker 和 ros2 run demo_nodes_py listener 测试一下,看看能不能收发消息。如果能,恭喜你,环境搭建成功了。

可可精品资料库