史小露 鄭友勝 張磊
摘 要:針對目前智能代步車運動控制系統(tǒng)功耗高、體積大和開發(fā)成本高和工作量大等不足,提出一種基于機器人操作系統(tǒng)(Robot Operating System,ROS)的智能代步車嵌入式運動控制系統(tǒng)。該運動控制系統(tǒng)將ROS移植到arm嵌入式板卡,將arm作為中央處理器,運用ROS中的導(dǎo)航功能包實現(xiàn)智能代步車的地圖建立、路徑規(guī)劃、室內(nèi)外自主導(dǎo)航、運動控制等功能,最后通過仿真實驗驗證了該運動控制系統(tǒng)的可行性。
關(guān)鍵詞:機器人操作系統(tǒng);智能代步車;嵌入式運功控制系統(tǒng)
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A
文章編號:2096-1472(2016)-06-48-03
Abstract:In view of some outstanding problems of intelligent electronic scooters,such as the high power consumption,the huge size,the high development costs and heavy workload,the paper proposes an embedded motion control system based on the Robot Operating System(ROS)for intelligent electronic scooters the ROS was ported to the arm embedded board which is used as the central processor in the embedded motion control system.Functions like map building,route planning,indoor and outdoor autonomous navigation and motion control are implemented through the ROS navigation function package.At the end of the paper,the feasibility of the motion control system is verified through the simulation experiments.
Keywords:ROS;intelligent electronic scooters;embedded motion control systems
1 引言(Introduction)
隨著社會的發(fā)展和人類文明程度的提高,人們特別是殘疾人愈來愈需要運用現(xiàn)代高新技術(shù)來改善他們的生活質(zhì)量和生活自由度。智能代步車的出現(xiàn)提高了老年人和殘障人士的行動自由度,受到了社會的普遍關(guān)注,將機器人技術(shù)[1-4]應(yīng)用于智能代步車提高智能代步車的智能化、安全化、實用化程度具有廣泛的應(yīng)用前景。然而,機器人技術(shù)的復(fù)雜性和多任務(wù)性給智能代步車運動控制系統(tǒng)程序的編寫帶來很大的困難。傳統(tǒng)的智能代步車運動控制系統(tǒng)都是開發(fā)者單獨設(shè)計,在不同的平臺間移植需要很大的工作量。機器人操作系統(tǒng)[5,6](Robot Operating System,ROS)起源于2007年斯坦福大學(xué)人工智能實驗室與機器人技術(shù)公司的項目合作,ROS是一種分布式處理架構(gòu),為機器人系統(tǒng)的開發(fā)提供了一個很好的框架,擁有用于機器人的各種功能包,這些功能包單獨設(shè)計,在運行時松散耦合,提高了代碼復(fù)用率。
控制系統(tǒng)作為智能代步車的核心部分,其性能好壞和開發(fā)周期直接決定著智能代步車的智能化程度、安全性能和使用成本,如何簡單快速地為智能代步車構(gòu)建運動控制系統(tǒng)是一個值得深入研究的問題。本文針對智能代步車提出了一種基于ROS的嵌入式運動控制系統(tǒng),應(yīng)用ROS提供的功能包實現(xiàn)智能代步車的定位、導(dǎo)航與控制。
2 運動控制系統(tǒng)硬件設(shè)計(Hardware design of motion control system)
智能代步車本體為電動輪椅車,在此基礎(chǔ)上進(jìn)行改裝,增加必要的傳感器和嵌入式arm開發(fā)板,針對不同的任務(wù)需求,在智能代步車本體上安裝相應(yīng)的傳感器,如圖1所示。
智能代步車的底盤為兩輪驅(qū)動結(jié)構(gòu),兩個驅(qū)動輪安裝于車體后方,采用兩輪差速驅(qū)動的方式實現(xiàn)智能代步車的運動。驅(qū)動輪連接的電機配有兩個采集驅(qū)動輪滾動的圈數(shù)的光電編碼器,可實現(xiàn)對智能代步車運行里程的計算。車體前方裝有萬向輪用來控制智能代步車的運動方向,裝有hokuyo激光測距儀檢測障礙物與智能代步車的距離。智能代步車選用的定位傳感器為Stargazer和gps,選用的CPU模塊為飛思卡爾imx6q,選用的底層操作系統(tǒng)為ubuntu armhf系統(tǒng)和ROS。
3 運動控制系統(tǒng)軟件設(shè)計(Software design of motion control system)
在構(gòu)建運動控制系統(tǒng)軟件構(gòu)架時,既要確保控制系統(tǒng)的高性能,還要保證控制系統(tǒng)易于擴展和維護,更要與ROS系統(tǒng)軟件體系結(jié)構(gòu)相融合。智能代步車軟件系統(tǒng)按程序?qū)崿F(xiàn)流程劃分,主要分為人機交互層、決策層、控制層、感知層,各層間相互關(guān)系如圖2所示。
智能代步車任務(wù)實現(xiàn)流程主要分為三個環(huán)節(jié):
(1)用戶通過人機交互層將任務(wù)傳達(dá)給智能代步車。
(2)決策層通過感知層傳達(dá)的數(shù)據(jù)信息確定機器人所處的外部環(huán)境狀態(tài)和代步車的運動狀態(tài),并據(jù)此做出決策。
(3)依據(jù)決策結(jié)果,由驅(qū)動層選擇合適的控制策略,實現(xiàn)預(yù)定的工作任務(wù)。
任務(wù)執(zhí)行過程中,內(nèi)傳感器實現(xiàn)對智能代步車運動狀態(tài)的描述,外傳感器感知外部工作環(huán)境信息。感知層將所獲取的智能代步車運動狀態(tài)及工作環(huán)境狀態(tài)反饋給系統(tǒng)決策層并作為決策依據(jù)。從圖2中可知,人機交互系統(tǒng)與決策系統(tǒng)之間存在雙向信息傳播。一方面,操作者通過人機交互層向智能代步車傳送任務(wù)命令;另一方面,決策層實時向人機交互層傳送智能代步車運行狀態(tài)及外部工作環(huán)境狀態(tài),并通過可視化技術(shù)在人機交互界面上顯示。在決策層與驅(qū)動層之間同樣存在雙向信息傳遞:決策層把決策結(jié)果傳遞給驅(qū)動層,作為驅(qū)動層運行的依據(jù);同時,驅(qū)動層將把執(zhí)行的結(jié)果反饋給決策層,供決策系統(tǒng)參考并做出相應(yīng)調(diào)整。
3.1 人機交互層
人機交互層與決策層通過以太網(wǎng)連接,可顯示決策層建立的室內(nèi)地圖和規(guī)劃的路徑。人機交互層的操作界面為一臺平板電腦,可實時監(jiān)控顯示智能代步車的運行位置和運行狀態(tài),用戶可通過觸屏的方式向智能代步車發(fā)送運動控制指令和導(dǎo)航指令,比如用戶可以通過人機交互層設(shè)定智能代步車的起始點、目標(biāo)點位置,系統(tǒng)會將該指令通過以太網(wǎng)傳輸給決策層,決策層經(jīng)過計算處理后得出路徑導(dǎo)航規(guī)劃方案,以實現(xiàn)對智能代步車的控制。當(dāng)出現(xiàn)緊急情況時,用戶可通過人機交互層及時介入系統(tǒng)導(dǎo)航?jīng)Q策過程,以避免危險事故的發(fā)生。圖3為導(dǎo)航過程在人機交互層的顯示。
3.2 決策層
決策層為飛思卡爾imx6q開發(fā)板,軟件開發(fā)系統(tǒng)環(huán)境為ubuntu armhf系統(tǒng)、ROS系統(tǒng),主要實現(xiàn)功能包括建立地圖、自主導(dǎo)航和運動控制[7-9]。當(dāng)智能代步車處于地圖創(chuàng)建模式時,決策層調(diào)用ROS中的gmapping功能包,通過手動控制模式控制智能代步車在未知環(huán)境中移動,在移動過程中根據(jù)位置估計和地圖進(jìn)行自身定位,在自身定位的基礎(chǔ)上創(chuàng)建SLAM柵格地圖,并將地圖信息發(fā)布給人機交互層顯示;當(dāng)智能代步車處于運動控制模式時,決策層從人機交互層讀取運動控制指令,并通過話題“cmd_vel”發(fā)布出去;當(dāng)智能代步車處于自主導(dǎo)航模式時,決策層調(diào)用ROS中navigation功能包,并接收感知層采集到的傳感器信息,經(jīng)過一系列計算,輸出智能代步車的速度并通過cmd_vel”發(fā)布出去[9]。
決策層中的運動學(xué)模塊訂閱到“cmd_vel”發(fā)布的線速度和角速度后,根據(jù)運動學(xué)模型可計算出左右輪速度,如圖4所示。O1、O2分別是左、右驅(qū)動輪的輪心,輪間距O1O2為l,C為O1O2的中心,、、分別為左、右驅(qū)動輪及智能代步車中心的速度。
智能代步車做圓弧運動。
3.3 驅(qū)動層
驅(qū)動層主要由控制部分和被控制部分組成,如圖5所示??刂撇糠旨纯刂破?,被控部分即電機。圖中帶叉號的圓圈為比較環(huán)節(jié),用來將輸入與輸出相減,給出偏差信號。控制器通過接收決策層輸出的控制指令和智能代步車的實際速度計算偏差,再由偏差產(chǎn)生作用去消除偏差,對電機發(fā)出控制信號。電機在控制信號的作用下實現(xiàn)被控運動,從而驅(qū)動智能代步車以預(yù)定的速度運行。
3.4 感知層
感知層主要包括外部激光傳感器、stargazer、gps和內(nèi)部的光電編碼器。激光傳感器用來獲取智能代步車周圍障礙物的距離信息,為建立地圖和自主避障提供信息。stargazer通過對標(biāo)簽的識別實現(xiàn)室內(nèi)定位功能。室外多屬于公共場所,相比室內(nèi)環(huán)境復(fù)雜,因此采用GPS獲取自身所在的位置和航向角信息。光電編碼器可以檢測電機的轉(zhuǎn)過的圈數(shù),通過公式(5)—(7)實現(xiàn)里程計和速度的計算。
在車體不發(fā)生側(cè)滑的情況下,車體方位與左右輪運動速度和具有如下關(guān)系:
根據(jù)編碼器的采樣信息,將公式(5)—(7)兩邊積分,可實時計算出智能代步車車體方位。
4 仿真實驗(Simulation experiment)
為了驗證運動控制系統(tǒng)的有效性,在rviz仿真平臺上結(jié)合ROS對建立的運動控制系統(tǒng)進(jìn)行了仿真實驗,對其運動性能進(jìn)行了分析。實驗首先運行核心節(jié)點roscore,然后啟動已經(jīng)創(chuàng)建好的智能代步車自主導(dǎo)航節(jié)點,并在rviz中導(dǎo)入已有的環(huán)境地圖,通過rviz窗口最頂端“2D Pose Estimate”和“2D Nav Goal”設(shè)置智能代步車的初始位置和目標(biāo)位置。通過圖6可以看出,在地圖中任意選擇一個目標(biāo)點,智能代步車都能夠規(guī)劃出一條最優(yōu)路徑完成并到達(dá)指定位置。圖6中黃色的箭頭表示智能代步車前進(jìn)的方向,綠色的實線代表ROS規(guī)劃的路徑。
5 結(jié)論(Conclusion)
本文提出的基于ROS的智能代步車嵌入式運動控制系統(tǒng)具備室內(nèi)外定位導(dǎo)航功能,體積小、功耗低,運用ROS中基于擴展卡爾曼濾波器同時定位與地圖創(chuàng)建方法構(gòu)建定位系統(tǒng)和SLAM地圖,依靠ROS中已有的Dijkstra最優(yōu)路徑算法計算出智能代步車到達(dá)目標(biāo)位置的最優(yōu)路徑,通過兩輪差速的驅(qū)動方式實現(xiàn)從當(dāng)前位置安全到達(dá)地圖中其它指定位置。
本文提出的嵌入式運控制系統(tǒng)利用了ROS的軟件架構(gòu)和導(dǎo)航功能包,開發(fā)人員只需要少量的編程工作即可構(gòu)建一套較為完整的運動控制系統(tǒng),使得軟件搭建工作更方便,效率更高。
參考文獻(xiàn)(References)
[1] Liangwen Wang,et al.A geometric approach to solving the stable workspace of quadruped bionic robot with hand foot-integrated function[J].Robotics and Computer Integrated Manufacturing,2016:13.
[2] Hong Zhang,et al.Adaptive incremental learning of image semantics with application to social robot[J].Neurocomputing,2016:173.
[3] Rai-Wung Park.Nonlinearity Estimation and Compensation for Robust Paths and Forces Control of Robot[J].British Journal of Applied Science & Technology,2015,7(2):224-236.
[4] Maciej Petko,Grzegorz Karpiel,Konrad Gac,Grzegorz Góra,Konrad kobus,Janusz Ochoński.Trajectory tracking controller of the hybrid robot for milling[J].Mechatronics,2016,8:100-111.
[5] 張建偉,等.開源機器人操作系統(tǒng)ROS[M].北京科學(xué)出版社,2012:9-24.
[6] 馬丁內(nèi)斯.劉品杰,譯.ROS機器人程序設(shè)計[M].北京:機械工業(yè)出版社,2014.
[7] http://wiki.ros.org/navigation/Tutorials/RobotSetup.
[8] http://wiki.ros.org/gmapping.
[9] 高雅,李曉娟,關(guān)永.運用定理證明器ACL2驗證機器人操作系統(tǒng)ROS節(jié)點間通信[J].小型微型計算機系統(tǒng),2014,35(9):2126-2130.
作者簡介:
史小露(1987-),女,碩士,設(shè)計師.研究領(lǐng)域:機器人操作系統(tǒng),嵌入式開發(fā).
鄭友勝(1982-),男,博士,高級工程師.研究領(lǐng)域:機器人操作系統(tǒng),智能控制系統(tǒng).
張 磊(1986-),男,碩士,工程師.研究領(lǐng)域:飛機航空電子總體設(shè)計.