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 知识体系总览
下面这张图帮你理清整个环境搭建的逻辑链条:
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 测试一下,看看能不能收发消息。如果能,恭喜你,环境搭建成功了。
可可精品资料库