第3章 安装与配置:ROS2 TF2软件包安装与工作空间配置
好,咱们正式开始动手。前两章聊了TF是什么、能干什么,现在该把轮子装上车了。这一章我带你一步步把ROS2 TF2相关的软件包装好,再把工作空间搭起来。别小看这一步——我见过太多人卡在环境上,代码写好了却跑不起来,最后发现是包没装全。
3.1 确认你的ROS2版本
在装任何东西之前,先看看你系统里ROS2是什么版本。我个人习惯用 ros2 --version 或者 printenv ROS_DISTRO 来确认。如果你用的是Ubuntu 22.04,大概率装的是Humble Hawksbill。我建议你统一用Humble,因为后面MoveIt2对Humble支持最稳。
# 检查ROS2版本
ros2 --version
# 或者
printenv ROS_DISTRO
如果输出是 humble,那就对了。要是你还在用Foxy或者Galactic,嗯……也不是不行,但有些包名和API有小差异。我踩过这个坑——明明代码逻辑没问题,编译报错说找不到某个头文件,最后发现是版本对应的包名不一样。
3.2 安装TF2核心软件包
ROS2的TF2包拆得比较细,但别慌,核心就三个:tf2、tf2_ros、tf2_tools。用apt一键安装就行。
sudo apt update
sudo apt install ros-humble-tf2 ros-humble-tf2-ros ros-humble-tf2-tools
装完之后,我建议你顺手把 tf2-geometry-msgs 和 tf2-eigen 也装上。虽然不强制,但后面做坐标变换时你会感谢我的。
ros2 pkg list | grep tf2 看看是不是都注册上了。别笑,有一次我apt install没加sudo,包没装进去,查了半天才发现。
3.3 创建工作空间
工作空间是ROS2项目的家。我习惯用 ros2_ws 这个名字,简单明了。你想想看,以后项目多了,每个工作空间名字都不同,自己都记不住。
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
colcon build
第一次build可能会有点慢,因为要编译一些基础依赖。build完成后,别忘了source环境:
source ~/ros2_ws/install/setup.bash
为了以后不用每次都手动source,我建议你把它加到 ~/.bashrc 里:
echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc
source ~/.bashrc
COLCON_PREFIX_PATH 来管理。
3.4 验证安装是否成功
装完别急着写代码,先跑个简单的验证。打开终端,运行:
ros2 run tf2_tools view_frames.py
如果提示找不到命令,说明包没装对。正常情况下,它会生成一个 frames.pdf 文件,虽然现在TF树上啥也没有,但至少证明工具链通了。
你也可以用Python快速测试一下:
python3 -c "import tf2_ros; print('tf2_ros imported successfully')"
如果没报错,恭喜你,环境搭好了。
3.5 安装MoveIt2(可选但推荐)
咱们这门课后面要结合MoveIt,所以提前把MoveIt2也装上。虽然本章不深入,但先装好省得后面手忙脚乱。
sudo apt install ros-humble-moveit
这个包比较大,包含运动学、规划器、碰撞检测等一堆东西。安装时间可能有点长,去泡杯咖啡吧。
3.6 常见问题与避坑
| 问题 | 原因 | 解决办法 |
|---|---|---|
colcon build 找不到包 |
没有source ROS2环境 | 先 source /opt/ros/humble/setup.bash |
ros2 run tf2_tools 报错 |
包没装全或没source | 检查 ros2 pkg list | grep tf2 |
| Python import 失败 | Python环境不对 | 确认使用的是系统Python3,不是conda虚拟环境 |
| 工作空间build后找不到自己的包 | 没有source install/setup.bash | 重新source,或者检查 COLCON_PREFIX_PATH |
echo $AMENT_PREFIX_PATH 看看当前环境有没有包含我的工作空间路径。如果没有,八成是source没生效。
好了,到这一步,你的ROS2 TF2环境就彻底准备好了。但别急,先把今天装的东西玩熟,尤其是 view_frames.py 和 colcon build 的流程。基础打牢了,后面写代码才顺手。