王露,蔣恒新,閆瀟樂
重慶交通大學,重慶,400074
如今工業機器人的技術發展迅速,依靠人工來完成的工作大多被工業機器人所承擔,因此移動機器人的研究已經從工業生產上不斷地向我們的日常生活領域轉換[1]。由于ROS系統具有快速開發的特點,因此在許多方面都得到了應用,ZAMAN等人[2]實現了機器人即時定位和地圖構建的功能,KERR等人[3]實現了仿真機器人等。助老服務機器人主要包含有感知環境的系統、運動控制系統以及語音控制系統等,通過這些系統的互相聯動,才能搭建一臺較為理想的助老機器人。搭建助老服務機器人的本體最主要的就是設計機器人的機械結構,該部分不僅可以決定機器人的運動速度,還影響著機器人運動的范圍及運動的可靠性,是移動機器人能否實現設計目標的關鍵。自主導航技術作為移動機器人的研究核心,是指機器人通過激光雷達所感知到的環境信息和自身的位置,實現姿態間的自主移動,在移動過程中還可以合理地避開障礙物[4]。本設計采用多傳感器來對室內的環境進行感知,包括激光雷達、雙目攝像頭等,通過多個傳感器的融合,機器人便可實現室內自主導航的目的。本設計還充分考慮了機器人的各項用途及各部分功能的實現,對機器人本體進行了不斷的改進與完善,成功搭建了助老服務機器人。通過實驗驗證,該機械結構能夠保證各功能部件之間良好運作,確保了機器人在室內運行的安全性及穩定性。
本設計采用以樹莓派4B(Raspberry Pi 4B)為核心芯片的控制電路。樹莓派4B具備1.5GHz運行的64位四核處理器,最高支持以60fps速度刷新的4K分辨率的雙顯示屏,高達4GB RAM,2.4/5.0GHz雙頻無線LAN,藍牙5.0/BLE,USB3.0和POE功能。
本設計采用STM32F103RCT6的控制電路。該單片機為32位CPU,片內帶有兩個無源振蕩器,主頻晶振為8MHz,可倍頻至72MHz,RTC晶振為32.768kHz。同時該單片機擁有84個中斷,包括16個內核中斷和60個可屏蔽中斷,具有16級可編程的中斷優先級。該芯片共有8個定時器,包含2個高級定時器、4個通用定時器和2個基本定時器。STM32控制器實現的主要功能是采集里程計信息、采集陀螺儀信息和電機控制。STM32控制器將實現ROS主控發送過來的目標速度并且給ROS主控去提供運動底盤的傳感器的信息,包括里程計信息、IMU和電池電壓數據。
本設計采用HWT101旋轉姿態角度傳感器,該模塊集成高精度的水晶陀螺儀傳感器,采用高性能的微處理器和先進的動力學解算與卡爾曼動態濾波算法,能夠快速求解出實時運動姿態。模塊內部集成了姿態解算器,穩定性極高,內部自帶電壓穩定電路,工作電壓3.3~5V,引腳電平兼容3.3V/5V的嵌入式系統。支持串口和IIC兩種數字接口。串口速率2400~921600bps可調,IIC接口支持全速400K速率,最高500Hz數據輸出頻率。保留4路擴展端口,可以分別配置為模擬輸入、數字輸入、數字輸出和PWM輸出等功能。具備GPS連接能力,可接受符合NMEA-0183標準的串口GPS數據,形成GPS-IMU組合導航單元。
本設計助老服務機器人的控制程序中有多個運動狀態控制函數,可實現對該助老服務機器人的位置姿態控制。機器人底盤配備有兩個減速比為1:56的帶編碼器直流減速電機,既能夠控制移動機器人的行駛距離,還可以控制機器人運行的速度。機器人運動底盤如圖1所示。
本設計采用了萬向輪為從動輪,萬向輪的一大優點就是靈活、控制簡單且可靠。利用萬向輪可以克服麥克納姆輪的缺點,而且也不會打滑,機器人便可在室內完成各種形式的運動。軌跡跟蹤控制是輪式機器人的一個典型任務,軌跡跟蹤控制不僅具有空間位置要求,同時還具有時間要求, 即機器人要在規定的時間內到達指定位置, 使機器人跟蹤一條以時間為參數的軌跡[5]。
本文設計的移動機器人主要由控制系統、感知系統及驅動裝置三部分組成。控制裝置主要包括樹莓派主板和STM32主板,樹莓派主板和STM32之間采用串口來進行通信。STM32驅動板通過接收樹莓派ROS操作系統的運動控制信息,經過一系列的算法,將運動控制信息轉換成PWM波,以此來控制電機轉動,使機器人移動到室內的任意位置。圖2為本設計的移動機器人系統框架圖。
考慮到室內場所的要求和機器人的重心等問題,本文設計的移動機器人采用可以在平地平穩前進的輪式底盤。該底盤配有兩個萬向輪作為從動輪,在有轉向要求時,可以幫助移動機器人快速且準確地移動。移動機器人硬件分為上下四層:第一層安裝有雙目攝像頭、激光雷達和環形六麥克風陣列,第二層為航模電池等設備,第三層安裝樹莓派主板和各類傳感器,第四層安裝STM32驅動板。電源采用11.1V航模電池,經USB、LM2596S穩壓等給機器人供電。兩輪差分底盤編碼器電機經TB6612FNG電機驅動與STM32連接,實現閉環控制。單片機通過串口數據線與樹莓派通信。激光雷達、麥克風陣列放置于機器人本體的頂層,以防車體本身干擾。所有供電模塊通過急停按鈕控制,便于人為地處理一些突發的緊急情況,使機器人能夠緊急停止工作。

