人機互動安全的最後防線——基於能量函式的安全控制演算法

ControlPlusAI發表於2019-09-23
在人工智慧時代如何讓演算法更好地輔助人類預防事故的發生,保障生命財產安全,一直是相關研究領域活躍的研究內容。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

(封面來源於網路)

相關文章