环境准备:安装 ROS Noetic、创建 ROS 工作空间、安装 URDF 相关工具包
好,咱们正式开始动手。这一章说白了就是「把家伙事儿备齐」。我见过太多同学卡在环境配置上,一卡就是一整天。其实没那么玄乎,跟着我一步步来,半小时内搞定。
为什么选 ROS Noetic?
ROS 版本很多,我为什么偏偏推荐 Noetic?
Noetic 是 ROS 1 的最后一个长期支持版,支持到 2025 年。它基于 Ubuntu 20.04,稳定、生态成熟。你想想看,URDF 相关的工具包、教程、社区问答,绝大多数都是基于 Noetic 的。选它,就是选省心。
核心要求:你的电脑必须安装 Ubuntu 20.04(桌面版)。虚拟机、双系统、实体机都行。别用 WSL 1,WSL 2 勉强可以但图形界面麻烦,我个人不建议。
第一步:安装 ROS Noetic
打开终端,按顺序执行。我习惯把命令一条条复制,别一次性全粘进去——万一哪条报错,你都不知道错在哪。
# 1. 设置 sources.list
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
# 2. 设置密钥
sudo apt install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -
# 3. 更新
sudo apt update
# 4. 安装完整桌面版(推荐)
sudo apt install ros-noetic-desktop-full
这一步会下载大概 2-3 GB 的东西,网速慢的话去喝杯咖啡。我曾经在客户现场用手机热点装,等了快两小时……嗯,别学我。
小技巧:如果下载慢,可以换国内镜像源。中科大、清华的源都行。换源后记得 sudo apt update 再装。
第二步:初始化 rosdep
rosdep 用来解决依赖问题。你以后编译别人的包时,它会自动帮你装好缺少的库。
sudo rosdep init
rosdep update
如果 sudo rosdep init 报错说「已存在」,别慌——说明你之前装过 ROS 或者初始化过了。直接 rosdep update 就行。
注意:rosdep update 需要联网。如果卡住不动,通常是网络问题。试试挂代理,或者换个时间段再试。
第三步:设置环境变量
每次打开终端都要能用到 ROS 命令,所以要把环境变量写进 ~/.bashrc。
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
验证一下:
roscore
如果看到一堆日志输出,最后停在 started core service [/rosout],恭喜你,ROS 跑起来了。按 Ctrl+C 关掉。
第四步:创建 ROS 工作空间
工作空间就是你放代码的地方。我习惯叫它 catkin_ws,但你可以随便起名。
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
catkin_make 编译完后,你会看到 build 和 devel 两个文件夹。别忘了 source 一下:
source devel/setup.bash
同样,把它写进 ~/.bashrc,免得每次手动 source:
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
验证工作空间:运行 echo $ROS_PACKAGE_PATH,如果输出里包含 /home/你的用户名/catkin_ws/src,就说明环境生效了。
第五步:安装 URDF 相关工具包
URDF 建模需要几个关键工具。我列个表,你一眼就能看明白:
| 工具包 | 用途 | 安装命令 |
|---|---|---|
urdf_tutorial |
官方 URDF 教程和示例文件 | sudo apt install ros-noetic-urdf-tutorial |
joint_state_publisher |
发布关节状态,配合 GUI 调试 | sudo apt install ros-noetic-joint-state-publisher |
joint_state_publisher_gui |
图形化关节控制界面 | sudo apt install ros-noetic-joint-state-publisher-gui |
robot_state_publisher |
根据 URDF 发布 TF 变换 | sudo apt install ros-noetic-robot-state-publisher |
rviz |
3D 可视化工具,看机器人模型 | 已包含在 desktop-full 中 |
xacro |
URDF 宏语言,简化建模 | sudo apt install ros-noetic-xacro |
一条命令全装完:
sudo apt install ros-noetic-urdf-tutorial ros-noetic-joint-state-publisher ros-noetic-joint-state-publisher-gui ros-noetic-robot-state-publisher ros-noetic-xacro
验证安装:跑一个官方示例
装完别急着关终端。咱们跑个示例,看看 URDF 模型能不能显示出来。
roslaunch urdf_tutorial display.launch model:=/opt/ros/noetic/share/urdf_tutorial/urdf/01-myfirst.urdf
如果一切正常,会弹出 RViz 窗口,里面有一个简单的机器人模型。你可以用鼠标旋转、缩放看看。
如果没显示模型:检查一下 model:= 后面的路径对不对。也可以先 roscd urdf_tutorial 进到包目录,再用相对路径。
本章知识结构
我把这一章的核心流程画了张图,方便你对照操作:
避坑指南
我把自己踩过的坑列出来,你遇到了直接对照:
- Python 版本冲突:Ubuntu 20.04 自带 Python 3.8,ROS Noetic 默认用 Python 3。别手贱去改默认 Python 版本,否则 rosdep 会挂。
- 虚拟机性能:如果你用虚拟机,给 Ubuntu 至少 4GB 内存、2 个 CPU 核心。否则 RViz 会卡成幻灯片。
- 网络代理:公司网络或校园网经常屏蔽 ROS 源。我曾经在客户内网折腾了一下午,最后发现是代理没配好。配好
http_proxy和https_proxy环境变量就行。 - 多版本 ROS:如果你之前装过 ROS Kinetic 或 Melodic,记得先卸载干净,或者用 Docker 隔离。混着用会出各种诡异问题。
重要:每次新开终端,都先跑一下 source ~/.bashrc,或者直接关掉重开。我见过有人装完 ROS,忘了 source,然后跑来问我「为什么 roscore 找不到」……嗯,别成为那个人。