本文对应的 Gitbook 页为:daomingchen.gitbook.io/

1. 历史上的移动机器人

1966年到1972年间,在斯坦福研究所诞生了世界上第一个自主的移动机器人,Shakey。它与现代的大多数机器人很像,具备感知,规划,和控制能力。它通过摄像头完成感知;步进电机负责控制轮子的运动;航向仪来确定机器人的位姿;CPU位于远端,通过远程通信完成所有计算过程。

Shakey Robot

1997年,NASA 的移动机器人探险者号和旅行者号登录火星。在宇航中心的操控下,为人类传回了珍贵的火星科考数据。

PathFinder

2. 分类

移动机器人有着多种不同的分类方式,如按照工作环境,工作空间,应用领域和移动方法。本文主要研究的分类是根据机器人的移动方式进行的分类,即机器人驱动方法的机械结构分类。其可以分为:轮式机器人,足式机器人,履带式机器人,以及躯干式机器人。

其中轮式机器人和履带式机器人较为常见,运动学和动力学相对简单。从家庭用的扫地机器人,到自动驾驶的车辆,再到火星探测机器人,都可以见到这种轮式的设计。

扫地机器人

祝融号火星探测车

履带式机器人由于其连续性接触面,使得车辆可以在更复杂的路面行驶,进而此类机器人多用于军事,以及工程场景。

履带式工程车机器人

美国军用的无人火炮

足式机器人由于其工程的复杂度很高,因此目前没有太多的应用场景。但足式机器人由于其离散的运动接触方式,使其具有更高的灵活性,可以在更加复杂的环境中使用,比如需要上下楼梯的工厂,或者满是碎石的矿洞。关于足式机器人的研发是近几年国内外的热门话题,以机器人狗为例,头部玩家有:MIT 出身的波士顿动力,ETH 出身的 AnyMal,以及国内的宇树科技。

波士顿动力的机器人

ETH 的 AnyMal 机器人

宇树科技的机器狗

除了四足机器人外,两足机器人或者说类人型机器人也是足式机器人中的热门领域,比如早期的 Asimo 机器人,近期的 Atlas 以及 Digit 机器人,还有特斯拉,小米研发的人形机器人。

Honda 的 Asimo 机器人

Digit 机器人

Tesla Bot

小米的 CyberOne 机器人

最后是躯干式机器人,此类机器人的发展较为缓慢,还处于机械结构的仿生阶段,比较有名一些机器人有:类蛇形/蜥蜴的爬行机器人,类鱼型的水下机器人。

EPFL 的类蛇/蜥蜴型机器人

仿鱼类的软体机器人

最后还有一些混合式的移动机器人,比如双/四轮足机器人。

ETH 的轮足式机器人

3. 何为自主移动

自主移动意味着机器人在只有抽象的外部命令,如带我去 BRL 实验室,的情况下,完成从当前位置到终点的移动。此过程中,机器人面临着三个关键性的问题:

  • 我要去哪里?
  • 我在哪里?
  • 我该怎么去?

对于这些问题的解答是:

  • 机器人必须内置周围环境的静态或动态模型。
  • 机器人必须具有感知和解析环境的能力。
  • 机器人必须知道自己当前的位置。
  • 机器人必须具有规划路线以及运动控制的功能。

总结起来,移动机器人的系统逻辑可以表示为下图所示的 see-think-act cycle:

the see-think-act cycle

首先,机器人通过感知系统来观测自身所处的环境,通过一系列感知算法,将传感器的信号映射为机器人对自身位置以及所处环境的理解,进而在系统中创建出一张观测地图。路线规划系统则会根据外部输入的命令,结合当前的所处的环境,进行路径规划。运动控制系统则会驱动机器人将运动路径与规划路径相拟合。

即自主移动机器人的技术栈可以分为:

  • 感知 (Perception)
  • 定位与建图(SLAM)
  • 路径规划 (Path Plan)
    • 全局
    • 局部
  • 运动控制 (Motion Control)

4. 运动控制