表1 主要硬件型號及參數
本設計采用Gmapping功能包來進行自主導航。在路徑規劃中采用了Navigation功能包,該功能包首先得訂閱laser_scan話題,此話題含有激光雷達的深度信息,同時樹莓派主板接收底盤傳輸上來的里程計信息,運用Rao-Blackwelllized粒子濾波算法,經過了一系列參數的調整,就可以輸出二維柵格地圖,從而完成室內各個區域地圖的構建。
本設計移動機器人進行自主導航時,移動機器人首先會通過全局的路徑規劃,在室內構建的地圖中計算出一條從當前位置到目標位置的最為理想的行徑。實際上機器人在室內進行移動時,移動方向會與操作者下發的指令存在一些偏差,這時本地路徑規劃器會將全局路徑分成塊,分塊控制移動機器人的位置和姿態,使之在局部切合全局路徑的計劃。通過將全局路徑設計和局部路徑設計互相聯系的方式,機器人就可以實現自主導航的目的。在本設計中,局部路徑規劃算法采用DWA算法。在ROS系統中,當move_base處在規劃的時刻時,通過調用DWA算法,便可以計算出一條最佳的速度命令,將這條命令發送給機器人運動底盤執行。利用DWA算法,首先要確定機器人的運動模型,然后要對機器人進行速度的采集,通過獲取機器人的多組速度,采用速度評價函數對每個速度所生成的軌跡進行評價,就可以計算出機器人在室內移動的確切軌跡。
本設計采用思嵐激光雷達YDLIDAR X2L,利用三角測距這一原理,實現了高精度的距離測量。在測距的同時,機械結構會進行360度的掃描,不斷地獲取移動機器人的角度信息,最終實現掃描環境的云數據的輸出。X2L采用3.3V電平串口(UART)實現通信,可以依照系統的通信協議進行通信,以此來得到掃描的點云數據、設備信息和設備狀況,并可設置設備工作模式等。X2L自帶電機調速功能的電機驅動器,外設可通過接口中的M_SCTR管腳輸入控制信號對X2L的電機進行控制。M_SCTR為電機速度控制信號,可電壓調速,也可以PWM波調試,電壓越低/PWM占空比越小,電機的轉動速度越高,占空比為0%時速度最大。
語音控制是利用科大訊飛六麥克風陣列進行聲音信號的采集,然后再利用訊飛評估板對語音進行過濾,通過離線命令詞識別的方法將信號轉換成文字,以文字的形式返回。操作者可通過語音交互這一功能對機器人進行提問,問題主要涉及室內的環境狀況、機器人自主檢測展廳內的溫濕度及二氧化碳情況,語音播報其含量,通過USB免聲卡驅動連接喇叭來反饋操作者的提問。當機器人在室內任意環境中被操作人員呼喚,機器人能夠語音識別并做出相應的反應。同時還可以通過語音對機器人進行控制,如啟動、停止、對話等。
由于移動機器人底盤使用了驅動輪及萬向輪,機器人本體采用了四層陽極氧化鋁合金板及鋁型材為主要結構,因此該設計能夠保證移動機器人在室內的任意位置穩定地行駛,同時當機器人有轉向要求的時候,可以通過控制底盤進行360度的旋轉。該機械裝置為機器人提供了可靠的工作條件,保證了各層設備的良好運作能力。本設計機器人主要是實現自主導航的功能,機器人通過自主路徑規劃可以實現在室內任意區域自主移動。老人行動不便時,通過手勢或者語音對機器人發出指令,機器人通過自主導航的方式到達指定位置,做出相應的動作。
移動機器人是一個較為復雜的自動化系統,涉及機械結構、自動控制、通信控制、傳感器信息融合及電源技術等多個領域,而機械結構是移動機器人這一復雜系統的基礎結構,同時機械結構也決定了移動機器人是否能夠正常投入使用。本設計基于整體結構的布局與控制,借鑒了各類移動機器人的機械結構,在此基礎上進行了不斷的創新與改進,完成了助老機器人的設計。同時鋁合金板及鋁型材支撐柱增加了移動機器人外殼的強度,能夠較好地保證移動機器人的使用期限。結果表明本設計的移動機器人可滿足語音控制、自主導航等功能,能夠較好地實現助老服務的目的。