2、开发环境搭建:Ubuntu系统安装、ROS2 Humble安装、colcon构建工具、工作空间创建与配置
说实话,搞ROS2开发,第一步就是把环境搭好。这一步要是没弄利索,后面全是坑。我自己带过不少新人,十有八九的问题都出在环境上。今天咱们就把这事儿掰扯清楚。
2.1 Ubuntu系统安装——选对版本很重要
ROS2 Humble官方推荐的是Ubuntu 22.04 LTS。我个人习惯用LTS版本,稳定,社区支持时间长。你想想看,要是装了个非LTS版本,过两年就得升级系统,那多折腾。
安装方式有两种:
- 双系统安装:适合需要高性能计算的场景,比如跑SLAM、点云处理。我建议给Ubuntu至少分80GB空间,别抠抠搜搜的。
- 虚拟机安装:适合学习测试。用VMware或VirtualBox都行,内存给4GB以上,硬盘40GB起步。
安装过程中有个细节——语言选择。我建议选英文,因为终端里的错误信息大多是英文,中文环境下有时候会乱码。嗯,这个坑我踩过。
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
验证安装是否成功:
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的。也就是说,你工作空间里的包会优先被找到。
2.5 本章知识体系
下面这张图帮你理清整个环境搭建的脉络:
这张图把整个环境搭建的层次关系讲清楚了。底层是Ubuntu系统,上面跑ROS2框架,再用colcon来管理构建,最后所有代码都组织在工作空间里。每一层都依赖下一层,缺一不可。
好了,环境搭好之后,你就可以开始写ROS2节点了。记住,环境问题占了ROS2开发中至少30%的坑,这一步走稳了,后面就顺了。