桂林電子科技大學信息科技學院 唐 力 韓桂明 劉蘇芮 歐為祥 李宏輝
本文主要是對移動機器人的二維地圖構建、自身定位與導航、運動物體跟隨、多用戶視頻監控這幾個方面進行研究。本設計是基于ROS_Kinetic的智能交互輪式移動機器人,可根據多傳感器的數據融合處理未知復雜環境的信息,通過SLAM算法構建平面二維地圖,并通過加載構建好的二維地圖進行自身定位與目標點導航;機器人可通過自身傳感器的數據,鎖定與自身最近的運動物體,實現運動物體跟隨;同一局域網下,可以通過其他若干個設備進行多點(多用戶)視頻監控。此設計主要是對移動機器人的“動態感知、環境建模、路徑規劃、行為控制、遠程監控”展開研究,所以這個項目是一個集環境感知、動態決策、路徑規劃和行為控制等多功能于一體的綜合系統。
本文的總體方案分為三大模塊,分別為基于樹莓派的Linux嵌入式平臺、基于PC端的Linux平臺以及基于STM32的單片機開發平臺。樹莓派端作為整個系統的數據采集以及機器人動力控制的消息發布;PC端會接收樹莓派端采集到的大量的數據進行處理并且發布機器人運動控制的相關命令;STM32平臺一方面用來采集機器人此刻的里程計(機器人移動角速度、線速度)數據進行發布,另一方面是訂閱相關的控制數據,并且為機器人執行相關的運動控制。整體設計框架如圖1所示。

圖1 整體設計框圖
SLAM(simultaneous localization and mapping),即時定位與地圖構建,或迸發建圖與定位。在本設計中采用了SLAM中的Gampping算法,這種算法主要通過機器人在運動的過程中通過編碼器結合陀螺儀計算到里程計信息,運用機器人的運動模型得到機器人的位姿初步估計。然后通過機器人裝載的激光傳感器獲取的激光數據結合觀測模型(激光的掃描匹配)對機器人位姿進行精確修正,得到機器人的精確定位,最后在精確定位的基礎上,將激光數據添加到柵格地圖中,機器人在環境中運動,通過機器人不斷的數據檢測并且完成局部建模,最終完成整個場景地圖的構建。
SLAM的本質可以描述為機器人在未知環境中從一個未知位置移動,在移動的過程中,進行位置估計進行二維建模。二維建圖主要分初始化階段、轉移階段、決策階段、重采樣階段、濾波和地圖生成六個階段。通過個六個階段對SLAM算法進行描述;如圖2所示是通過SLAM-Gampping算法構建二維地圖的基本模型。

圖2 SLAM構建二維地圖基本模型
運動物體跟隨的最核心的傳感器是激光雷達,為機器人開啟運動物體節點時激光雷達的相關數據,設定d1、d2、d3......dn為機器人到障礙物之間的距離,D為機器人與運動物體之間保持的安全距離。當打開運動物體跟隨的節點時,激光雷達360°旋轉,計算出機器人自身到障礙物之間的距離d1、d2、d3....dn,并且通過算法濾出自身到障礙之間最短的一條距離d。此時,機器人會把此時最短距離對應的障礙作為自動跟隨的鎖定對象。當此時的障礙物發生左邊的變化時,機器人會檢測到鎖定目標的距離D以及目標和機器人自身的相對方向發生變化時,這是時候,機器人會自動縮短距離d和當前自身的姿態,保證d=D。機器人不斷的調節姿態以及距離d,達到物體跟隨的效果。
多用戶視頻監控的要是服務端與客戶端的一個數據通訊,如圖3是同一局域網服務器與可客戶端的一個數據通信結構模型。首先,服務端和需要訪問服務器的客戶端的設備必須都要在同一個局域網環境下。硬件平臺獲取到攝像頭的圖像數據之后,然后對獲取到的圖像數據進行壓縮處理,然后,需要把視頻流數據共享到搭建好的流媒體服務器中此時客戶端就可以對共享完成的數據進行訪問,客戶端可以是PC端。也可以是移動端,只需要在客戶端的設備上打開瀏覽器,在瀏覽器地址欄輸入服務器的IP地址以及端口號,就可以訪問機器人的攝像頭畫面,多個客戶端設備只需在同一個局域網的環境下,就可以同時訪問機器人攝像頭的畫面,最終實現多用戶視頻監控的效果。多用戶視頻監控的功能是建立在通信流暢的服務器中,隨著本地客戶端的訪問數量增加,視頻流數據通信的壓力也就會增大,那么回傳到客戶端的視頻流數據就會掉幀,出現卡頓的現象。為了保證此功能的運行流暢,必須使客戶端訪問的數量控制在在合理的范圍之內。

圖3 同一局域網的多用戶視頻監控示意圖
結論:隨著智能移動機器人的應用領域的擴大,人們期望智能移動機器人在更多領域為人類服務,代替人類完成更復雜的工作,不斷的取代傳統的勞動力,更為高效的去完成各項工作。此設計主要研究其三大功能,激光雷達的同步二維地圖構建及定位與導航、運動物體的智能跟隨、多用戶攝像頭監控。此設計的研發給當今科技時代的各類機器人(掃地機器人、服務型機器人、快遞機器人、軍事機器人)的研發奠定了良好的基礎和提供了良好的平臺。此設計不僅具有特色和創新點,也有著廣泛的應用前景,也是當代大學生在嵌入式、人工智能、移動機器人研究方面的體現。