环境准备:安装 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 进到包目录,再用相对路径。

本章知识结构

我把这一章的核心流程画了张图,方便你对照操作:

第 2 章:环境准备核心流程 安装 ROS Noetic 初始化 rosdep 设置环境变量 创建 ROS 工作空间 安装 URDF 工具包 关键检查点 1. roscore 能启动 2. rosdep update 成功 3. echo $ROS_PACKAGE_PATH 包含工作空间路径 4. 工具包安装无报错 5. RViz 能显示模型 6. 每次新终端都能 直接运行 ROS 命令 常见问题 • 安装慢 → 换国内源 • rosdep init 报错 → 跳过,直接 update • catkin_make 失败 → 检查依赖是否装全 • RViz 黑屏无模型 → 检查 model 路径 • 找不到命令 → 没 source setup.bash

避坑指南

我把自己踩过的坑列出来,你遇到了直接对照:

  • 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 找不到」……嗯,别成为那个人。