韓江云 虞媛媛 郭柴琪 于浩楠 藍春麟(揚州大學,江蘇 揚州225000)
在目前人們的生產生活中,人身安全一直是人們心中最關注的話題。雖然在一些大型場所以及小區門前都會有安保公司的人員進行安全的監督,但都主要通過人力來實現安全的防護,由于人自身的缺陷很難在24 小時時刻保持著良好的安全防護意識,同時,利用人力也會大大地耗費財力以及物力,這與現在這樣一個自動化的時代是很不契合的。而通過在固定位置上安裝攝像頭的措施,也不能很靈活地完成安全防護的任務。
就上述原因,自主巡邏機器人的出現有著一些必然的原因:第一,得益于近幾年科學技術的不斷進步以及人工智能領域技術的不斷發展,機器人技術日益得到提高;第二,采用自主巡邏機器人代替人員進行安全防護,可以有效地減少人力的浪費;第三,自主巡邏機器人可以自主規劃路徑,運動到指定的各個場所彌補了傳統人工安防以及在固定位置安裝攝像頭時間以及空間不靈活的缺點。
自主移動機器人是近年來一個非常熱門的話題,隨著人們對自動化生活越來越高的要求,自主移動機器人也被運用在如餐飲、服務等各種領域。
本文闡述了一個自主移動機器人實現的幾個關鍵技術:相機測距,構圖與定位(SLAM)以及路徑規劃算法,這也是自主巡邏機器人設計中最重要的部分。
我們采用雙目攝像頭進行功能的實現。雙目攝像頭對物體距離等信息的測量是通過視差原理,圖1 是簡單的攝像頭成像示意圖。我們將兩個攝像頭獨立開來,由于它們是水平放置的,故而中心位于x 軸上。我們將二者之間的距離稱為雙目相機的基線,用字母b 來表示。假設任意一目標記作P,左右成像分別為PL和PR。由于雙目相機的兩個“目”只在x 軸上有間距,所以PL和PR也只在x 軸上有差距。將左右成像的坐標記作xL和xR,則由圖2 的幾何關系以及三角形P PLPR和三角形P OLOR的相似關系有:


圖1 雙目相機成像原理

圖2 幾何關系圖
自主機器人中最關鍵的技術就是對環境地圖的建立以及對自身的定位,我們稱之為SLAM。SLAM 是Simultaneous Localization and Mapping 的縮寫,中文翻譯成“同時定位與地圖構建”,是自主移動機器人中最關鍵的技。它是只智能主題搭載所需的傳感器,依照算法,在一個最初不熟悉的環境中運動并不斷認知理解環境過程。考慮到應用成本,大多數研究者使用攝像機作為這種傳感器,從而稱為“視覺SLAM”。視覺SLAM主要由相機采集的數據,視覺里程計(VO),后端優化,回環檢測以及構圖五個環節組成。
SLAM過程可以由運動方程和觀測方程來描述。我們假設在t 從0 到M的時間了,我們有x0到xM個位姿,并且有y1,…,yN個路標。我們可以寫出運動和觀測方程:

現在考慮第k 時刻的情況。我們用過去0 到k 中的數據,來估計現在的狀態分布:

根據貝葉斯法則,把xk與zk交換位置后,有觀測方程給出似然,基于xk-1的給出xk的狀態,按照xk-1時刻為條件概率展開:

在這里我們只關心k 時刻和k-1 時刻的情況,這便是貝葉斯估計。這樣機器人在不斷地運動過程中,對下一時刻的運動狀態和位置信息進行估計預測,在足夠的運動時間內,機器人可以不斷地認知周圍的環境信息。
對于機器人的路徑規劃問題,一般主要包括環境建模、路徑選擇和路徑平滑三個步驟:
地圖建模:這就是SLAM過程所需要完成的工作,機器人基于自身的理解,建立周圍環境的柵格地圖,和常人在環境中一樣,可以對環境中的各個物體進行認知和理解,常用的是將視覺信息抽象成二維或三維的柵格單元,從而便于機器人的理解。
路徑選擇:機器人在所建立的環境地圖中,通過路徑規劃算法選擇一條安全并且可以完成任務的道路。
路徑平滑:通過后期路徑的優化,檢測路徑中不光滑的部分和障礙,保證機器人運行的安全性和魯棒性。
A*路徑搜索算法是一種很典型的啟發式搜索算法,也就是將路徑搜索問題的求解表現為從初始點到目標點的求解問題。A*算法是集Dijkstra 算法和廣度優先等算法于一身的,可以很好的在眾多路徑中找出滿足任務要求的最短路徑,同時可以減少搜索庫從而降低計算量。自主機器人通過SLAM建立的柵格環境地圖可以很好的和A*算法相結合。
估價函數選擇的正確與否將直接影響A*路徑搜索算法的結果好壞,啟發中的估價函數表示為:

其中,F(n)代表算法中各個節點的的估價函數;G(n)表示從起始節點到n 個節點的代價函數;H(n)是一個啟發式的函數,以一個既定的指標來估算從節點n 到目標節點的最優路徑的代價。其中G(n)的表達式為:

其中partent(n)表示第n 個節點的父節點,S 表示起始出發節點,dist(S,n)表示節點S 和節點n 的歐式距離。公式中曼哈頓距離作為這里的啟發函數H(n),它表示這初始節點到目標節點之間橫縱坐標的距離絕對值之和,表達式為:

其中(xn,yn)表示節點n 的橫縱坐標,(xg,yg)表示目標節點的橫縱坐標。
如圖3 所示,將環境地圖簡化為可管理的節點數,然后進行搜索以找到最短路徑。

圖3 路徑規劃示意圖
我們將灰色方格作為出發點S,綠色方格是終點E,其中黃色的方格是路徑中的障礙物,每個方格作為一個距離單位。方格中的左上角、左下角和右下角的數字分別表示表達式中的F(n)、G(n)和H(n)。我們從任意一個灰色方格開始,不斷地判斷相鄰節點,向外搜索,從而尋得目標。
綜上,自主機器人由機器人在運動過程中進行對環境的建圖和對自身的定位以及在所建造的地圖中通過既定算法進行路徑規劃,從而完成自主定位與導航的功能,其行為示意圖如圖4。

圖4 自主機器人行為示意圖
實驗中,我們基于ROS 機器人平臺在學校的電子實驗室中心進行實驗并分析,為了對機器人完成任務的能力進行分析,多處設置任務點并重復驗證成功率。圖5 中,我們將O 點作為機器人的起始出發點,將A、B、C 三點作為三個目標點,經過一次循環后,將機器人暫停重新放置在起點進行下一次的實驗,如此重復循環50 次,記錄成功與失敗的次數。

圖5 自主導航驗證路線圖
經過50 次的重復實驗,移動機器人可以自主的導航從起始點到達指定的目標點,沒有出現失敗的情況,并在移動中沒有觸碰到障礙物,保證了機器人的安全性和穩定性。綜上,該機器人可以實現在環境中的自主導航和路徑規劃行為。
隨著科學技術的日益進步,自主移動機器人的應用也越來越廣泛,將自主移動機器人運用在安防巡邏方面,也是近幾年頗受關注的一個領域,本文介紹了自主移動機器人技術里面重要的幾個點,但從機器人整體的角度來看,還有很多不完善的地方如機器人電源,運動魯棒性等問題,這需要研究人員進一步的研究與創新。