ros自己写避障算法_迷雾学术篇|视觉感知的无人机动态避障(下篇)
PartI?: 開篇語
繼九九度過一個為期兩天的假日(宅宿舍)之后,終得時間來補一下視覺感知的無人機動態避障的下篇。本篇將在上篇機器視覺技術概念的基礎上對無人機的動態避障問題描述和具體的技術流程進行展開,最后進行總結和展望。
PartII : 動態避障問題描述
無人機動態避障的主要目的在于讓無人機實時感知周圍障礙物的位置和速度(世界位置和速度),且障礙物速度不為零。相比靜態避障的核心區別在于,無人機需要實時對障礙物位置進行預測,提前產生控制量,從而躲避障礙物。
靜態障礙物
障礙物位置和形狀無法改變;
障礙物易于被探測。
動態障礙物
位置和特性處于變化之中;
難以在較短時間做出反應。
那么無人機動態避障的的問題描述就是
U?=?Optimal(@(U)?cost(U,x,U_p,Env,vehicle),U_ini,[],[],[],[],LB,UB,?@(U)?con(U,x,Env,vehicle),options)% min cost(U,x,U_p,Env,vehicle)% st.?con(U,x,Env,vehicle)即,在滿足約束條件和避障條件下,使得以時間和能量為變量的代價函數最小。
PartIII : 技術流程
事件相機和障礙物檢測
根據相機事件信息檢測到周圍移動障礙物的存在。主要的算法就是相機事件生成,即計算不同幀像素強度差異,然后根據時間戳計算滑動窗口內的差異平均值,進行濾波,根據強度差異的正負值生成正事件和負事件,最后得到正事件所表征的移動障礙物。
基于IMU的運動補償
基于慣性測量組件(IMU)進行運動補償,即根據特征點在圖像的投影位置和IMU的積分信息估計無人機自身位置。自我運動估計和補償是視覺定位(Visual Odometry)的核心問題,也是機器視覺研究的一個熱點。
VO也叫序列SFM(Structure From Motion),VO用于增量式計算相機的運動軌跡,由于相機固定在無人機或載體上,相機的運動狀態即載體的運動狀態。
首先獲取圖像序列,然后進行特征點檢測。特征點一般是轉角或者圓形邊界,需要對變形、旋轉、移動、照明具有不變性。最常用的特征點檢測有SIFT(Scale-invariant feature transform),即從一組參考圖像中提取對象的SIFT關鍵點,并將其存儲在數據庫中。特征點檢測完成之后需要對不同圖像序列的特征點進行匹配,一般采用相似算法找到最為匹配的點,相似算法主要最小或最大不同像素之間的NCC,SSD,SAD,Census Transform 和 Hamming distance等相似測量。
有了相機移動造成的特征點在圖像上的移動,就可以根據投影方程計算相機的外部參數(external parameters),即位移和旋轉(R,T)。
單目視覺
雙目視覺
最后進行局部優化,使得所有利用物體在圖像上的投影反向計算的位置和實際位置距離方差和最小,即得到相機的運動軌跡。
- 障礙物分割
在對上一個時間窗口中觸發的事件執行自我運動補償后,我們獲得了一個場景,其中包含屬于場景動態部分的事件的位置,在此步驟中僅提取其中動態部分,對靜態部分不做處理。
- 基于光流速度估計
圖像點的密度及其在圖像平面中的距離取決于對象的速度,到傳感器的距離及其整體大小。由于僅具有自我運動補償產生的平均時間戳信息和圖像位置無法有效地聚類來自不同視覺傳感器具有與動態物體不同的速度和距離的物體的圖像點,因此需要采用光流傳感器來估計運動物體的速度,從而對運動進行估計,這個速度也是之后排除力函數的一個重要參數。
組合聚類算法
聚類是為了讓具備同樣運動特征的圖像點形成一個物體,例如運動的足球。為了最大化聚類的準確性,我們使用所有可用的數據信息,文中所用的聚類算法是Density-based spatial clustering of applications with noise(DBSCAN) algorithm,通過利用運動估計得到的位置,事件時間戳和光流傳感器得到的速度信息來對像素點進行聚類,從而得到運動物體。
3D位置估計
圖像到世界坐標變換
障礙物速度估計
勢能場函數和推力
勢能場函數包括排斥力和吸引力函數。排斥力勢能場主要根據無人機位置和實時捕獲的障礙物位置之間的距離生成一個勢能場函數,而吸引力勢能場則是根據目標點和無人機位置之間的距離生成。根據勢能場的導數即可生成相應的推力和速度。通過這樣的方法,無人機就可以保證在避障的同時到達期望的目標位置。
實驗結果
處理時間
成功率
PartIV: 軟硬件配置
文中所使用的硬件主要包括:
- 主機架是6′′Lumenier QAV-RXL
- 6′′三葉螺旋槳
- Cobra CM2208-2000無刷電動機
- 兩臺機載計算機:(i)Qualcomm Snapdragon Flight,用于使用提供的Machine Vision SDK進行基于視覺的單眼狀態估計;(ii)NVIDIA Jetson TX2,以及AUVIDEA J90載板,可運行所有其他軟件堆棧。
- Lumenier F4 AIO飛行控制器
- DYS Aria 35a電機控制器代碼基于ROS開發和運行。
PartV:?總結
本篇主要對基于事件相機的視覺感知動態避障的主要技術實現進行了描述,基于事件相機的動態避障相比標準相機具備低時延和快速響應能力,但在處理重疊事件時仍存在較大問題,特別是密度環境中的避障。同時文中并未涉及較為復雜的全局路徑生成而是以局部勢能場函數的導數來計算推力大小和方向,在減少計算量的同時也存在一定局限性。總之,本文給動態避障提供了一種快速安全魯棒的方法,從目標檢測到指令生成都是有相當大的創新性和實用性,也期待在視覺感知的無人機動態避障的研究領域出現更多實用性方法和框架。敬請關注。點擊
總結
以上是生活随笔為你收集整理的ros自己写避障算法_迷雾学术篇|视觉感知的无人机动态避障(下篇)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sql a 表 若包含b表 则a 表 列
- 下一篇: 手机平板都能用平板能用手机软件吗