目前来说,对于一般轮式机器人(非麦克纳姆轮)的运动控制的研究已经非常完善了。常见的车辆底盘模型有汽车模型,差速轮模型等,常用的控制器有 pid 控制器和 MPC 控制器。此外还会使用到卡尔曼滤波器加以辅助。

4.1 经典车辆控制

在运动控制中,我们关心的是车辆的当前速度,以车辆的中心为质点 (x,y),车辆模型可以表示为:

[x˙y˙θ˙]=f(ψ1,ψ2,,ψn,θ)

其中,ψi 为第 i 个轮子的转速。θ 为车辆的航向角。

而车辆的控制,则是上式的反向求解:

[ψ1ψ2ψn]=f(x˙,y˙,θ˙)

4.2 运动控制的前沿科技

在人工智能爆火的今天,运动控制自然也拥抱了AI。对于一些复杂的机构来说,机器人的运动学以及动力学模型的构建是非常困难的,因此 ETH 的一些研究员采用了强化学习的方式,在 Nvidia 提供的 Isaac 仿真平台上进行了约等于真实世界中上百年时间的训练,从而得到了如下的轮足式机器人控制效果:

zhihu.com/zvideo/155398

此外,ETH 的研究员还在设计更加鲁棒的(Robust)的控制器,如非线性 MPC 控制器,用于控制足式机器人在更加复杂的地面上行走:

zhihu.com/zvideo/155399

5. 感知

之前说到运动控制是相对成熟的技术了,但感知则是近二十年来,随着计算机视觉的飞速发展而逐渐成熟的技术。且目前仍是机器人领域亟待攻克的难关。

5.1 传感器

对于移动机器人来说,常用的传感器有:

  • 相机,激光雷达(Lidar) 用于获取周围环境的信息
  • GPS, IMU, Wheel encoders 用于定位机器人自身的位置。

5.2 环境理解

移动机器人中常用同步定位与建图技术 (SLAM) 来进行环境理解,即将世界分解为可行走区域和障碍物,同时将机器人的位置在地图上标注出来。效果如下图所示:

此外,在计算机视觉领域大火的人工智能技术,在自动驾驶汽车领域被用于环境理解。通常使用深度学习可以达成的环境理解能力远高于 SLAM,深度学习的识别能力,可以让机器人理解周围的每个物体是什么,车道线的位置,以及信号灯的情况等等。

5.3 导航示教

导航示教是 ETH 2017年的一个项目,目的是让人类利用便携式 SLAM 设备完成对机器人全局路径规划的设定。具体过程请看以下视频:

zhihu.com/zvideo/155399

6. 路径规划

路径规划解决的是机器人应该去哪?和怎么去的问题。该部分由可以被分为两个分支,全局路径规划和局部路径规划。

路径规划

6.1 全局路径规划

全局路径规划就是在已知地图和自身位置的情况下,完成的点到点之间的最优路径规划。这类似于我们日常使用的地图导航app。

6.2 局部路径规划

局部路径规划则是机器人根据自身传感器信息,在全局路径规划的引导下对机器人进行实时的轨迹预测,以处理动态发生的事件。如下图所示,红色与绿色分别代表全局路径与局部路径。

6.3 人机交互

现代的机器人在迈向智能机器人的过程中,除了需要完成其本职的功能之外,还需要考虑到与周围生物的交互。但此类交互本质上是社科问题,因此在本书上只简单提及该问题。


7. 前沿科技

目前移动机器人的前沿主力在于自动驾驶技术研究,其代表是特斯拉的自动驾驶。目前特斯拉完全自动驾驶 FSD 已经进入 Beta 阶段,其效果如下面的视频所示:

zhihu.com/zvideo/155400

另外一个前沿在于虫群机器人,即一群机器人在无主脑的情况下,自主的完成合作任务。其代表是浙大 Fast Lab,其虫群飞行器在 Science Robitics 杂志上的视频如下:

bilibili.com/video/BV1q

本文使用 Zhihu On VSCode 创作并发布