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环境搭建的整体流程和各个模块之间的关系:
2.7 验证环境
最后,我们来验证一下整个环境是否正常工作:
# 启动ROS核心
roscore
# 新终端,启动小乌龟
rosrun turtlesim turtlesim_node
# 再开一个终端,控制小乌龟
rosrun turtlesim turtle_teleop_key
如果能看到小乌龟窗口,并且能用键盘控制它移动,恭喜你,环境搭建成功了!
总结一下:ROS环境搭建其实就三步——安装、配置、验证。每一步都有对应的命令和检查方法。我建议你把常用命令记下来,以后重装系统时能省不少时间。