魏天昊作者 将门创投来源

人机交互安全的最后防线——基于能量函数的安全控制算法

在人工智能时代如何让算法更好地辅助人类预防事故的发生,保障生命财产安全,一直是相关研究领域活跃的研究内容。CMU Intelligent Control Lab提出了利用基于能量函数的安全控制算法来有效保障安全,实现优秀的安全控制。

魏天昊,浙江大学本科毕业,CMU在职科研助理,导师为刘畅流教授。研究方向是自动驾驶、人机合作和机器人安全。

  • 论文链接:

https://arxiv.org/abs/1908.01883
  • 项目链接:

https://github.com/intelligent-control-lab/BIS

一、背景介绍

1.1 安全控制算法

其实安全控制算法在我们的生活中很常见,只是大家意识不到它的存在。比如现在的汽车很多都有防碰撞紧急制动系统或者自动巡航系统,当汽车具有碰撞趋势的时候,就会自动减速。这其实就是一个安全控制算法最为简单的应用。

安全控制算法通过传感器收集的数据判断当前系统是否处于安全状态之中,当不安全时给出相应的控制信号,让系统恢复到安全状态。因此安全控制算法必须具有以下几个特点:
1、足够底层,不要求过多的环境信息;
2、实时反馈,运算速度足够快;
3、数学上可证明的有效性,能够有效保障安全。

1.2 能量函数安全控制算法的定义

能量函数安全控制算法有多种分类,其中最常见的一类就是基于能量函数的算法。能量函数的想法非常直观,比如下图:

先看最左边的图,我们的目标是让机器人(蓝色实心圆)从左下角出发,避开场地中间的三个障碍物,成功抵达右上角。那该如何规划路线呢?如右下图,我们借鉴重力势能,把三个障碍物想象成三座小山。我们假设机器人是受重力引导在三维平面上移动,这样机器人就很自然的避开了处于“高处”的三个障碍物,最终的路线如右上图所示。

这就是最早的基于能量函数的安全控制算法——势能场算法(Potential Field Method),因为该方法借鉴了重力势能。计算平面上每个点的“海拔高度”的函数,被称为势能函数,后来因为方法的扩展,人们将这一类计算“高度”的方法统称为能量函数,常用ϕ 表示。

1.3 基于能量函数的安全控制算法的分类

基于能量函数的安全控制算法有许多,他们的不同主要可以归结为两点:
1、能量函数的设计不同
2、应对同样能量值时的策略不同

因为能量函数的设计主要取决于具体任务,而且不同方法对于能量函数没有依赖性,我们接下来都假设他们使用同样的能量函数,主要介绍他们策略的不同。这里给大家介绍比较有代表性的四种:

Potential Field(PF)
Sliding Mode(SM)
Barrier Function(BF)
Safe Set(SS)

PF上面已经介绍过了,我们从SM开始。SM跟PF基本是一样的,主要区别在于每次收到SM只有判断系统处于危险状态时(能量函数大于某一常量)才会干预原先的路线,而且会使用最大力度干预。比如在上面的例子中,一开始机器人直线朝目标前进,直到快到某个障碍物的半山腰了,这时候能量函数达到了100,系统进入危险状态。此时,机器人会受到沿势能方向,马达最大扭力的控制输入。

PF和SM给出的控制输入都是沿着能量函数的梯度方向,而BF和SS给出的控制输入则是根据能量函数对于时间的导数来决定的。简单来说,PF和SM给出的控制输入是沿梯度方向的输入,而BF和SS给出的控制输入是使得下一时刻的速度沿梯度方向的输入,因此BF和SS能够更快速地使系统回到安全状态中来。

BF每次给出的控制输入除了由对时间的导数决定以外,还由当前的能量值决定。如果当前比较能量值比较高(比较危险),则给出的控制输入就会比较大,能量值较低时输入就比较小。SS则类似SM,仅在能量值高于某常量时给出控制输入。

二、数学框架

2.1 需要统一算法的原因

虽然有很多基于能量函数的安全控制算法,但是他们之间的联系和区别还是不太清晰。研究者提出算法时一般只说明自己算法的有效性,很少与其他算法进行比较。但现有算法之间具有明显的相似性,我们想能不能提出一个数学框架,把现有的算法都统一起来,把他们表示为同一框架应用不同超参数后的结果?

如果我们能把现有算法统一起来,则我们可以通过调整超参数得到不同的算法,对于发现新算法具有指导意义。

2.2 统一现有的算法

为了统一现有的算法,我们先把控制输入分解,分解为沿着梯度的方向和垂直于梯度的方向,Lgϕ 即能量函数的梯度。u0 是参考输入,如果安全控制算法觉得当前系统安全,则会直接采用参考输入。我们把平行于Lgϕ 的分量us 称为安全分量,因为系统的安全性完全由这个分量决定。而垂直于Lgϕ 的分量ue称为效率分量,因为在us 不变的情况下,我们可以通过调整ue 来提升系统的效率。

这样,我们就可以把不同的控制算法表示为两个超参数α,β。
我们这里省略四种方法的超参数以及证明,有兴趣的同学可以参见论文:

https://arxiv.org/abs/1908.01883

2.3 改进现有的算法

我们在实验过程中发现,SS在大部分时候都是表现最好的,但BF在安全阈值比较高的时候表现最好。我们就想能不能结合这两种方法的优点,提出一种更好的算法?

我们分析了两种算法的策略,发现BF的优势是在安全阈值比较高的时候,机器人离危险非常远的时候就会触发控制输入(系统判定进入危险状态)。BF的控制输入跟系统是否处于危险状态无关,而是跟能量函数值相关的,在这种时候,BF给出的控制输入是最小的,对系统的影响最小。而在安全阈值比较低的时候,其他方法触发的频率较低,而BF经常给出控制输入影响机器人的效率。

因此,我们提出了一种新的方法Sublevel Safe Set。我们微调了SS的超参数,让SS结合了BF的超参数,仅在危险状态下给出与能量函数值相关的控制输入。这种方法结合了这两种方法的优点,并在评测平台上证明了这一点。

三、评测平台

虽然我们将现有的算法统一了起来,但我们很难根据他们的数学形式推测出他们在具体场景下的表现。这是因为数学模型仅仅描述了他们的应对策略,很难对多变的环境进行建模。因此我们需要搭建一个虚拟环境来评测各种算法在各种平台上的表现,比如球模型、汽车模型、机械臂模型等。

而且一个评测平台对于整个领域的发展具有正面意义,计算机视觉的发展很大程度上受益于各种评测平台的发展。

我们使用python里的panda3d搭建了仿真环境,在环境中建模了各种测试平台,并实现了上述提到的几种算法。

整个平台已经开源,并且配备了详细的文档,感兴趣的同学可以参见:

https://github.com/intelligent-control-lab/BIS

(封面来源于网络)

ControlPlusAI
ControlPlusAI

分享机器人控制和AI领域里的一些知识和感想,偏学术。由来自UC Berkeley, Stanford, CMU的研究者们原创撰稿。

理论能量函数安全控制算法人机交互
1
相关数据
规划技术

人工智能领域的「规划」通常是指智能体执行的任务/动作的自动规划和调度,其目的是进行资源的优化。常见的规划方法包括经典规划(Classical Planning)、分层任务网络(HTN)和 logistics 规划。

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

导数技术

导数(Derivative)是微积分中的重要基础概念。当函数y=f(x)的自变量x在一点x_0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限a如果存在,a即为在x0处的导数,记作f'(x_0) 或 df(x_0)/dx。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

暂无评论
暂无评论~