王櫻璇 范慧龍 姜博今 王旭 伊磊業(yè)
關(guān)鍵詞:機(jī)器人;ROS操作系統(tǒng);自動(dòng)化;作用及應(yīng)用
1. ROS在機(jī)器人控制系統(tǒng)中的應(yīng)用
1.1 ROS的應(yīng)用
ROS系統(tǒng)是一個(gè)可以通過計(jì)算機(jī)操控機(jī)器人的開源系統(tǒng)。在過去幾年的時(shí)間里,該操作系統(tǒng)已經(jīng)在機(jī)器人控制系統(tǒng)領(lǐng)域逐漸的進(jìn)行了普及,并漸漸成為機(jī)器人操作系統(tǒng)的主流?,F(xiàn)階段ROS系統(tǒng)被廣泛應(yīng)用于機(jī)械臂、無人機(jī)、移動(dòng)服務(wù)機(jī)器人等機(jī)器人領(lǐng)域,并愈發(fā)成熟。ROS系統(tǒng)使機(jī)器人操作更加細(xì)化,簡(jiǎn)化了冗長(zhǎng)的數(shù)據(jù)處理過程,并且可以實(shí)現(xiàn)對(duì)問題進(jìn)行及時(shí)處理,提高了機(jī)器人設(shè)備運(yùn)行的穩(wěn)定性。
1.2 ROS系統(tǒng)操作靈活
ROS系統(tǒng)通常由大量節(jié)點(diǎn)控制操作,其中每一個(gè)節(jié)點(diǎn)均可通過發(fā)布與訂閱的方式與其他節(jié)點(diǎn)進(jìn)行連接通信,方便操作者快速構(gòu)建出計(jì)算系統(tǒng)并進(jìn)行操作。此外,ROS系統(tǒng)為機(jī)器人的控制提供了:硬件抽象、底層設(shè)備控制、共用功能的執(zhí)行、進(jìn)程間消息傳遞以及包管理,并為代碼復(fù)用提供了幫助,避免了繁瑣工作時(shí)間的浪費(fèi),極大地提高了工作效率,提高了企業(yè)生產(chǎn)率,為企業(yè)的發(fā)展提供良好的競(jìng)爭(zhēng)力。
2.ROS的基本概念
2.1 ROS系統(tǒng)的介紹
ROS系統(tǒng)作為新興操作系統(tǒng),它是一個(gè)集成了開發(fā)庫和開發(fā)工具并適用于機(jī)器人軟件開發(fā)的框架。ROS系統(tǒng)支持多種語言編程,可以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)調(diào)試,同時(shí)還具備快速計(jì)算等編程優(yōu)點(diǎn)。
2.2 ROS系統(tǒng)的組成
ROS系統(tǒng)由三個(gè)層級(jí)組成——文件級(jí),計(jì)算圖級(jí)、社區(qū)級(jí)三部分。
文件級(jí)表示ROS的文件(即ROS源代碼),主要為計(jì)算機(jī)硬盤上看到的ROS目錄和文件。在該層級(jí),我們可以組織編寫ROS源代碼。它主要包括功能包集、Packages、package.xml、CMakeLists.txt等。
計(jì)算圖級(jí)描述了ROS系統(tǒng)進(jìn)行通信和計(jì)算的過程。ROS中的計(jì)算和通訊是通過節(jié)點(diǎn)網(wǎng)絡(luò)將參數(shù)提供給圖層進(jìn)行相應(yīng)的計(jì)算完成的。計(jì)算圖級(jí)主要內(nèi)容包括:Master、ROS節(jié)點(diǎn)(Node)、Service、Bags、Parameter server、Topics、Message等。
社區(qū)級(jí)是指ROS開源社區(qū)通過網(wǎng)絡(luò)社區(qū)對(duì)ROS資源的獲取和分享。這也使得ROS系統(tǒng)快速普及與發(fā)展。
3.ROS系統(tǒng)在機(jī)器人領(lǐng)域中的具體應(yīng)用方式
3.1 ROS節(jié)點(diǎn)通信
ROS系統(tǒng)含有一個(gè)超級(jí)管理員(ROS Master),系統(tǒng)中的所有節(jié)點(diǎn)均被ROS Master控制,節(jié)點(diǎn)中的相互通信也由ROS Master控制。ROS系統(tǒng)中的各個(gè)節(jié)點(diǎn)之間通過發(fā)布與訂閱的方式進(jìn)行相互通信。當(dāng)ROS運(yùn)行時(shí),每一個(gè)節(jié)點(diǎn)均可訪問網(wǎng)絡(luò)并進(jìn)行通信,并可以通過此方式獲取其他節(jié)點(diǎn)所發(fā)布的信息,同時(shí)也將該節(jié)點(diǎn)的自身數(shù)據(jù)發(fā)布到該網(wǎng)絡(luò)上。
例如,在ROS Master管理下,當(dāng)一個(gè)節(jié)點(diǎn)(Node)發(fā)出一個(gè)Topic并發(fā)送所需信息,與之相關(guān)的節(jié)點(diǎn)對(duì)其Topic訂閱。當(dāng)某節(jié)點(diǎn)在某一時(shí)刻需要一個(gè)請(qǐng)求時(shí),Node提出一種Service,并發(fā)送到ROS Master,并由Master建立與之相關(guān)的節(jié)點(diǎn)之間的聯(lián)系通道。
3.2 ROS系統(tǒng)控制
ROS系統(tǒng)可以涉及算法、仿真等多個(gè)方面,能夠?qū)C(jī)器人編程和仿真技術(shù)結(jié)合起來,并且可以用ROS系統(tǒng)與傳感器所讀取的數(shù)據(jù)和相應(yīng)的濾波算法相結(jié)合。此外,ROS系統(tǒng)支持人機(jī)智能交互技術(shù),提供關(guān)于機(jī)器人運(yùn)動(dòng)、機(jī)器視覺等方面的研習(xí),并支持圖像識(shí)別、語音識(shí)別、手勢(shì)交互等功能。
ROS編程人員應(yīng)該在調(diào)試程序的過程中及時(shí)對(duì)機(jī)器人進(jìn)行調(diào)試和維護(hù),特別注意對(duì)機(jī)械關(guān)節(jié)在不同自由度的移動(dòng)和機(jī)械裝置所需要完成的控制形式進(jìn)行測(cè)試和調(diào)節(jié),避免使用過程出現(xiàn)問題,預(yù)防危險(xiǎn)性的增加,防止影響最終的工作效率。
4.總結(jié)
ROS系統(tǒng)搭建機(jī)器人程序框架的功能,在目前來看依然具有較為廣泛的推廣空間。同時(shí)ROS系統(tǒng)可以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)調(diào)試,工作人員在日常操作使用過程中可以對(duì)所發(fā)現(xiàn)的問題進(jìn)行及時(shí)處理,最大程度地保證機(jī)器人運(yùn)行的穩(wěn)定性,為全面實(shí)現(xiàn)智能化制造生產(chǎn)帶來合理的解決方法,促進(jìn)了機(jī)器人相關(guān)領(lǐng)域的快速發(fā)展和進(jìn)步。
參考文獻(xiàn):
[1]曹正萬,平雪良,陳盛龍,蔣毅.基于ROS的機(jī)器人模型構(gòu)建方法研究[J].組合機(jī)床與自動(dòng)化加工技術(shù),2015(08):51-54.
[2]黃開宏,楊興銳,曾志文,盧惠民,鄭志強(qiáng).基于ROS戶外移動(dòng)機(jī)器人軟件系統(tǒng)構(gòu)建[J].機(jī)器人技術(shù)與應(yīng)用,2013(04):37-41+44.
[3]孟韶南,梁雁冰,師恒.基于ROS平臺(tái)的六自由度機(jī)械臂運(yùn)動(dòng)規(guī)劃[J].上海交通大學(xué)學(xué)報(bào),2016,50(S1):94-97.
作者簡(jiǎn)介:
王櫻璇(2001—),女,漢族,遼寧鞍山人,沈陽航空航天大學(xué)本科在讀。