最近在研究機器人協(xié)同路徑規(guī)劃策略,發(fā)現(xiàn)現(xiàn)有paper中的obstacle都是靜態(tài)的,但是在實際場景中,常有動態(tài)障礙的情形,如走動的行人等等。
為了更好的了解相關(guān)技術(shù),我開始調(diào)研無人駕駛領(lǐng)域中的動態(tài)避障策略:
1.無人駕駛
無人駕駛技術(shù)是多個技術(shù)的集成,包括了傳感器、定位與深度學(xué)習(xí)、高精地圖、路徑規(guī)劃、障礙物檢測與規(guī)避、機械控制、系統(tǒng)集成與優(yōu)化、能耗與散熱管理等等。雖然現(xiàn)有的多種無人車在實現(xiàn)上有許多不同,但是在系統(tǒng)架構(gòu)上都大同小異。
上圖中,GPS、光學(xué)雷達與高精地圖主要用來定位,這里主要就是采用一些諸如卡爾曼濾波的濾波算法與高精地圖做對比或者Iterative Closest Point(迭代最近點算法),實現(xiàn)定位的功能;光學(xué)雷達與照相機主要用來做物體識別,這里我們可以用一些視覺算法來做物體識別;最后通過定位與物體識別,我們根據(jù)位置信息以及識別出的圖像信息(如紅綠燈)實時調(diào)節(jié)車輛的行車計劃,并把行車計劃轉(zhuǎn)化成控制信號操控車輛(這里面還會用到增強學(xué)習(xí)算法來優(yōu)化決策過程)。全局的路徑規(guī)劃可以用類似A-Star的算法實現(xiàn),本地的路徑規(guī)劃可以用DWA(局部避障的動態(tài)窗口算法)等算法實現(xiàn)。
在UGV領(lǐng)域,通常是先利用視覺方法識別物體,再調(diào)整行駛計劃。車身周圍的定量感知對于無人駕駛技術(shù)非常關(guān)鍵,無人駕駛系統(tǒng)采用了大量傳感器,其中可視為廣義“視覺”的有超聲波雷達、毫米波雷達、激光雷達(LiDAR)和攝像頭等。
計算機視覺需要進行物體的識別與跟蹤,以及車輛本身的定位:
-
物體的識別與跟蹤:通過深度學(xué)習(xí)的方法,我們可以識別在行駛途中遇到的物體,比如行人、空曠的行駛空間、地上的標志、紅綠燈以及旁邊的車輛等。由于行人以及旁邊的車輛等物體都是在運動的,我們需要跟蹤這些物體以達到防止碰撞的目的,這就涉及到Optical Flow等運動預(yù)測算法。光流估計——從傳統(tǒng)方法到深度學(xué)習(xí) - 肖澤東 Shon的文章 - 知乎
-
車輛本身的定位:通過基于拓撲與地標算法,或者是基于幾何的視覺里程計算法,無人車可以實時確定自身位置,滿足自主導(dǎo)航的需求。
2.無人駕駛避障
- 運動障礙物檢測:對運動過程中環(huán)境中的運動障礙物進行檢測,主要由車載環(huán)境感知系統(tǒng)完成。(很明顯,從常識角度看,避開障礙物的第一步就是檢測障礙物。)
- 運動障礙物碰撞軌跡預(yù)測:對運動過程中可能遇到的障礙物進行可能性評級與預(yù)測,判斷與無人駕駛車輛的碰撞關(guān)系。(當(dāng)你檢測到障礙物后,你就得讓機器判斷是否會與汽車相撞)
- 運動障礙物避障:通過智能決策和路徑規(guī)劃,使無人駕駛車輛安全避障,由車輛路徑?jīng)Q策系統(tǒng)執(zhí)行。(判斷了可能會與汽車發(fā)生碰撞的障礙物后,你就得去讓機器做出決策來避障了)
2.1運動障礙物檢測
主要有兩類傳感器,一種是基于激光雷達和毫米波雷達的,一種是基于立體視覺的
- 激光雷達:① 地圖差分法。根據(jù)在高精度地圖上的障礙物在不同時刻與本車的相對位置關(guān)系,來求解障礙物的運動信息。即在全局坐標系中,靜態(tài)障礙物的位置不會隨時間變化,而動態(tài)障礙物則會隨時間變化,發(fā)生變化的部分即認為是運動障礙物。② 實體類聚法。將同一個障礙物的點云數(shù)據(jù)聚成一類,一般采用長方體或多邊形體來描述車輛、自行車、行人等。 ③ 目標跟蹤法。目標跟蹤法指對障礙物進行軌跡跟蹤從而獲得運動信息。由于在多目標環(huán)境下數(shù)據(jù)的關(guān)聯(lián)性和激光雷達傳感器的必然誤差,不同時刻的目標關(guān)聯(lián)需要按情況分類討論。
- 立體視覺:① 將地圖劃分為多個網(wǎng)格,再判斷 ② scene flow segmentation(很火),Optical Flow是圖片序列或者視頻中像素級的密集對應(yīng)關(guān)系,例如在每個像素上估算一個2維的偏移矢量,得到的Optical Flow以2維矢量場表示。③ 集合聚類,對三維空間中點云形成的幾何形狀做聚類。
2.2運動障礙物碰撞軌跡預(yù)測
無人車的感知系統(tǒng)需要實時識別和追蹤多個運動目標(Multi-ObjectTracking,MOT),計算機視覺領(lǐng)域大量使用CNN,物體識別的準確率和速度得到了很大提升,但總的來說物體識別算法的輸出一般是有噪音的:物體的識別有可能不穩(wěn)定,物體可能被遮擋,可能有短暫誤識別等。
MOT問題中流行的Tracking-by-detection方法就要解決這樣一個難點:如何基于有噪音的識別結(jié)果獲得魯棒的物體運動軌跡。在ICCV 2015會議上,斯坦福大學(xué)的研究者發(fā)表了基于馬爾可夫決策過程(MDP)的MOT算法來解決這個問題。
對障礙物的運動軌跡預(yù)測,有以下三類方法:
- 靜態(tài)處理:不考慮任何運動特性,因此效果較差
- 假設(shè)狀態(tài)保持不變:認為障礙物會保持當(dāng)前運動狀態(tài),適用于直道勻速場景
- 概率軌跡模擬法:前一種方法的改進,對障礙物的未來行駛軌跡做了預(yù)測,對于高精度地圖或結(jié)構(gòu)化道路的先驗信息可以獲得較好的預(yù)測結(jié)果。
2.3運動障礙物避障
在路段上有未知障礙物的情況下,按照一定的評價標準,尋找一條從起始狀態(tài)到目標狀態(tài)的無碰撞路徑。典型的方法有人工勢場法、反應(yīng)式避障法(感知到前方有障礙,就重新規(guī)劃路線)、區(qū)域劃分法(將周圍劃分成安全區(qū)域和可能碰撞區(qū)域)。。。
路徑規(guī)劃分為兩大類,全局規(guī)劃與局部規(guī)劃。為了提高全局重規(guī)劃計算效率,一般在全局規(guī)劃之外增加局部規(guī)劃以提高規(guī)劃系統(tǒng)的實時性。
- 全局規(guī)劃指已知全局環(huán)境信息,在有障礙物的全局地圖中按照某種算法尋找合適的從起始位置到目標位置的無障礙無碰撞路徑。
-
局部路徑規(guī)劃是指在無法取得全局環(huán)境信息的情況下,只能利用多種傳感器來獲取移動機器人自身的狀態(tài)信息的周圍的局部環(huán)境信息,實時地規(guī)劃理想的不碰撞局部路徑,一般只在短時間內(nèi)有效。
方法:勢場法、模糊邏輯法、神經(jīng)網(wǎng)絡(luò)法、占據(jù)柵格法、空間搜索法和基于數(shù)據(jù)融合的直接規(guī)劃方法。
3.機器人導(dǎo)覽避障場景
- 與無人駕駛重點關(guān)注周圍車輛不同,機器人導(dǎo)覽場景主要是避免與動態(tài)行人發(fā)生碰撞。
- 無人駕駛用到了很多傳感器(激光、視覺、紅外、超聲波),雷達,GPS系統(tǒng),使得汽車能夠在未知環(huán)境下也能成功避障。但在機器人導(dǎo)覽場景中,室內(nèi)地圖是已知的,環(huán)境也更加簡單,因此實現(xiàn)技術(shù)上應(yīng)避免過于復(fù)雜的算法,特別是cv領(lǐng)域的方法。
3.1 機器人動態(tài)避障&自主導(dǎo)航
因此,我又專門調(diào)研了機器人動態(tài)避障和機器人自主導(dǎo)航這個方向,找到了以下論文:
-
移動機器人在復(fù)雜環(huán)境下的動態(tài)避障(哈工大):輸入為激光雷達掃描數(shù)據(jù)、目標位置坐標參數(shù)以及機器人本體的速度信息,基于這些參數(shù)可直接輸出用于機器人靈活避障的速度指令。使用3D激光雷達與超寬帶定位系統(tǒng)相結(jié)合的導(dǎo)航避障傳感系統(tǒng),同時優(yōu)化了傳感器的連接與供電方案,使得傳感器得以順利部署在萊卡狗機器人上。
-
基于勢場法的無人車局部動態(tài)避障路徑規(guī)劃算法(北理):建立了包含障礙物和目標點的行車風(fēng)險場,設(shè)置動態(tài)避障窗口,在每個避障窗口內(nèi)對避障路徑不斷進行規(guī)劃. 通過改進勢場力來解決復(fù)雜環(huán)境下目標不可達和局部最優(yōu)的問題.
動態(tài)避障策略:根據(jù)障礙物的運動方向,建立一條以障礙物當(dāng)前位置坐標為起點,指向障礙物運動方向的射線借此判斷是否會與車輛相撞。
當(dāng)障礙物車輛靠近點P且到自我車輛的距離大于安全距離,那么自我車輛將維持原狀態(tài)行駛. 若障礙物到自我車輛的距離小于安全距離,那么自我車輛就需提前減速甚至制動,以此來規(guī)避碰撞的發(fā)生。 -
移動機器人動態(tài)避障算法:利用攝像鏡頭采集動態(tài)障礙物的移動軌跡,提取形心序列,利用RBFNN建立預(yù)測模型.在移動機器人實時規(guī)劃時,根據(jù)當(dāng)前位置在超聲波傳感器的掃描范圍內(nèi)建立滾動窗口.當(dāng)檢測到動態(tài)障礙物進入滾動窗口以后,才開始進行預(yù)測計算.根據(jù)動態(tài)障礙物相鄰時刻的三個時間序列值,來預(yù)測障礙物下一時刻的運動軌跡,從而把動態(tài)障礙物的避障問題轉(zhuǎn)化為瞬時靜態(tài)障礙物的避障問題,實現(xiàn)實時規(guī)劃.
-
全向移動機器人動態(tài)避障方法 :① 改進人工勢場法通過創(chuàng)建水流場坐標系,改善了傳統(tǒng)人工勢場法易陷入局部極小值點、目標點不可達及軌跡振蕩等問題。② 通過斥力場修正方向,解決了改進人工勢場法穿 透重疊障礙物的問題,保證了方法的可靠性。
機器人能獲取到自身位置、目標點位置以及機器人利用傳感器測得的障礙物距離和方向。出現(xiàn)動態(tài)障礙物,就改變勢場。 -
AS-R移動機器人的動態(tài)避障與路徑規(guī)劃研究:利用多傳感器結(jié)合檢測方法,通過紅外傳感器減少盲區(qū)和鏡面反射帶來的誤差,通過間隔采樣或分組采樣技術(shù)避免多路串?dāng)_問題;對均值濾波與中值濾波進行實驗對比后,提出一種遞推型中值濾波方法,從而提高了數(shù)據(jù)在空間和時間上的連續(xù)性,有效地減少了超聲波隨機串?dāng)_信號及其它千擾信號,進而提高了探測模塊的準確度。
-
Towards Optimally Decentralized Multi-Robot Collision Avoidance via Deep Reinforcement Learning:在學(xué)習(xí)過程中機器人之間共享獎勵、策略網(wǎng)絡(luò)和值函數(shù)網(wǎng)絡(luò),通過共享的經(jīng)驗樣本來引導(dǎo)相互之間達成隱式的協(xié)作機制;傳感器級的防碰撞策略,能用于100個機器人的大規(guī)模場景;分布式,根據(jù)環(huán)境信息進行場景分類,從而采取不同的運動策略,以提高效率和保證安全;用到的策略是policy gradient。也涉及到動態(tài)障礙物。視頻 (經(jīng)典)
-
Fully Distributed Multi-Robot Collision Avoidance via Deep Reinforcement Learning for Safe and Efficient Navigation in Complex Scenarios:多機器人、復(fù)雜環(huán)境、分布式,用到的是PG算法,適用于large-scale multi-robot systems;已經(jīng)在真實機器人上部署過了。
-
DeepMNavigate: Deep Reinforced Multi-Robot Navigation Unifying Local & Global Collision Avoidance
-
Decentralized Non-communicating Multiagent Collision Avoidance with Deep Reinforcement Learning:使用RL,把開銷巨大的在線的計算降解為離線的學(xué)習(xí)過程;(經(jīng)典)
-
Socially Aware Motion Planning with Deep Reinforcement Learning:考慮到了機器人和人之間的避碰問題,在策略訓(xùn)練是引入一些人類社會的規(guī)則,讓機器人的策略學(xué)習(xí)到顯式的協(xié)調(diào)機制,達成機器人與人的行為之間的協(xié)作;可以在有許多行人的環(huán)境中實現(xiàn)以人類步行速度移動的機器人車輛的完全自主導(dǎo)航 (經(jīng)典)
github項目:rl-collision-avoidance,Towards Optimally Decentralized Multi-Robot Collision Avoidance via Deep Reinforcement Learning的代碼。使用的RL算法是PPO。
4.如何處理行人
存在行人時:
- 將行人視為動態(tài)障礙,使用特定的反應(yīng)規(guī)則來避免碰撞。但不能理解人類行為,有時會產(chǎn)生不安全、不自然的行為。尤其移速與行人相近時。
- 改進做法:推理行人的意圖,并生成預(yù)測軌跡,再用傳統(tǒng)路徑規(guī)劃算法生成無碰撞的路徑。但將預(yù)測和規(guī)劃分離的做法會導(dǎo)致freezing robot problem。
- 考慮協(xié)同(account for cooperation),建模并預(yù)測附件行人對機器人運動的影響。
4.1 行人軌跡預(yù)測
Social LSTM: Human Trajectory Prediction in Crowded Spaces
SocialLSTM:整合了行人自身軌跡和周圍人群影響(人們會互相避讓),把每個人看作lstm,在每個時刻把每個人周邊的人的lstm隱狀態(tài)拿出來做一個pooling, 這樣就能體現(xiàn)這種動態(tài)的行人互動。
針對的是一群行人(群體行為,行人行走會互相影響),使用到的數(shù)據(jù)集是 ETH和UCY(兩個公開的行人軌跡數(shù)據(jù)集)。
下圖是實驗結(jié)果,可以明顯看出行人間的避障現(xiàn)象:
和別的方法相比,可以更好地預(yù)測行人軌跡:
關(guān)于數(shù)據(jù)集::是鳥瞰視角(類似監(jiān)控視角下的軌跡預(yù)測)
- EWAP的數(shù)據(jù)集包括兩個sequence:eth和hotel;文件格式:[frame_number pedestrian_ID pos_x pos_z pos_y v_x v_z v_y ]。也存在障礙物,但是在論文中未看見如何避障。
- UCY的數(shù)據(jù)集包括三個sequence:student、univ和zara,還有分zara01,zara02等,文件格式: [x y frame_number gaze_direction]
評價指標:主要是MSE
思考:我們將機器人看作行人,能獲取到軌跡信息,那我們可以基于當(dāng)前機器人和周圍機器人的軌跡信息預(yù)測下一步位置。
問題:
① 我們并沒有g(shù)roundtruth來指導(dǎo)整個過程 -> 只能通過reward進行指導(dǎo)?
② 只考慮了agent間的信息,未考慮到行人信息 -> 想辦法也獲取到行人坐標?
③ 并沒有歷史運動軌跡信息,讓機器人隨機走構(gòu)成初始數(shù)據(jù),好像說服力不夠。
SA-CADRL(socially aware collision avoidance deep reinforcement learning)更加適合人群防碰撞場景。
Social LSTM 實現(xiàn)代碼分析
5. 一些重要概念:
5.1 動態(tài)窗口避障
動態(tài)窗口避障算法:思想是對可行空間的速度進行采樣,并對每一個速度樣本進行軌跡預(yù)測,然后利用評價函數(shù)來對每一條軌跡進行評分,并取最優(yōu)的速度樣本發(fā)送給執(zhí)行器執(zhí)行。
注意哈,這里的動態(tài)窗口并不是xy坐標系的范圍,而是動態(tài)的線速度v角速度w的范圍,因為不同的角速度線速度對應(yīng)著不同的采樣軌跡
5.2 分布式強化學(xué)習(xí)與集中式強化學(xué)習(xí)
decentralized and centralized methods,多智能體中一般分為分布式強化學(xué)習(xí)和集中式強化學(xué)習(xí):
① 分布式強化學(xué)習(xí)系統(tǒng)中的各個agent都是學(xué)習(xí)的主體,它們分別學(xué)習(xí)對環(huán)境的響應(yīng)策略和相互之間的協(xié)作策略。
② 集中式強化學(xué)習(xí)通常把整個多agent系統(tǒng)的協(xié)作機制看成學(xué)習(xí)的目標.承擔(dān)學(xué)習(xí)任務(wù)的是一個全局性的中央學(xué)習(xí)單元,這個學(xué)習(xí)單元以整個多agent系統(tǒng)的整體狀態(tài)為輸入.以對各個agent的動作指派為輸出.采用標準的強化學(xué)習(xí)方法進行學(xué)習(xí).逐漸形成一個最優(yōu)的協(xié)作機制。
多智能體強化學(xué)習(xí)和分布式強化學(xué)習(xí)的區(qū)別?
其中分布式強化學(xué)習(xí)還可以分類:根據(jù)系統(tǒng)中的agent進行決策時是否考慮其他agent的動作可以分為,分別命名為獨立強化學(xué)習(xí)(reinforcement learning individually,RLI)和群體強化學(xué)習(xí)(reinforcement learning ingroups,RLG)。
- RLI方法不采用組合動作(joint-action),其agent僅憑自己的狀態(tài)輸入來決定采取的動作,可以看作是一種松散耦合的分布式強化學(xué)習(xí)系統(tǒng),可與社會模型或經(jīng)濟模型結(jié)合形成社會強化學(xué)習(xí);RLI系統(tǒng)中的agent都是以自我為中心的,所以不易達到全局意義上的最優(yōu)目標;但是RLI系統(tǒng)中agent的獨立性較強,容易動態(tài)增減agent的個數(shù),而且agent個數(shù)的變化對學(xué)習(xí)收斂性的影響較小,所以RLI方法較適用于agent個數(shù)較多的復(fù)雜系統(tǒng).
- RLG方法采用組合動作,每個agent都必須考慮到其他所有agent將要采取的動作才能決定自己采取的動作,可以看作是一種緊密耦合的分布式強化學(xué)習(xí)系統(tǒng);學(xué)習(xí)速度很慢,這種“緊密耦合”的方法一般只適用于agent很少的情況下,而且需要加速算法的支持.
現(xiàn)在很多方法都是分布式算法,因為集中式的路徑規(guī)劃方法應(yīng)對大規(guī)模智能體時需要很多算力,state-action空間組合爆炸。
雖然是分布式,但也要考慮協(xié)同:① 預(yù)測別的agent的動作,agent數(shù)量多了就不再適用; ② 可以一起訓(xùn)練所有agent的experience,即 集中式學(xué)習(xí)。
6.個人總結(jié)
6.1 避障步驟:
既然要避障,就需要知道周圍障礙物的位置和速度,預(yù)測是否會相撞。一般分為三個步驟:
- 障礙物檢測:一般采用傳感器或攝像頭,關(guān)注到 光流傳感器可以估計物體的速度。
- 障礙物軌跡預(yù)測: 比較簡單的方法是基于行人過去的速度和方向,預(yù)測下一時刻的位置坐標,判斷是否會與機器相撞。 如果采用攝像頭的視覺信息判斷,則涉及到圖像識別;如果采用傳感器,每臺機器人配備多個方向的傳感器,是不是更容易一點呢?
- 避障:最簡單的避障方法就是停下來,也可以選擇轉(zhuǎn)彎等方法
因此,整個避障板塊的輸入應(yīng)該是傳感器or攝像頭收集到的信息,根據(jù)這些信息預(yù)測行人下一時刻的坐標,用于判斷是否會相撞,輸出機器人應(yīng)采取的路徑。
6.2 協(xié)同路徑規(guī)劃 VS 機器人動態(tài)避障、機器人導(dǎo)航
三者的任務(wù)很類似,不過也有一些區(qū)別:
-
MAPF把重點放在路徑規(guī)劃以及多智能體協(xié)同上了,很少考慮動態(tài)障礙的問題。如:
① conflict-based search (無沖突搜索):低層次搜索負責(zé)找出一條路,高層次搜索負責(zé)檢查路徑?jīng)_突
② 避障算法ORCA整理–精簡版:考慮了速度和方向
③ M*:改造A*算法,先為每個機器人單獨規(guī)劃,然后根據(jù)需要協(xié)調(diào)機器人之間的運動
④ 基于RL的方法:比較經(jīng)典的RL方法有PRIMAL和PRIMAL2。But,現(xiàn)有方法大多并未用到多智能體強化學(xué)習(xí)的算法。
這類算法的action一般是 上、下、左、右、停止。 -
機器人動態(tài)避障和機器人導(dǎo)航文章中,他們的重點是自主導(dǎo)航;經(jīng)典方法:Socially Aware Motion Planning with Deep Reinforcement Learning, Decentralized Non-communicating Multiagent Collision Avoidance with Deep Reinforcement Learning, Towards Optimally Decentralized Multi-Robot Collision Avoidance via Deep Reinforcement Learning
這類方法的action一般是角速度和速度。
我們的機器人導(dǎo)覽場景:集中式訓(xùn)練 + 有動態(tài)行人障礙 + 有起始點和終點 + 自主導(dǎo)航(路徑規(guī)劃)
6.2 為什么不直接使用多智能體強化學(xué)習(xí)算法?
萬字長文:詳解多智能體強化學(xué)習(xí)的基礎(chǔ)和應(yīng)用
多智能體路徑規(guī)劃、多智能體動態(tài)避障,都涉及到了multi-agent,那為什么不直接將MARL的方法用上來呢?
其實很多用到了MARL的思想,比如MADDPG的集中式訓(xùn)練分布式執(zhí)行。
個人思考,猜測是MARL的設(shè)定(完全競爭關(guān)系、完全合作關(guān)系、混合)并不能很好地挪用到當(dāng)前場景?
他們也是基于single-agent方法設(shè)計的,那我們也可以根據(jù)MAPF場景設(shè)計更有針對性的算法。
MARL也只是一個概念吧,我們針對多個機器人的導(dǎo)航場景設(shè)計算法,不也是多智能體強化學(xué)習(xí)嘛文章來源:http://www.zghlxwxcb.cn/news/detail-400113.html
和MADDPG類似,很多multi-robot navigation方法也是集中式學(xué)習(xí)和分布式執(zhí)行的機制。文章來源地址http://www.zghlxwxcb.cn/news/detail-400113.html
到了這里,關(guān)于無人駕駛動態(tài)避障策略調(diào)研 | 機器人動態(tài)避障策略 | 行人軌跡預(yù)測 | 機器人導(dǎo)航的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!