2、开发环境搭建:Ubuntu系统安装、ROS2 Humble安装、colcon构建工具、工作空间创建与配置

说实话,搞ROS2开发,第一步就是把环境搭好。这一步要是没弄利索,后面全是坑。我自己带过不少新人,十有八九的问题都出在环境上。今天咱们就把这事儿掰扯清楚。

2.1 Ubuntu系统安装——选对版本很重要

ROS2 Humble官方推荐的是Ubuntu 22.04 LTS。我个人习惯用LTS版本,稳定,社区支持时间长。你想想看,要是装了个非LTS版本,过两年就得升级系统,那多折腾。

安装方式有两种:

  • 双系统安装:适合需要高性能计算的场景,比如跑SLAM、点云处理。我建议给Ubuntu至少分80GB空间,别抠抠搜搜的。
  • 虚拟机安装:适合学习测试。用VMware或VirtualBox都行,内存给4GB以上,硬盘40GB起步。
我的小建议:如果你是第一次接触Linux,先用虚拟机练手。装坏了也不影响主系统,随便折腾。

安装过程中有个细节——语言选择。我建议选英文,因为终端里的错误信息大多是英文,中文环境下有时候会乱码。嗯,这个坑我踩过。

2.2 ROS2 Humble安装——别用一键脚本

网上有很多一键安装脚本,但我从来不用。为什么?因为出了问题你根本不知道哪里错了。老老实实按官方步骤来,其实也就几条命令。

先设置软件源:

sudo apt update
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

然后安装ROS2 Humble桌面版:

sudo apt install ros-humble-desktop

这个过程大概要下载2GB左右,网速慢的话可以先去喝杯咖啡。我曾经在客户现场装系统,网速只有200KB/s,那叫一个煎熬。

装完之后别忘了配置环境变量:

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
注意:如果你用的是zsh(现在很多人用),记得把.bashrc换成.zshrc。不然每次打开终端都要手动source,烦得很。

验证安装是否成功:

ros2 run demo_nodes_cpp talker

如果能看到节点在发布消息,那就成了。

2.3 colcon构建工具——比catkin好用多了

用过ROS1的朋友应该对catkin_make不陌生。ROS2换成了colcon,说实话,好用太多了。编译速度快,输出信息清晰,还支持并行编译。

安装colcon:

sudo apt install python3-colcon-common-extensions

就这么简单。colcon的核心命令就几个:

命令 作用
colcon build 编译整个工作空间
colcon build --packages-select 包名 只编译指定包
colcon build --symlink-install 使用符号链接安装(开发时推荐)
colcon test 运行测试
我的习惯:开发阶段一直用--symlink-install。这样修改Python文件后不用重新编译,直接运行就能看到效果,省时间。

2.4 工作空间创建与配置——组织好你的代码

工作空间说白了就是一个文件夹,用来放你的ROS2项目。我见过有人把所有代码都扔在home目录下,那叫一个乱。咱们还是按规矩来。

创建标准工作空间:

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
colcon build

编译完成后,你会看到三个新文件夹:

  • build:编译中间文件,不用管它
  • install:编译好的可执行文件和库
  • log:编译日志,出问题的时候翻翻这里

别忘了source工作空间:

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

这里有个小细节——如果你同时source了ROS2的setup.bash和工作空间的setup.bash,工作空间的会覆盖ROS2的。也就是说,你工作空间里的包会优先被找到。

避坑指南:我曾经把工作空间建在了一个中文路径下,结果编译死活过不去。ROS2对中文路径支持不好,老老实实用英文吧。

2.5 本章知识体系

下面这张图帮你理清整个环境搭建的脉络:

ROS2开发环境搭建知识体系 Ubuntu 22.04 LTS ROS2 Humble colcon构建工具 工作空间 (ros2_ws) src (源码) build (编译) install (安装) log (日志) 环境搭建是ROS2开发的第一步,也是最重要的一步

这张图把整个环境搭建的层次关系讲清楚了。底层是Ubuntu系统,上面跑ROS2框架,再用colcon来管理构建,最后所有代码都组织在工作空间里。每一层都依赖下一层,缺一不可。

好了,环境搭好之后,你就可以开始写ROS2节点了。记住,环境问题占了ROS2开发中至少30%的坑,这一步走稳了,后面就顺了。

可可精品资料库