琚子晗, 白賀, 楊喜童
(哈爾濱理工大學,哈爾濱150080)
隨著人工智能和計算機技術的發展,探索機器人在各個方面都得到了廣泛運用。智能探索機器人可以完成大部分的地形探索,在一些危險地帶、地形崎嶇狹小的地帶,機器人完全可以代替人類完成危險的探索任務,減少一系列安全問題,提高探索工作的效率。
智能探索機器人可用于對未知環境的探索和研究,基于SLAM技術的探索機器人可用于導航和捕獲目標[1],采用六足仿生機器人制做的全地形智能探索機器人[2],能滿足基本的探索任務需求。對于智能移動機器如控制系統的研究,可以基于AVR單片機設計一個兩輪驅動移動機器人[3]。環境建模和自主導航也屬于智能探索機器人研究課題,可以采用激光雷達實現避障,并且采用卡爾曼濾波提高定位精度[4]。針對復雜地形給機器人帶來的機動性和安全性問題,文獻[5]對全地形移動機器人建模與控制研究做了全面綜述,并分析了國內外研究現狀,特別是近年來所取得的最新成果,指出了目前存在的問題及將來可能的發展趨勢。Freertos操作系統是一個嵌入式系統使用的開源實時操作系統,可以被用在各種微控制器上[7],與RISC-V微控制器共同設計紅外耳溫測量系統[7],與機電傳感器配合可組成人體輔助機械臂系統[8],采用了多任務調度,并且系統中各關鍵節點采用獨立任務完成。也可用于與ARM芯片控制器組成智能搬運小車[9],根據需求也滿足了一定的搬運任務。
本文系統基于Freertos低延時操作系統和ARM系列處理器,能實時獲取周邊環境信息,實時反饋數據,具備遠程控制功能。采用多任務調度機制,并且任務流程規范,任務優先級清晰分明。使得機器人系統變得任務多樣化,降低了多中斷帶來的死機風險,有效地提高了系統的魯棒性。
本文系統總體結構如圖1所示。采用ARM系列的單片機作為核心控制器,結合樹莓派作為運算設備獲取視頻數據,采用Freertos操作系統進行任務控制,通過4個單元對機器人系統進行整體控制,完成一系列的探索任務和需求。

圖1 智能探索機器人系統總體結構圖
動作單元主要由機械臂構成,機械臂由舵機模塊構成。傳感器單元由各種傳感器模塊組成,通過不同傳感器可以獲取不同信息。通信單元包括機器人上面各個硬件之間的通信及機器人與上位機終端的通信。底盤單元采用履帶底盤,加上減震機構,從而實現全地形的移動,可以廣泛應用于各種復雜地段。視頻數據通過樹莓派連接WiFi后內網上傳到指定IP地址,上位機終端打開IP地址即刻實時查看視頻數據。
在控制過程中,通過串口獲取遙控器控制數據,并且將控制數據轉化為底盤單元或者動作單元的控制命令,機器人會根據命令來完成相應動作,同時傳感器任務會將當前獲取的環境數據進行分析,經過濾波篩出有用信息,通過藍牙串口發送回上位機,從而完成多樣化的探索任務。
本文系統采用ARM公司的STM32F427作為核心控制器,基于系統需求設計了機械臂和履帶底盤。配合一系列外設傳感器,無線傳輸模塊,完成基礎的機器人探索任務需求。并且通過機器人端運算設備可以實時查看視頻數據。
機械臂采用模塊化設計,可以根據環境需求組裝不同自由度的機械臂,同時具備一定的伸縮功能,如圖2所示。機械臂的抓取結構為基于絲杠結構的雙手爪,是一個可開合結構,兩機械爪結構間有可伸縮鉆孔裝置,方便在完成探索任務的同時完成一定量的作業任務。

圖2 機械臂三維設計圖
該設計是基于適應全地形的減震底盤(如圖3),包含支架、減震裝置和驅動裝置,履帶底盤可以廣泛適用于大部分陸地地形。減震裝置采用半扭桿式懸掛系統,通過輪組之間的拉簧,可以調整履帶傾角,有效減少地面崎嶇帶來的阻力,從而可以較好地越過障礙物。

