魏天昊,浙江大學本科畢業,CMU在職科研助理,導師為劉暢流教授。研究方向是自動駕駛、人機合作和機器人安全。
論文連結:
專案連結:
1.1 安全控制演算法
其實安全控制演算法在我們的生活中很常見,只是大家意識不到它的存在。比如現在的汽車很多都有防碰撞緊急制動系統或者自動巡航系統,當汽車具有碰撞趨勢的時候,就會自動減速。這其實就是一個安全控制演算法最為簡單的應用。
這就是最早的基於能量函式的安全控制演算法——勢能場演算法(Potential Field Method),因為該方法借鑑了重力勢能。計算平面上每個點的“海拔高度”的函式,被稱為勢能函式,後來因為方法的擴充套件,人們將這一類計算“高度”的方法統稱為能量函式,常用ϕ 表示。
1.3 基於能量函式的安全控制演算法的分類
因為能量函式的設計主要取決於具體任務,而且不同方法對於能量函式沒有依賴性,我們接下來都假設他們使用同樣的能量函式,主要介紹他們策略的不同。這裡給大家介紹比較有代表性的四種:
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
我們在實驗過程中發現,SS在大部分時候都是表現最好的,但BF在安全閾值比較高的時候表現最好。我們就想能不能結合這兩種方法的優點,提出一種更好的演算法?
因此,我們提出了一種新的方法Sublevel Safe Set。我們微調了SS的超引數,讓SS結合了BF的超引數,僅在危險狀態下給出與能量函式值相關的控制輸入。這種方法結合了這兩種方法的優點,並在評測平臺上證明了這一點。
雖然我們將現有的演算法統一了起來,但我們很難根據他們的數學形式推測出他們在具體場景下的表現。這是因為數學模型僅僅描述了他們的應對策略,很難對多變的環境進行建模。因此我們需要搭建一個虛擬環境來評測各種演算法在各種平臺上的表現,比如球模型、汽車模型、機械臂模型等。
而且一個評測平臺對於整個領域的發展具有正面意義,計算機視覺的發展很大程度上受益於各種評測平臺的發展。
我們使用python裡的panda3d包搭建了模擬環境,在環境中建模了各種測試平臺,並實現了上述提到的幾種演算法。
整個平臺已經開源,並且配備了詳細的文件,感興趣的同學可以參見:
https://github.com/intelligent-control-lab/BIS
(封面來源於網路)