ROS安装过程全指南

本文最后更新于:2023年7月4日 下午

ROS2的安装比较简单,这篇文章里仅介绍ROS的安装,关于ROS2安装可以查看其它教程

一、什么是ROS?

机器人是一个系统工程,它涉及机械、电子、控制、通信、软件等诸多学科。以前,开发一个机器人需要花很大的功夫,你需要设计机械、画电路板、写驱动程序、设计通信架构、组装集成、调试、以及编写各种感知决策和控制算法,每一个任务都需要花费大量的时间,因此仅靠一个人的力量造出一个动力超强的人形机器人机甲是不可能的。

然而随着技术进步,机器人产业分工开始走向细致化、多层次化,如今的电机、底盘、激光雷达、摄像头、机械臂等等元器件都有不同厂家专门生产。社会分工加速了机器人行业的发展。而各个部件的集成就需要一个统一的软件平台,在机器人领域,这个平台就是机器人操作系统ROS。

ROS是一个适用于机器人编程的框架,这个框架把原本松散的零部件耦合在了一起,为他们提供了通信架构。ROS虽然叫做操作系统,但并非Windows、Mac那样通常意义的操作系统,它只是连接了操作系统和你开发的ROS应用程序,所以它也算是一个中间件,基于ROS的应用程序之间建立起了沟通的桥梁,所以也是运行在Linux上的运行时环境,在这个环境上,机器人的感知、决策、控制算法可以更好的组织和运行。

二、ROS版本选择

ROS目前已经支持在很多系统上安装部署了,但官方支持的平台仍然是Ubuntu。时至今日ROS已经相继更新推出了多种版本,供不同版本的Ubuntu开发者使用。为了提供最稳定的开发环境,ROS的每个版本都有一个推荐运行的Ubuntu版本。

如果你还没有安装Ubuntu,建议选择 Ubuntu 20.04 LTS 版本,它有更长的维护周期,且功能更完善。

如果你已经安装Ubuntu,请确定系统版本,在终端中输入 cat /etc/issue 确定Ubuntu版本号,然后选择对应的ROS版本。如果没有安装正确的ROS版本,就会出现各种各样的依赖错误,所以安装时请谨慎。

三、安装ROS

在正式的安装前,先检查下Ubuntu初始环境是否配置正确,一般在安装Ubuntu系统后都会进行更换,可以选择中科大源,注意树莓派等Arm架构选择Ports源。配置完成后,就可以开始安装ROS了,打开终端。

1、导入key公钥

1
2
gpg --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
gpg --export C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 | sudo tee /usr/share/keyrings/ros.gpg > /dev/null

公钥是Ubuntu系统的一种安全机制,也是ROS安装中不可缺的一部分。

2、将软件源添加至系统

1
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/ros.gpg] https://mirrors.ustc.edu.cn/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

这一步配置将ROS镜像添加到Ubuntu系统源列表中,这里使用的是中科大源,这样能够保证下载速度。

3、开始安装

首先,更新软件包索引,确保软件包索引是最新的:

1
sudo apt update

ROS中有很多函数库和工具,官网提供了四种默认的安装方式:

  • 桌面完整版(desktop-full):包含 ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及 2D/3D 感知包。
  • 桌面版(desktop):包含 ROS,rqt,rviz 和机器人通用库。
  • ROS-基础包(ros-base):包含 ROS 包,构建和通信库。没有图形界面工具。
  • 单独的包:你也可以安装某个指定的ROS软件包。

桌面系统推荐安装桌面完整版安装,服务器版本推荐安装基础版(如ros-noetic-ros-base)。

1
2
3
4
5
# Ubuntu 20.04安装Noetic版本
sudo apt install ros-noetic-desktop-full

# Ubuntu 18.04安装Melodic版本
sudo apt install ros-melodic-desktop-full

4、环境设置

1
2
3
4
5
6
7
# Noetic版本环境配置
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

# Melodic版本环境配置
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

在这里,命令 source /opt/ros/noetic/setup.bash 只在当前终端有作用,即具有单一时效性,要想每次新开一个终端都不用重新配置环境,就用echo语句将命令添加到bash会话中,使得每次打开一个新的终端后,ROS的环境变量都能够自动配置好。

ROS Noetic官方安装教程到这里已经全部结束了,Noetic版本可不进行后续安装步骤,请根据需要安装ROS工具。

5*、rosdep初始化

在使用许多ROS工具之前,我们需要初始化rosdep。rosdep能够轻松地为要编译的源代码安装系统依赖项,同时也是某些ROS核心功能组件所必需用到的工具。首先,我们先安装rosdep:

1
sudo apt install python-rosdep

在官方的rosdep使用流程中,我们会有如下两个步骤:

1
2
# sudo rosdep init
# rosdep update

因为网络原因,我们使用清华源rosdistro镜像方案,替换为以下步骤:

1
2
3
4
5
6
7
8
9
10
# 手动模拟 rosdep init
sudo mkdir -p /etc/ros/rosdep/sources.list.d/
sudo curl -o /etc/ros/rosdep/sources.list.d/20-default.list https://mirrors.tuna.tsinghua.edu.cn/github-raw/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
# 为 rosdep update 换源
export ROSDISTRO_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/rosdistro/index-v4.yaml
rosdep update

# 每次 rosdep update 之前,均需要增加该环境变量
# 为了持久化该设定,可以将其写入 .bashrc 中,例如
echo 'export ROSDISTRO_INDEX_URL=https://mirrors.tuna.tsinghua.edu.cn/rosdistro/index-v4.yaml' >> ~/.bashrc

6*、构建包的依赖

到目前为止,我们已经安装了运行核心ROS包所需的内容。为了创建和管理自己的 ROS 工作区,有各种各样的工具和需求分别分布。
要安装这个工具和其他构建ROS包的依赖项,请运行:

1
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential

四、测试ROS

首先启动ROS,输入代码运行roscore:

1
roscore

如果出现下图所示,那么说明ROS正常启动了!


ROS安装过程全指南
https://waterqun.com/ros-install.html
作者
WaterQun
发布于
2023年3月14日
许可协议