圖3 履帶底盤減震機構
本系統在Freertos操作系統的基礎上進行機器人系統開發。Freertos操作系統是一個嵌入式系統使用的開源實時操作系統,Freertos支持沒有限制的任務數量和沒有限制的任務優先級,我們可以任意支配單片機外設的使用數量和該外設的重要程度,方便后期進行執行跟蹤和堆棧溢出檢測。在整個機器人系統使用過程中,根據探索需求分為多個任務,每個任務需要設置一定的優先級和堆棧資源,由操作系統來分配每個任務所需的系統資源,根據優先級進行任務調度。
根據本系統的基礎探索要求,設置了6個主要任務,及2個中斷任務,數據獲取任務和看門狗任務,系統總框圖如圖4所示。
在控制過程中,通過串口獲取遙控器控制數據,并且將控制數據轉化為底盤單元或者動作單元的控制命令,機器人會根據命令來完成相應動作,同時傳感器任務會將當前獲取的環境數據進行分析,經過濾波篩出有用信息,通過藍牙串口發送回上位機,從而完成多樣化的探索任務。看門狗任務主要是用于防止系統出現不可預料的問題而死機,然后自動復位重置系統。
在Freertos操作系統中,任務的堆棧空間是需要事先設置好的,然后系統統一在單片機資源中申請內存,同時系統會根據任務設置的堆棧大小分配棧空間。根據函數調用量的大小、局部變量的多少及數據計算量的大小來給機器人系統中6個任務設置堆棧空間大小,最終分配情況如表1所示。

圖4 系統任務設計圖

表1 Freertos系統任務堆棧空間分配及優先級分配
系統初始化任務是所有外設初始化和任務初始化必需的任務,并且為了不讓其受單片機資源干擾,任務會在臨界區中進行。并且因為初始化任務僅僅執行一次,在執行后需要用vTaskDelete函數刪除,因此給予最低的優先級即可。
根據被探測環境設置一定的障礙距離,放置在車身前方的3個傳感器數據可以實時獲取與機器人向前探測到障礙的距離,如圖5所示。通過讀取機器人前身3個傳感器數值,與在主控中預設的障礙距離做比較,如果小于預設值就說明前方有障礙,向檢測無障礙方向行駛。如果多個傳感器均小于預設值,說明前方堵塞無法前進,持續轉向直到傳感器均反饋無障礙為止,再進行探索。

圖5 避障三維模擬圖
核心代碼:

采用樹莓派作為機器人視頻數據獲取端。攝像頭與熱成像都通過提前寫好的python程序在樹莓派中進行調控,圖6為樹莓派獲取到的熱成像視頻數據,獲取的視頻可以通過vlc進行播放。然后將vlc獲取的流媒體通過WiFi內網進行網絡串流,只要上位機終端與樹莓派處于同一WiFi網絡下,即可通過樹莓派的IP地址實時獲取到樹莓派連接的視頻數據。

圖6 熱成像視頻數據
機器人獲取到實時的傳感器數據后,會進行一系列的濾波分析后通過藍牙串口來與上位機終端進行數據交互,上位機會通過發送控制值來控制機器人,機器人會將獲取的數據進行打包發送到上位機。數據打包遵循一定的格式,具體發送數據格式如表2所示。

表2 數據打包格式規范
人類對于未知環境的探索需求日益增長,基于ARM核心處理器和Freertos操作系統設計了一種智能探索機器人系統,并且設計了履帶底盤、機械臂等硬件設備,根據任務需求設計了基本的系統運行任務。經過多次的調試和測試驗證后,確定了本系統可以滿足一定的探索任務需求,并且在一定的數據干擾下仍然可以做到穩定運行,數據傳輸穩定,任務堆棧不會溢出。本系統可用于各種未知地帶的考察探索,不僅可以在復雜的野外地形環境中保持工作,還可以代替人類進入一些危險地帶完成一定的探索任務,為安全的環境考察提供了有效的解決辦法。