2. ROS环境搭建:ROS Noetic安装、工作空间创建、依赖包安装、环境变量配置

说实话,很多初学者一上来就急着写代码,结果编译报错半天找不到原因。我见过太多人卡在环境搭建这一步了。ROS环境就像房子的地基,地基没打好,后面盖的楼再漂亮也站不住。

这一章,咱们就把ROS Noetic的环境彻底搞定。我会把我在项目中踩过的坑、总结的经验都告诉你。

2.1 为什么选择ROS Noetic?

ROS Noetic是ROS1的最后一个长期支持版本,支持Ubuntu 20.04。我个人习惯用这个版本做机器人开发,原因很简单:稳定、生态成熟、资料多。

你想想看,MoveIt和导航栈在Noetic上跑得最顺。虽然ROS2已经出来了,但很多工业级应用和学术研究还是基于Noetic。说白了,学ROS1能帮你快速上手机器人开发,理解核心概念。

核心要点:ROS Noetic + Ubuntu 20.04 是目前最稳定的机器人开发组合之一。我建议初学者从这里开始。

2.2 安装ROS Noetic

安装过程其实不复杂,但有几个细节要注意。我曾经因为源没配好,折腾了一下午。

2.2.1 配置软件源

打开终端,执行以下命令:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

2.2.2 添加密钥

sudo apt install curl
curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

2.2.3 安装完整桌面版

我推荐安装完整版,包含了所有常用工具和库:

sudo apt update
sudo apt install ros-noetic-desktop-full

小技巧:安装过程可能需要10-20分钟,取决于你的网速。我一般会趁这个时间泡杯咖啡,或者看看文档。

2.2.4 验证安装

安装完成后,检查一下是否成功:

dpkg -l | grep ros-noetic

如果看到一堆以ros-noetic开头的包,说明安装成功了。

2.3 创建工作空间

工作空间是ROS项目的组织方式。我习惯把每个项目放在独立的工作空间里,这样管理起来清爽。

2.3.1 创建catkin工作空间

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace

2.3.2 编译工作空间

cd ~/catkin_ws
catkin_make

第一次编译会生成build和devel两个目录。嗯,这里要注意,如果编译报错,多半是依赖没装全。

注意:编译时如果提示找不到catkin命令,说明ROS环境变量没配置好。别急,下一节就讲这个。

2.4 配置环境变量

环境变量配置是新手最容易忽略的一步。我刚开始学的时候,每次开新终端都要手动source一下,后来才知道可以写到配置文件里。

2.4.1 添加ROS环境变量

把以下内容添加到~/.bashrc文件末尾:

source /opt/ros/noetic/setup.bash
source ~/catkin_ws/devel/setup.bash

然后执行:

source ~/.bashrc

2.4.2 验证环境变量

echo $ROS_PACKAGE_PATH

如果输出包含/opt/ros/noetic/share和你的工作空间路径,说明配置成功了。

避坑指南:我曾经因为同时装了ROS1和ROS2,导致环境变量冲突。建议只保留一个ROS版本的环境变量。

2.5 安装依赖包

MoveIt和导航栈需要一些额外的依赖包。我整理了一个清单,你直接复制粘贴就行:

sudo apt install ros-noetic-moveit
sudo apt install ros-noetic-navigation
sudo apt install ros-noetic-slam-gmapping
sudo apt install ros-noetic-amcl
sudo apt install ros-noetic-map-server
sudo apt install ros-noetic-teb-local-planner

这些包的作用如下:

包名 作用
moveit 运动规划框架
navigation 导航栈核心
slam-gmapping 激光SLAM建图
amcl 自适应蒙特卡洛定位
map-server 地图服务
teb-local-planner 局部路径规划器

2.6 知识体系总览

下面这张图展示了ROS环境搭建的整体流程和各个模块之间的关系:

ROS Noetic 环境搭建知识体系 ROS Noetic 环境 系统安装 工作空间创建 环境变量配置 依赖包安装 安装步骤 • 配置软件源 • 添加密钥 • 安装desktop-full 工作空间结构 • src/ 源码目录 • build/ 编译目录 • devel/ 开发目录 环境变量 • ROS_PACKAGE_PATH • ROS_MASTER_URI • ~/.bashrc配置 核心依赖 • MoveIt • navigation • slam-gmapping 验证命令:roscore & rosrun turtlesim turtlesim_node 运行成功即表示环境搭建完成

2.7 验证环境

最后,我们来验证一下整个环境是否正常工作:

# 启动ROS核心
roscore

# 新终端,启动小乌龟
rosrun turtlesim turtlesim_node

# 再开一个终端,控制小乌龟
rosrun turtlesim turtle_teleop_key

如果能看到小乌龟窗口,并且能用键盘控制它移动,恭喜你,环境搭建成功了!

总结一下:ROS环境搭建其实就三步——安装、配置、验证。每一步都有对应的命令和检查方法。我建议你把常用命令记下来,以后重装系统时能省不少时间。