劉曉帆,趙 彬,2
(1. 沈陽(yáng)新松機(jī)器人自動(dòng)化股份有限公司,遼寧 沈陽(yáng) 110168; 2. 東北財(cái)經(jīng)大學(xué) 工商管理學(xué)院,遼寧 大連 116025)
?
基于ROS的移動(dòng)機(jī)器人平臺(tái)系統(tǒng)設(shè)計(jì)*
劉曉帆1,趙 彬1,2
(1. 沈陽(yáng)新松機(jī)器人自動(dòng)化股份有限公司,遼寧 沈陽(yáng) 110168; 2. 東北財(cái)經(jīng)大學(xué) 工商管理學(xué)院,遼寧 大連 116025)
ROS是一個(gè)開源機(jī)器人操作系統(tǒng)。通過(guò)對(duì)機(jī)器人操作系統(tǒng)的研究,首先介紹了ROS系統(tǒng)框架和結(jié)構(gòu)特點(diǎn),其次提出了在ROS環(huán)境下搭建移動(dòng)機(jī)器人平臺(tái)的方法,并介紹了移動(dòng)機(jī)器人系統(tǒng)的硬件平臺(tái),最后闡述了移動(dòng)機(jī)器人各個(gè)功能模塊。該移動(dòng)機(jī)器人可以根據(jù)事先確定的任務(wù)自主進(jìn)行全局路徑規(guī)劃,同時(shí)不斷感知周圍的局部環(huán)境信息,對(duì)ROS的應(yīng)用有著重要的意義。
移動(dòng)機(jī)器人;系統(tǒng)平臺(tái);系統(tǒng)架構(gòu);ROS
智能移動(dòng)機(jī)器人對(duì)我國(guó)先進(jìn)制造技術(shù)的發(fā)展起著關(guān)鍵作用,利用機(jī)器人技術(shù)和信息技術(shù)的相互結(jié)合,移動(dòng)機(jī)器人將成為未來(lái)數(shù)字化信息化社會(huì)的關(guān)鍵角色[1]。隨著移動(dòng)機(jī)器人的發(fā)展,傳統(tǒng)按鍵、搖桿等遠(yuǎn)程操作方式由于其操作繁瑣等因素漸漸淡出人們的視野,基于視覺跟隨、語(yǔ)音控制、自動(dòng)導(dǎo)航等新型控制方式的機(jī)器人由于具有增強(qiáng)人機(jī)交互、提高參與感等優(yōu)點(diǎn)越來(lái)越受到人們的關(guān)注。然而,隨著機(jī)器人技術(shù)的發(fā)展,為不同機(jī)器人編寫軟件這一工作也變得越來(lái)越繁重。不同的機(jī)器人設(shè)計(jì)方案不同,底層接口也大不相同,編寫軟件也不同。雖然不同型號(hào)的機(jī)器人其基本算法是一致的,但是由于硬件板卡的不一致,導(dǎo)致了大量代碼冗余、通用性較差等缺點(diǎn)[2-3]。為了改善這些缺點(diǎn),機(jī)器人操作系統(tǒng)ROS應(yīng)運(yùn)而生。ROS很好地解決了軟件開發(fā)過(guò)程中代碼冗余、移植性差等問題。
本文在ROS平臺(tái)的基礎(chǔ)上,搭建移動(dòng)機(jī)器人平臺(tái)。該移動(dòng)機(jī)器人平臺(tái)以模擬人類自我學(xué)習(xí)的過(guò)程為目的,理解自己的狀態(tài)和外部環(huán)境信息,從而實(shí)現(xiàn)實(shí)時(shí)運(yùn)動(dòng)控制決策、避障、找到最優(yōu)路徑;在柵格地圖表征環(huán)境,采用柵格法進(jìn)行路徑規(guī)劃自主移動(dòng)和軌跡跟蹤。基于ROS的移動(dòng)機(jī)器人平臺(tái)改善了傳統(tǒng)機(jī)器人操作系統(tǒng)的缺點(diǎn),為移動(dòng)機(jī)器人控制提供了基礎(chǔ)。為打破國(guó)外發(fā)達(dá)國(guó)家在智能移動(dòng)機(jī)器人領(lǐng)域的相關(guān)技術(shù)封鎖,提高我國(guó)智能移動(dòng)機(jī)器人的技術(shù)水平,促進(jìn)我國(guó)智能機(jī)器人產(chǎn)業(yè)的發(fā)展提供了堅(jiān)實(shí)的基礎(chǔ)。
1.1 ROS簡(jiǎn)介
在機(jī)器人功能日益復(fù)雜的情況下,如何能夠簡(jiǎn)單快速地為機(jī)器人構(gòu)建所需的軟件系統(tǒng)是一個(gè)值得探討的問題[4]。ROS提供一些標(biāo)準(zhǔn)操作系統(tǒng)服務(wù),如硬件抽象、底層設(shè)備控制、常用功能實(shí)現(xiàn)、進(jìn)程間消息以及數(shù)據(jù)包管理。ROS從不同節(jié)點(diǎn)的進(jìn)程能夠接受、發(fā)布、聚合各種信息(例如傳感、控制、狀態(tài)、規(guī)劃等)[5]。目前ROS主要支持Ubuntu操作系統(tǒng)。ROS可以分成兩層,低層是上面描述的操作系統(tǒng)層,高層則是廣大用戶群貢獻(xiàn)的實(shí)現(xiàn)不同功能的各種軟件包,例如定位繪圖、行動(dòng)規(guī)劃、感知、模擬等。機(jī)器人操作系統(tǒng)(Robot Operating System, ROS)這一軟件平臺(tái)具有應(yīng)用接口豐富、維護(hù)效率高等優(yōu)點(diǎn)。
1.2 系統(tǒng)搭建
操作系統(tǒng)層是機(jī)器人平臺(tái)的控制核心,集成了機(jī)器人的功能模塊,負(fù)責(zé)行為控制、數(shù)據(jù)上傳、指令解析、人機(jī)交互等功能[4]。移動(dòng)機(jī)器人平臺(tái)與 ROS 通信接口保持一致,使用Ubuntu12.04作為操作系統(tǒng)。如圖1所示,基于ROS的移動(dòng)機(jī)器人平臺(tái)是一種較為典型的高性能、低成本機(jī)器人平臺(tái)。移動(dòng)機(jī)器人平臺(tái)具有相似的結(jié)構(gòu)與尺寸,同樣可以完成多種多樣的機(jī)器人應(yīng)用,但是在接口的可擴(kuò)展性、傳感器的豐富度以及成本控制等方面,具備更好的綜合性能。
該移動(dòng)機(jī)器人平臺(tái)繼承了ROS的優(yōu)勢(shì),具備ROS通信以及功能包運(yùn)行的能力,與上層網(wǎng)絡(luò)指令無(wú)縫連接,結(jié)合開源軟件庫(kù),極大地豐富了機(jī)器人的功能模塊與應(yīng)用范圍。
2.1 移動(dòng)機(jī)器人平臺(tái)
移動(dòng)機(jī)器人平臺(tái)(Mobile Robot Platform)具有軟硬件可編程、靈活性強(qiáng)、模塊化、易擴(kuò)展、實(shí)時(shí)性強(qiáng)等特點(diǎn),移動(dòng)機(jī)器人平臺(tái)的控制器采用Android系統(tǒng),Android系統(tǒng)與ROS系統(tǒng)設(shè)備之間的通信,不僅可以解決計(jì)算資源的限制,而且非常方便穩(wěn)定。如圖2所示為搭建的移動(dòng)機(jī)器人系統(tǒng)平臺(tái)。該移動(dòng)機(jī)器人平臺(tái)運(yùn)動(dòng)控制模塊,針對(duì)導(dǎo)航模塊生成的路徑規(guī)劃,完善路徑跟蹤的調(diào)度算法,使生成一次路徑規(guī)劃改為2 s,目的是減少系統(tǒng)頻繁路徑規(guī)劃導(dǎo)致機(jī)器人運(yùn)動(dòng)過(guò)程中來(lái)回?cái)[動(dòng)問題,實(shí)現(xiàn)自主避障功能算法。
圖2 移動(dòng)機(jī)器人平臺(tái)
2.2 軟件系統(tǒng)框架
根據(jù)層次化、模塊化的思想,設(shè)計(jì)的移動(dòng)機(jī)器人平臺(tái)的總體架構(gòu)如圖3所示。其中ROS平臺(tái)中的模塊代表需要完善的功能模塊;上層控制中的模塊代表需要重新開發(fā)的功能模塊。
圖3 機(jī)器人控制器總體框架
總線通信模塊:嵌入式雙軸板板卡程序更新為基于標(biāo)準(zhǔn)CANopen總線通信(除應(yīng)急幀功能外),針對(duì)硬件總線配線需求新增同步幀及從站初始化標(biāo)準(zhǔn)流程。
傳感器處理模塊:增加觸摸傳感器、壓力傳感器數(shù)據(jù)采集及控制處理完善聲吶傳感器控制處理流程。
指令系統(tǒng):方便PAD操作易用性,結(jié)合點(diǎn)餐實(shí)際應(yīng)用,滿足用戶基本需求,在目前的機(jī)器人平臺(tái)指令系統(tǒng)中需增加一些方便點(diǎn)餐的控制指令。
導(dǎo)航模塊:增加局部小角落地圖定位問題,可滿足機(jī)器人在某一范圍的小角落環(huán)境下定位成功,解決碼盤運(yùn)動(dòng)過(guò)程中位置糾偏問題;從算法上解決激光匹配問題(主要針對(duì)碼盤和激光結(jié)合過(guò)程中,激光數(shù)據(jù)一旦異常后,可由碼盤再次定位成功問題),針對(duì)激光數(shù)據(jù)異常做數(shù)據(jù)預(yù)處理。
3.1 控制器架構(gòu)
嵌入式系統(tǒng)具備小型化、低功耗、低成本、高靈活性等顯著特點(diǎn),電子技術(shù)的發(fā)展也促使可編程門陣列FPGA在嵌入式系統(tǒng)中得到了越來(lái)越廣泛的應(yīng)用,很大程度上改善了嵌入式系統(tǒng)硬件的靈活度與繁瑣計(jì)算的實(shí)時(shí)化。
(1)支持16路IO輸入、16路IO輸出,輸出具有1A驅(qū)動(dòng)能力,安全接口支持外部設(shè)備急停、示教盒及控制器本體急停,且支持生產(chǎn)線急停串聯(lián)。
(2)支持雙路CAN通信,實(shí)現(xiàn)協(xié)議解析與數(shù)據(jù)收發(fā)模塊獨(dú)立化設(shè)計(jì)。
(3)支持一體化關(guān)節(jié)、7軸機(jī)器人、蛙手及SCARA手運(yùn)動(dòng)學(xué)正、反解。
(4)內(nèi)置供電單元兼容24 V及48 V,內(nèi)置制動(dòng)電阻滿足一體化關(guān)節(jié)手臂需求。
(5)帶載功率1 200 W,支持動(dòng)力電可控與動(dòng)力電不可控兩種模式并具備動(dòng)力電監(jiān)測(cè)功能。
3.2 系統(tǒng)IO模塊
IO控制模塊主要完成IO信號(hào)量的采集。該模塊以DSP2812+CPLD的架構(gòu)實(shí)現(xiàn)IO的32路輸入、32路輸出控制,輸出最大驅(qū)動(dòng)電流為50 mA。IO控制模塊通過(guò)CAN總線或者Ethe機(jī)器人平臺(tái)AT與機(jī)器人平臺(tái)進(jìn)行通信。板卡尺寸為150 mm×100 mm,與E600相同。
IO板通信協(xié)議采用基于機(jī)器人平臺(tái)CANopen通信協(xié)議或者自定義協(xié)議,根據(jù)通信協(xié)議中SDO或PDO幀,控制IO口的輸出狀態(tài),采集輸入狀態(tài)。模塊組成:CAN驅(qū)動(dòng)模塊、CANopen模塊、E2驅(qū)動(dòng)模塊、SPI驅(qū)動(dòng)、E2PROM驅(qū)動(dòng)、IO輸入輸出。信息傳遞使用全局變量實(shí)現(xiàn),定時(shí)器實(shí)現(xiàn)了IO定時(shí)刷新與超時(shí)判斷功能。
4.1 語(yǔ)音技術(shù)
機(jī)器人具有語(yǔ)音輸入輸出功能,可以把文字材料轉(zhuǎn)化成語(yǔ)音朗讀出來(lái);操作者可以向便攜終端輸入語(yǔ)音命令,機(jī)器人識(shí)別后經(jīng)過(guò)語(yǔ)音合成后作出應(yīng)答。可以在安靜的環(huán)境下與顧客簡(jiǎn)單對(duì)話。
中英文混合識(shí)別技術(shù)特別是對(duì)中文口音的英文發(fā)音的處理方法,提高對(duì)英文單詞和短語(yǔ)的處理能力。開放式詞表擴(kuò)展技術(shù):研究可以在線擴(kuò)展詞表的有限自動(dòng)網(wǎng)絡(luò)增強(qiáng)方法,實(shí)現(xiàn)領(lǐng)域詞表的自由增減。方言口音自適應(yīng)技術(shù):研究對(duì)各種方言口音的魯棒性建模方法,增強(qiáng)對(duì)多種口音發(fā)音的識(shí)別能力。
4.2 通信技術(shù)
移動(dòng)機(jī)器人控制平臺(tái)的通信子系統(tǒng)由兩個(gè)單獨(dú)的模塊構(gòu)成:CANopen通信模塊、LCM通信模塊。移動(dòng)機(jī)器人控制平臺(tái)與機(jī)器人驅(qū)動(dòng)平臺(tái)通過(guò)CANopen協(xié)議進(jìn)行通信,實(shí)現(xiàn)機(jī)器人控制平臺(tái)對(duì)行走各軸的運(yùn)動(dòng)控制以及對(duì)電量監(jiān)控板、傳感器采集板等板卡的數(shù)據(jù)采集。LCM通信是系統(tǒng)內(nèi)部通信接口,通過(guò)LCM中間件實(shí)現(xiàn)平臺(tái)系統(tǒng)的內(nèi)部通信,底層為UDP廣播。將激光傳感器數(shù)據(jù)廣播到導(dǎo)航程序中,經(jīng)過(guò)計(jì)算后,導(dǎo)航程序?qū)⒙窂叫畔魉徒o機(jī)器人平臺(tái)程序。
這個(gè)系統(tǒng)的優(yōu)勢(shì)是可以應(yīng)用在很多領(lǐng)域,它是基于Linux的系統(tǒng),可以做得很小而且高效可靠,適合嵌入式設(shè)備,而且它是分布式系統(tǒng),只要不同設(shè)備處于同一局域網(wǎng)中就可以把整個(gè)系統(tǒng)看作一個(gè)整體。在系統(tǒng)層級(jí)不分設(shè)備,可以相當(dāng)于在同一設(shè)備上任意調(diào)用資源,而且通過(guò)rosjava可以與Android連接。所以這些特性非常適合智能家居和當(dāng)前熱門的可穿戴式設(shè)備。
4.3 導(dǎo)航定位
機(jī)器人平臺(tái)系統(tǒng)中導(dǎo)航定位包括躲避障礙物、可靠環(huán)境感知、魯棒數(shù)據(jù)關(guān)聯(lián)和基于位姿的粒子濾波等方法。再次地圖表征環(huán)境,采用柵格方法進(jìn)行路徑規(guī)劃。其次,機(jī)器人可以通過(guò)環(huán)境感知傳感器采集環(huán)境信息,實(shí)現(xiàn)自主路徑規(guī)劃并運(yùn)動(dòng)到預(yù)先設(shè)定的目標(biāo)點(diǎn),無(wú)需人工干預(yù)。移動(dòng)機(jī)器人具體工作時(shí)根據(jù)事先確定的任務(wù)自主進(jìn)行全局路徑規(guī)劃,在執(zhí)行此路徑的跟蹤時(shí),還要不斷感知周圍的局部環(huán)境信息,避開附近的移動(dòng)障礙物,即要進(jìn)行局部規(guī)劃或局部路徑修正。
圖4、圖5所示為激光雷達(dá)構(gòu)建的地圖數(shù)據(jù)。導(dǎo)航模塊為獨(dú)立模塊,通過(guò)LCM與機(jī)器人平臺(tái)系統(tǒng)進(jìn)行通信,實(shí)現(xiàn)地圖創(chuàng)建、路徑規(guī)劃、自主避讓、定位、以及目標(biāo)跟隨等功能,為機(jī)器人底盤運(yùn)動(dòng)核心部分。利用粒子濾波全局定位功能,在判斷激光定位出錯(cuò)時(shí),在大范圍內(nèi)(10 m×10 m),機(jī)器人邊運(yùn)動(dòng)邊采用粒子濾波大范圍定位。
圖5 實(shí)時(shí)激光數(shù)據(jù)地圖匹配
本文設(shè)計(jì)了一種基于ROS的移動(dòng)機(jī)器人平臺(tái)系統(tǒng)。該機(jī)器人系統(tǒng)平臺(tái)通過(guò)采集人體的手勢(shì)、姿態(tài)和語(yǔ)音信息,然后利用數(shù)據(jù)融合技術(shù)對(duì)信息數(shù)據(jù)進(jìn)行處理。移動(dòng)機(jī)器人平臺(tái)系統(tǒng)采用激光傳感器采集激光數(shù)據(jù),并使用ROS包生成移動(dòng)機(jī)器人周圍的虛擬現(xiàn)實(shí)環(huán)境,解決了傳統(tǒng)生產(chǎn)調(diào)試操作繁瑣、系統(tǒng)延時(shí)大、現(xiàn)場(chǎng)感不強(qiáng)等缺點(diǎn),使操作人員有如身臨其境地操作遠(yuǎn)程移動(dòng)機(jī)器人,能高效地完成移動(dòng)機(jī)器人作業(yè)。鑒于此,研究基于ROS的移動(dòng)機(jī)器人對(duì)導(dǎo)航與調(diào)度系統(tǒng)技術(shù)研究具有重要意義,不僅滿足我國(guó)對(duì)未來(lái)多種類的高性能智能移動(dòng)機(jī)器人需求,而且對(duì)占領(lǐng)市場(chǎng)具有重要的戰(zhàn)略意義。
[1] 劉振宇,趙彬,朱海波,等.六自由度機(jī)械臂分揀系統(tǒng)仿真平臺(tái)研究[J]. 機(jī)械設(shè)計(jì)與制造, 2013,3(2): 210-213.
[2] Wang Bingfeng, Cui Shigang, Zhao Li, et al. Mobile robot map building based on grid arrangement[J]. Artificial Intelligence and Computational Intelligence, 2009, 9(2): 288-291.
[3] LEE Y C, CHRISTAND, YU W, et al. Satellite image based topological map building method for intelligent mobile robots[J]. Intelligent Vehicles Symposium, 2012,2(7): 867-872.
[4] CHANG W C, CHUANG C Y. Vision-based robot navigation and map building using active laser projection[J]. System Integration (SII), 2011, 11(20): 24-29.
[5] GUIVANT J, NEBOT E, BAIKER S. Autonomous navigation and map building using laser range sensors in outdoor applications[J]. Journal of Robotics Systems, 2000, 17(10) : 565-583.
Design of mobile robot platform system based on ROS
Liu Xiaofan1, Zhao Bin1,2
(1. SIASUN Robot & Automation Co., Ltd., Shenyang 110168, China;2. College of Business Administration, Dongbei University of Finance and Economic,Dalian 116025,China)
ROS is an open-source robot operating system. In this paper, the research of the robot operating system is introduced. Firstly, the framework and structure of ROS are introduced. Secondly, the method of building mobile robot platform in ROS environment is proposed. Thirdly, the hardware platform of mobile robot system is introduced. At last, the function modules of mobile robot are expounded. The mobile robot can autonomously carry out global path planning according to the pre-determined tasks, and continuously sense the surrounding local environment information, which is of great significance to the application of ROS.
mobile robot; system platform; system architecture; ROS
國(guó)家科技重大專項(xiàng)(2014ZX02103)
TP242.3
A
10.19358/j.issn.1674- 7720.2017.11.016
劉曉帆,趙彬.基于ROS的移動(dòng)機(jī)器人平臺(tái)系統(tǒng)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2017,36(11):54-56,59.
2017-01-12)
劉曉帆(1980-),通信作者,女,碩士,副總工程師,主要研究方向:機(jī)器人控制系統(tǒng)應(yīng)用。E-mail:tech_zhaobin@126.com。
趙彬(1987-),男,碩士,工程師,主要研究方向:機(jī)器人及自動(dòng)化。