曹洪鑫,張向慧,張忠海, 王紅偉, 王漪夢(mèng)
(1.北方工業(yè)大學(xué) 機(jī)械與材料工程學(xué)院,北京 100144;2.北京航天測(cè)控技術(shù)有限公司,北京 100041)
機(jī)械臂從誕生到現(xiàn)在已經(jīng)快要一個(gè)世紀(jì),研究學(xué)者們對(duì)機(jī)械臂的熱情非但沒(méi)有減弱,反而越來(lái)越強(qiáng)烈。現(xiàn)如今,機(jī)械臂應(yīng)用的場(chǎng)合越來(lái)越廣泛,比如:航空航天、船舶工程、生物醫(yī)療、輕工業(yè)等。機(jī)械臂給人類(lèi)生產(chǎn)生活帶來(lái)極大的便利,甚至現(xiàn)在一些機(jī)械臂能出色的代替人完成任務(wù)。
ROS是一個(gè)針對(duì)機(jī)器人的開(kāi)源、元級(jí)操作系統(tǒng)。它提供了用戶(hù)在操作系統(tǒng)上所期望的服務(wù),包括硬件抽象、低層設(shè)備控制、常用功能的實(shí)現(xiàn)、進(jìn)程之間的信息傳遞以及包管理。它還提供了在多臺(tái)計(jì)算機(jī)上獲取、生成、編寫(xiě)以及運(yùn)行代碼的工具和庫(kù)。國(guó)內(nèi)目前可以使用GitHub、ROS wiki進(jìn)行使用,同時(shí)gitee碼云平臺(tái)也包含了許許多多開(kāi)發(fā)者們的代碼分享。
ROS中的核心稱(chēng)為節(jié)點(diǎn)。節(jié)點(diǎn)通常為使用Python或C++編寫(xiě)的小程序,用于執(zhí)行一些相對(duì)簡(jiǎn)單的任務(wù)或過(guò)程。節(jié)點(diǎn)可以相互獨(dú)立的啟動(dòng)和停止,并通過(guò)傳遞消息進(jìn)行通信。節(jié)點(diǎn)可以在某些主題上發(fā)布消息或向其他節(jié)點(diǎn)提供服務(wù)。如控制執(zhí)行器、運(yùn)行導(dǎo)航算法、處理圖像、發(fā)布傳感器數(shù)據(jù)等。節(jié)點(diǎn)可以定義一個(gè)或多個(gè)服務(wù)。當(dāng)從一個(gè)節(jié)點(diǎn)發(fā)送請(qǐng)求時(shí),ROS服務(wù)會(huì)產(chǎn)生某個(gè)行為或發(fā)送應(yīng)答[1],比如當(dāng)給定一個(gè)目標(biāo)位置和機(jī)器人的初始位姿時(shí),返回一個(gè)機(jī)械臂運(yùn)動(dòng)規(guī)劃的服務(wù)。
國(guó)內(nèi)外都在為了充分發(fā)揮機(jī)器人機(jī)械臂的工作效率和工作能力而進(jìn)行研究,尤其是實(shí)時(shí)控制系統(tǒng)的開(kāi)發(fā)也是各企業(yè)科技平臺(tái)的必爭(zhēng)之地,對(duì)于機(jī)器人機(jī)械臂的實(shí)時(shí)控制系統(tǒng)開(kāi)發(fā)不論是對(duì)個(gè)人還是企業(yè)來(lái)說(shuō)都至關(guān)重要。
機(jī)械臂是一個(gè)復(fù)合產(chǎn)品,其中包含了比如機(jī)械結(jié)構(gòu)、機(jī)電系統(tǒng)運(yùn)動(dòng)學(xué)和動(dòng)力學(xué)、傳感器及其信號(hào)處理技術(shù)、線(xiàn)性與非線(xiàn)性系統(tǒng)分析、控制系統(tǒng)設(shè)計(jì)、終端展示界面等知識(shí),整個(gè)機(jī)械臂系統(tǒng)就是一個(gè)小型的現(xiàn)代科技知識(shí)集合體,美國(guó)在這一方面走在了時(shí)代的前面,早在1920年就已經(jīng)有了完成重復(fù)的人類(lèi)工作的機(jī)械臂產(chǎn)品[2]。
Demir[4]等人的機(jī)器人手臂。如圖1,機(jī)械臂控制系統(tǒng)中執(zhí)行人和機(jī)械臂是分開(kāi)進(jìn)行的,分別采用Kinect 技術(shù)和虛擬現(xiàn)實(shí)技術(shù),可以實(shí)時(shí)的對(duì)人的動(dòng)作進(jìn)行復(fù)制,控制機(jī)械臂完成人手的動(dòng)作,在研究中也通過(guò)空蕩的房屋等條件保證實(shí)時(shí)性體驗(yàn)、排除其他因素的干擾。文獻(xiàn)[5]進(jìn)行了多自由度機(jī)械臂控制系統(tǒng)的研究,其中包括機(jī)電系統(tǒng)動(dòng)力學(xué)知識(shí)、機(jī)械臂路徑規(guī)劃算法、運(yùn)動(dòng)邏輯控制問(wèn)題以及針對(duì)不同要求設(shè)計(jì)機(jī)械臂末端軌跡點(diǎn)的插值算法等。它所用的開(kāi)發(fā)工具是主要包括 STM32 控制板和搭載有機(jī)械臂控制系統(tǒng)的工控機(jī)等,搭載在工控機(jī)上的軟件實(shí)現(xiàn)了機(jī)械臂運(yùn)動(dòng)控制可視化以及機(jī)械臂與工控機(jī)的通信。實(shí)驗(yàn)結(jié)果表明,在一定程度的實(shí)時(shí)性和穩(wěn)定性下,該控制系統(tǒng)能夠準(zhǔn)確跟蹤機(jī)器人的軌跡。
圖1 Demir 中機(jī)械臂控制系統(tǒng)
現(xiàn)在,ROS已經(jīng)隨著時(shí)間的推移成為了一個(gè)不可或缺的機(jī)器人開(kāi)發(fā)平臺(tái),各種各樣的機(jī)器人層出不窮,圖2是 PR 2 機(jī)器人在日常生活場(chǎng)景中的應(yīng)用,從中可以看出機(jī)器人已經(jīng)從實(shí)驗(yàn)室產(chǎn)品逐漸變?yōu)榱松畹膸褪?,能夠更好地服?wù)人類(lèi)活動(dòng)[6]。
圖2 PR2 機(jī)器人完成各項(xiàng)任務(wù)
太空機(jī)器人 R2(Robonaut2)[7]也使用 ROS 作為控制平臺(tái),它由 NASA 和通用汽車(chē)公司合作開(kāi)發(fā),目的就是為了在太空中代替人類(lèi)進(jìn)行空間作業(yè)。如圖3所示,目前,R2型機(jī)器人已經(jīng)在國(guó)際空間站進(jìn)行了許多年的試驗(yàn)研究,近年來(lái)將它的功能與生產(chǎn)實(shí)際相結(jié)合,與移動(dòng)平臺(tái)進(jìn)行整合,進(jìn)一步的拓展它在生產(chǎn)生活中的使用場(chǎng)景。針對(duì)于ROS 2的升級(jí)版本還在進(jìn)行開(kāi)發(fā),隨著ROS的版本發(fā)展,ROS 2的發(fā)展也就可以預(yù)見(jiàn)了,這也說(shuō)明了 ROS 系統(tǒng)的控制能力和功能拓展的前景值得肯定。
圖3 太空機(jī)器人R2
當(dāng)今技術(shù)比較完善的是瑞士蘇黎世的Neuronics公司的Katana 機(jī)械臂和德國(guó)宇航中心的 LWR Ⅲ輕便型機(jī)械臂。
瑞士 Neuronics 公司最新發(fā)布的機(jī)械臂 Katana 1.2[6]。這是一個(gè)常規(guī)的六自由度機(jī)械臂,但是它的主板功能強(qiáng)大,提供了充足的外設(shè)接口,這些外設(shè)接口可以讓開(kāi)發(fā)者們充分發(fā)揮才智,針對(duì)不同的環(huán)境集成到不同的環(huán)境中去,也是因?yàn)檫@個(gè)強(qiáng)大的主板,兩個(gè)或者多個(gè)機(jī)械臂之間可以協(xié)作完成任務(wù)。主板采用了高端的PowerPC處理器,該處理器包含USB,CAN Open,Ethernet,串口以及一些標(biāo)準(zhǔn)數(shù)字 I/O 接口。主板具有自主開(kāi)發(fā)的實(shí)時(shí)最優(yōu)的嵌入式 Linux 內(nèi)核,運(yùn)行ROS平臺(tái)毫無(wú)壓力,同時(shí)為了充分發(fā)揮它的功能,便于連接、可以進(jìn)行多方配置、標(biāo)準(zhǔn) API 可用性、斷網(wǎng)單機(jī)操作等方面都進(jìn)行了功能的添加。圖4展示了機(jī)械臂本體和基于ROS平臺(tái)的操作界面。
圖4 Katana 機(jī)械臂和抓持器
國(guó)內(nèi)ROS的研究者與研究機(jī)構(gòu)也越來(lái)越多。文獻(xiàn)[8]使用ROS平臺(tái)進(jìn)一步探索應(yīng)用場(chǎng)景,根據(jù)用戶(hù)需求,采用搭載了ROS的工控機(jī)將不同模塊的接口進(jìn)行統(tǒng)一化,解決了輪椅控制系統(tǒng)中的控制問(wèn)題,同時(shí)添加了語(yǔ)音導(dǎo)航,讓輪椅更加智能,更好地服務(wù)人類(lèi)。文獻(xiàn)[9]則又在另一個(gè)場(chǎng)景也進(jìn)行了積極的探索,將ROS平臺(tái)帶上了最近熱火的無(wú)人機(jī)研究中,如圖5所示,配置了位置GPS以及位姿慣性導(dǎo)航傳感器,無(wú)人機(jī)上安裝有小型的工控機(jī),自行編寫(xiě) ROS 節(jié)點(diǎn)進(jìn)行通訊以及控制,為了能夠在地面操控?zé)o人機(jī),專(zhuān)門(mén)設(shè)置了地面站系統(tǒng)。文獻(xiàn)[11]將應(yīng)用場(chǎng)景瞄準(zhǔn)了移動(dòng)機(jī)器人,采用ROS平臺(tái)與移動(dòng)機(jī)器人進(jìn)行結(jié)合,主要用途是采樣任務(wù),本體是五自由度機(jī)械臂,將各個(gè)模塊進(jìn)行整合設(shè)計(jì)出了一整套完整可靠的控制系統(tǒng),可以協(xié)調(diào)的實(shí)現(xiàn)采樣功能。文獻(xiàn)[12]在學(xué)位課題中應(yīng)用ROS對(duì)碼垛機(jī)器人的控制系統(tǒng)進(jìn)行研究,這個(gè)系統(tǒng)可以直觀(guān)的顯示在Gazebo中,能夠清晰的顯示仿真過(guò)程。
圖5 空中機(jī)器人平臺(tái)
同時(shí)文獻(xiàn)[13]基于ROS進(jìn)行打磨機(jī)器人控制系統(tǒng)的相關(guān)研究,通過(guò)實(shí)體機(jī)械臂進(jìn)行實(shí)驗(yàn),工控機(jī)上采用了Xenomai+Linux雙內(nèi)核實(shí)時(shí)系統(tǒng),將實(shí)體機(jī)械臂、工控機(jī)、打磨砂帶機(jī)進(jìn)行配合完成實(shí)驗(yàn),其中機(jī)械臂末端為打磨工件,這個(gè)打磨工件可以根據(jù)路徑規(guī)劃的情況實(shí)現(xiàn)零件的打磨形狀的控制;控制系統(tǒng)底層搭建了 EtherCAT 總線(xiàn)協(xié)議的主從站系統(tǒng),控制系統(tǒng)上層使用 ROS 控制器發(fā)布控制消息。
圖6 機(jī)械臂走曲線(xiàn)軌跡的仿真過(guò)程
圖7 實(shí)體機(jī)械臂曲線(xiàn)運(yùn)動(dòng)
在軟件層面,目前在國(guó)內(nèi)的各種資源網(wǎng)站上,已經(jīng)可以找到的是各個(gè)開(kāi)發(fā)者們基于機(jī)械臂進(jìn)行優(yōu)化所得到的各種軟件倉(cāng)庫(kù),比如多自由度機(jī)械臂所需要的正逆運(yùn)動(dòng)學(xué)解算器庫(kù)(KDL,kinematics and dynamics library),開(kāi)源路徑規(guī)劃算法庫(kù)(OMPL,the open motion planning library),以及將上述兩個(gè)打包組合在一起并集合了倒入模型,設(shè)置模型為一體的方便開(kāi)發(fā)者集中調(diào)用的MoveIt工具軟件,最后就是對(duì)機(jī)械臂進(jìn)行方針的Gazebo仿真軟件,其中MoveIt工具軟件的節(jié)點(diǎn)為ros_control,這樣可以更方便開(kāi)發(fā)者掌握基本的使用邏輯。在實(shí)際應(yīng)用中,典型的就是在UR5 機(jī)械臂[15]、aubo機(jī)械臂、國(guó)產(chǎn)自研機(jī)械臂、PR 2 等機(jī)器人平臺(tái)上進(jìn)行測(cè)試,基于ROS進(jìn)行多場(chǎng)景的實(shí)驗(yàn)與開(kāi)發(fā)。圖8就是五自由度移動(dòng)作業(yè)臂的開(kāi)發(fā)實(shí)例。
圖8 五自由度移動(dòng)作業(yè)臂
文獻(xiàn)[16]在移動(dòng)平臺(tái)樣機(jī)上搭建ROS,實(shí)現(xiàn)SLAM和導(dǎo)航功能,使用七自由度冗余機(jī)械臂與雙目立體視覺(jué)相機(jī)基于SURF算法檢測(cè)標(biāo)簽類(lèi)型和數(shù)據(jù),使用移動(dòng)機(jī)器人平臺(tái)進(jìn)行開(kāi)門(mén)實(shí)驗(yàn),并在Gazebo中進(jìn)行移動(dòng)機(jī)器人的仿真模型演示,成功完成了對(duì)旋轉(zhuǎn)門(mén)和側(cè)拉門(mén)的打開(kāi)。演示結(jié)果如圖9所示。
圖9 機(jī)器人開(kāi)門(mén)實(shí)驗(yàn)步驟
Linux是一個(gè)分時(shí)系統(tǒng),但是基于Linux進(jìn)行機(jī)械臂的實(shí)時(shí)控制系統(tǒng)研究就要首先考慮到實(shí)時(shí)性問(wèn)題,如何讓機(jī)械臂準(zhǔn)確,實(shí)時(shí)的對(duì)工控機(jī)進(jìn)行響應(yīng)就至關(guān)重要,為了解決這個(gè)問(wèn)題,許多實(shí)時(shí)操作平臺(tái)就產(chǎn)生了, Windows CE、RTLinux、RTAI、BlueCat、TimeSys Linux等,下面介紹一下其中兩種解決方案:
文獻(xiàn)[13]采用搭載打磨機(jī)械臂的EtherCAT總線(xiàn)主站、Xenomai+Linux雙內(nèi)核實(shí)時(shí)操作系統(tǒng)及ROS控制系統(tǒng)的工控機(jī)進(jìn)行上位機(jī)控制,EtherCAT總線(xiàn)是一種現(xiàn)場(chǎng)總線(xiàn)技術(shù),在工業(yè)中使用較多,具備高實(shí)時(shí)性,高同步性等優(yōu)點(diǎn),最快的傳輸速度可以達(dá)到100 Mbit/s,同步網(wǎng)段內(nèi)精度可以達(dá)到1 μs,同時(shí)采用CAN Open作為伺服控制協(xié)議,上位機(jī)基于Linux系統(tǒng)進(jìn)行設(shè)計(jì),使用ROS控制系統(tǒng)來(lái)執(zhí)行實(shí)時(shí)任務(wù),其構(gòu)建了使用Xenomai作為L(zhǎng)inux系統(tǒng)實(shí)時(shí)補(bǔ)丁的方法來(lái)解決。大致原理如圖10所示。
圖10 Xenomai實(shí)時(shí)系統(tǒng)框架
其設(shè)計(jì)的打磨機(jī)械臂控制系統(tǒng)的總體框架顯示如圖11所示。
圖11 控制系統(tǒng)總體框架
文獻(xiàn)[17]采用在Linux系統(tǒng)中加入RT補(bǔ)丁進(jìn)行實(shí)時(shí)性改造的方法來(lái)實(shí)現(xiàn)機(jī)械臂的實(shí)時(shí)系統(tǒng)搭建,其基本原理為使用RT補(bǔ)丁工具集將實(shí)時(shí)性任務(wù)設(shè)置為優(yōu)先性,經(jīng)過(guò)改造以后的實(shí)時(shí)系統(tǒng)進(jìn)行實(shí)驗(yàn),測(cè)試結(jié)果顯示系統(tǒng)的最大延遲時(shí)間為436 μs,平均延遲時(shí)間為193 μs,Linux系統(tǒng)實(shí)施改造可以達(dá)到要求。其實(shí)時(shí)系統(tǒng)的組成圖如圖12所示。
圖12 機(jī)械臂控制系統(tǒng)示意圖
第一種方式是對(duì)Linux系統(tǒng)內(nèi)核[23-26]進(jìn)行改造的方法進(jìn)行實(shí)時(shí)性任務(wù)的處理,第二種方式是對(duì)Linux系統(tǒng)進(jìn)行補(bǔ)丁[21-22,27-28]的方式進(jìn)行系統(tǒng)的實(shí)時(shí)性任務(wù)處理,都是為了解決Linux系統(tǒng)是典型分時(shí)系統(tǒng)的實(shí)時(shí)性解決方案,由于現(xiàn)在ROS平臺(tái)的應(yīng)用越來(lái)越多,相應(yīng)更多的實(shí)時(shí)性解決方案涌現(xiàn),2020年ROS 2版本發(fā)布,這一版本本身具有更加優(yōu)秀的實(shí)時(shí)性體驗(yàn),期待著更多的軟件開(kāi)發(fā)者投身入開(kāi)發(fā)行列,不斷豐富ROS的實(shí)時(shí)性功能。
2.2.1 機(jī)械臂移動(dòng)操作
現(xiàn)在基于ROS系統(tǒng)的實(shí)時(shí)控制系統(tǒng)搭建過(guò)程中,普遍使用強(qiáng)大的集成運(yùn)動(dòng)功能包:即MoveIt,例如文獻(xiàn)[18]針對(duì)傳統(tǒng)機(jī)械臂系統(tǒng)設(shè)計(jì)工作量大,可移植性差的缺點(diǎn),以自制SCARA型機(jī)械臂開(kāi)發(fā)出機(jī)械臂控制系統(tǒng),它使用MoveIt平臺(tái)將機(jī)械臂SolidWorks三維機(jī)械模型轉(zhuǎn)換成機(jī)器人描述格式URDF文件(unified robot description format),以編程語(yǔ)言的形式抽象的將機(jī)器人各個(gè)關(guān)節(jié)數(shù)據(jù)和大小、運(yùn)動(dòng)模型、動(dòng)力模型、碰撞模型等進(jìn)行描述。
接著通過(guò)C++進(jìn)行具體的項(xiàng)目點(diǎn)的規(guī)劃,或者給定起始點(diǎn)和終止點(diǎn),ROS就會(huì)基于隨機(jī)采樣的運(yùn)動(dòng)規(guī)劃算法庫(kù)OMPL完成軌跡規(guī)劃等任務(wù),同時(shí)由于建模的文件格式中采用了碰撞模型,所以規(guī)劃的軌跡會(huì)避開(kāi)障礙物和自身干涉等碰撞狀態(tài)。其基本交互邏輯如圖13所示。
圖13 MoveIt基本交互邏輯演示圖
MoveIt是一個(gè)機(jī)器人移動(dòng)操作相關(guān)的工具集軟件,集成了各種SOTA庫(kù),包括:運(yùn)動(dòng)規(guī)劃、軌跡插值、機(jī)械臂操作、3D感知、運(yùn)動(dòng)學(xué)、碰撞檢測(cè)、控制、導(dǎo)航、交互等功能包,其核心節(jié)點(diǎn)為move_group,集成了各種組件,用于提供各種ROS動(dòng)作和服務(wù)供用戶(hù)使用。
MoveIt是現(xiàn)在實(shí)現(xiàn)機(jī)械臂正逆運(yùn)動(dòng)學(xué)的有力工具之一,現(xiàn)在的開(kāi)發(fā)者都在積極的使用此工具平臺(tái)進(jìn)行機(jī)械臂的控制系統(tǒng)開(kāi)發(fā)工作,向上面提到的將已經(jīng)有的CAD三維模型文件進(jìn)行轉(zhuǎn)化,轉(zhuǎn)化成為URDF格式的文件,導(dǎo)入到MoveIt Setup Assistant中進(jìn)行模型的匹配,此工具可以標(biāo)定機(jī)械臂關(guān)節(jié)數(shù)、關(guān)節(jié)鏈接情況、關(guān)節(jié)大小、配合、運(yùn)動(dòng)約束、碰撞情況、限位等參數(shù)情況;完善運(yùn)動(dòng)學(xué)模型,依托于ROS平臺(tái)進(jìn)行與其他模塊的通訊,服務(wù)于項(xiàng)目開(kāi)發(fā)。
2.2.2 運(yùn)動(dòng)規(guī)劃算法
在MoveIt中通過(guò)插件機(jī)制與運(yùn)動(dòng)規(guī)劃器插件進(jìn)行交互,可以使用多個(gè)庫(kù)的不同運(yùn)動(dòng)規(guī)劃器,使得其擴(kuò)展性更強(qiáng),其中默認(rèn)使用的運(yùn)動(dòng)規(guī)劃器是OMPL(open motion planning library)庫(kù)。它是一個(gè)基于采樣方法的開(kāi)源機(jī)器人運(yùn)動(dòng)規(guī)劃庫(kù)(基于C++),其中的算法大多是基于RRT和RPM衍生出來(lái)的,比如RRTStar、RRT-Connect等等。正是由于OMPL其模塊化的設(shè)計(jì),前端GUI的支持、穩(wěn)定的更新,已經(jīng)成為目前最主流的運(yùn)動(dòng)規(guī)劃軟件(ROS默認(rèn)使用OMPL)。
文獻(xiàn)[15]基于ROS進(jìn)行移動(dòng)操作機(jī)械臂的底層規(guī)劃以及運(yùn)動(dòng)仿真介紹了兩種基于隨機(jī)采樣的路徑規(guī)劃算法:概率路標(biāo)法PRM和快速擴(kuò)展隨機(jī)樹(shù)法RRT;正是由于RRT算法在高維空間路徑搜索方面具有更強(qiáng)的適應(yīng)能力,所以其采用了FCL碰撞檢測(cè)庫(kù)作為RRT算法碰撞檢測(cè)的工具,對(duì)路徑進(jìn)行優(yōu)化,用以提高這個(gè)算法的搜索效率,下面是其應(yīng)用OMPL運(yùn)動(dòng)規(guī)劃算法所進(jìn)行的動(dòng)態(tài)障礙物軌跡規(guī)劃仿真圖,從圖14中可以看出使用OMPL運(yùn)動(dòng)規(guī)劃算法庫(kù)在機(jī)械臂進(jìn)行軌跡規(guī)劃中可以極大的簡(jiǎn)化規(guī)劃過(guò)程,更高效的解決實(shí)際應(yīng)用問(wèn)題。同時(shí)由于可以應(yīng)用C++外接程序進(jìn)行具體任務(wù)的設(shè)置,所以極大的提高了項(xiàng)目靈活度和可實(shí)施性。
圖14 臂動(dòng)態(tài)避障仿真實(shí)驗(yàn)?zāi)┒诉\(yùn)動(dòng)軌跡
文獻(xiàn)[19]進(jìn)行了基于Linux的SCARA型機(jī)械臂運(yùn)動(dòng)控制系統(tǒng)的研究,在他的研究中使用OMPL運(yùn)動(dòng)規(guī)劃庫(kù)進(jìn)行點(diǎn)到點(diǎn)的軌跡規(guī)劃,通過(guò)刀具補(bǔ)償算法進(jìn)行軌跡點(diǎn)的設(shè)計(jì),把刀具補(bǔ)償算法規(guī)劃出來(lái)的點(diǎn)下發(fā)給ROS,然后根據(jù)運(yùn)動(dòng)規(guī)劃庫(kù)進(jìn)行行進(jìn)。軌跡點(diǎn)如圖15所示。
圖15 SCARA型機(jī)械臂運(yùn)動(dòng)的實(shí)現(xiàn)
同時(shí)在各個(gè)平臺(tái)上都有研究機(jī)械臂運(yùn)動(dòng)規(guī)劃算法的人,比如文獻(xiàn)[20]通過(guò)對(duì)工業(yè)六自由度機(jī)械臂的軌跡規(guī)劃研究,著重介紹了NURBS用于關(guān)節(jié)空間的軌跡規(guī)劃,并將NURBS與改進(jìn)遺傳算法相結(jié)合得到一條可以減弱運(yùn)動(dòng)中沖擊的軌跡點(diǎn),文獻(xiàn)中分析了三次樣條插值、五次樣條插值等各種軌跡規(guī)劃算法的核心技術(shù)點(diǎn),更能方便理解和掌握OMPL運(yùn)動(dòng)規(guī)劃庫(kù)中算法的原理與優(yōu)勢(shì)。
2.2.3 機(jī)械臂仿真演示
Gazebo是Linux系統(tǒng)下的一款機(jī)器人仿真器,能夠在復(fù)雜的室內(nèi)和室外環(huán)境中有效的模擬單個(gè)機(jī)器人或者機(jī)器人群以及一些場(chǎng)景設(shè)置,它提供高保真度的物理模擬和一整套的傳感器模型,并且是和ROS平臺(tái)一起使用的,更方便的讓我們能夠通過(guò)ROS平臺(tái)進(jìn)行開(kāi)發(fā)演示仿真分析,比如文獻(xiàn)[15]的移動(dòng)機(jī)械臂底層規(guī)劃、文獻(xiàn)[13]的打磨機(jī)器人控制系統(tǒng)、文獻(xiàn)[19]的基于Linux的SCARA型機(jī)械臂運(yùn)動(dòng)控制系統(tǒng)、文獻(xiàn)[18]的機(jī)械臂控制系統(tǒng)設(shè)計(jì)都采用了Gazebo進(jìn)行模型的仿真演示,從不斷的調(diào)整中修改參數(shù)和模型算法,在仿真器中不斷的模擬,成功后進(jìn)行實(shí)體的驗(yàn)證步驟。圖16展示了文獻(xiàn)[18]Gazebo仿真演示圖。
圖16 Gazebo中機(jī)械臂軌跡規(guī)劃展示
2.2.4 人機(jī)交互控制界面
Rviz是一款三維可視化平臺(tái),一方面能夠?qū)崿F(xiàn)對(duì)外部信息的圖形化顯示,另一方面則是可以通過(guò)Rviz給對(duì)象發(fā)布控制信息,從而實(shí)現(xiàn)對(duì)機(jī)器人的檢測(cè)與控制。
Rviz主要的目的就是以三維方式顯示ROS消息,可以將數(shù)據(jù)進(jìn)行可視化表達(dá),例如在文獻(xiàn)中會(huì)有機(jī)器人模型和坐標(biāo)系直觀(guān)的顯示在Rviz中,如圖17所示。
圖17 機(jī)器人模型和坐標(biāo)系在Rviz中顯示
同時(shí)可以進(jìn)行編程顯示出界面進(jìn)行各個(gè)數(shù)據(jù)的信息采集和分析:比如文獻(xiàn)中出現(xiàn)的采用GUI界面進(jìn)行數(shù)據(jù)流的界面查看如圖18所示。
圖18 GUI控制界面和數(shù)據(jù)流查看界面
還有許多用來(lái)初步顯示實(shí)驗(yàn)中各個(gè)關(guān)節(jié)的力矩、位置等參數(shù)的控制界面可以在Rviz中實(shí)施監(jiān)控,這樣可以在項(xiàng)目和實(shí)驗(yàn)中更有說(shuō)服力,同時(shí)一旦出現(xiàn)了問(wèn)題,也更容易找到問(wèn)題所在。
目前國(guó)內(nèi)國(guó)外基于ROS進(jìn)行開(kāi)發(fā)的機(jī)器人機(jī)械臂實(shí)時(shí)控制系統(tǒng)正在如火如荼地向前發(fā)展,而且基于ROS進(jìn)行相關(guān)項(xiàng)目開(kāi)發(fā)也顯現(xiàn)出了極大的優(yōu)勢(shì),為了充分發(fā)揮當(dāng)前計(jì)算機(jī)和傳感器等硬件的優(yōu)勢(shì),使用ROS開(kāi)發(fā)機(jī)械臂實(shí)時(shí)控制系統(tǒng)會(huì)越來(lái)越多。從國(guó)內(nèi)外發(fā)展來(lái)看,國(guó)外發(fā)展迅速,國(guó)內(nèi)正迎頭趕上,正是由于這種積極的開(kāi)發(fā)氛圍,貢獻(xiàn)了多種實(shí)時(shí)系統(tǒng)的解決方案,極大地促進(jìn)了控制系統(tǒng)的研究。盡管?chē)?guó)內(nèi)外專(zhuān)家取得了很大的進(jìn)步,但是仍然存在以下幾點(diǎn)問(wèn)題:
1)機(jī)械臂控制系統(tǒng)的實(shí)時(shí)性不足:
經(jīng)過(guò)調(diào)研,已有的研究中大多集中在通過(guò)離線(xiàn)或者可控智能穿戴設(shè)備[29-38]的方式控制機(jī)械臂的運(yùn)動(dòng),需要具備更好響應(yīng)能力的硬件或者是修改ROS版本的底層架構(gòu)來(lái)解決這個(gè)實(shí)時(shí)性不足的問(wèn)題;
2)機(jī)械臂運(yùn)動(dòng)精度不足:
實(shí)時(shí)控制機(jī)械臂工作過(guò)程中,由于一些內(nèi)部傳感器等問(wèn)題還是會(huì)造成震動(dòng)、誤差等的問(wèn)題,如何保證高精度的柔順系統(tǒng)進(jìn)行實(shí)時(shí)控制還是當(dāng)前的主要技術(shù)要點(diǎn)之一;
3)ROS控制系統(tǒng)更新迭代過(guò)快,后續(xù)維護(hù)不足:
針對(duì)不同版本的ROS平臺(tái)進(jìn)行機(jī)械臂實(shí)時(shí)控制系統(tǒng)的開(kāi)發(fā)是亟待解決的問(wèn)題,不同版本上位機(jī)的控制系統(tǒng)在設(shè)計(jì)過(guò)程中結(jié)合下位機(jī)無(wú)法完整的形成一個(gè)有效的實(shí)時(shí)控制器。隨著最新的ROS neodic版本的發(fā)布,ROS 2的實(shí)時(shí)性任務(wù)處理功能更強(qiáng),需要更多人員和資源跟進(jìn);
4)Linux控制系統(tǒng)個(gè)性化明顯,規(guī)范性不足:
機(jī)械臂運(yùn)動(dòng)學(xué)規(guī)劃、末端軌跡規(guī)劃以及避障算法等是研究中亟待解決的問(wèn)題,所以我們需要使用Linux下的Gazebo、MoveIt、RViz等工具進(jìn)行正逆運(yùn)動(dòng)學(xué)規(guī)劃與仿真模型的問(wèn)題解決,需要更加注重標(biāo)準(zhǔn)化;
5)缺乏創(chuàng)新意識(shí),拓展性不足:
隨著傳感器種類(lèi)越來(lái)越豐富,對(duì)于機(jī)械臂的控制要求越來(lái)越高,我們不可避免的就是針對(duì)于傳感器的優(yōu)化問(wèn)題,不能固步自封,要不斷的結(jié)合新型傳感器發(fā)覺(jué)市場(chǎng)和學(xué)術(shù)研究方向,不斷探索;同時(shí)也要設(shè)法將ROS的控制系統(tǒng)結(jié)合到更加具有前景的行業(yè)中。
基于ROS機(jī)械臂實(shí)時(shí)控制系統(tǒng)的發(fā)展方向應(yīng)符合工業(yè)自動(dòng)化、智能化需求,基于其自身技術(shù)與市場(chǎng)要求,結(jié)合國(guó)內(nèi)外研究現(xiàn)狀及重點(diǎn)技術(shù)的研究情況,可以將ROS下機(jī)械臂實(shí)時(shí)控制系統(tǒng)發(fā)展趨勢(shì)概括如下。
1)工業(yè)自動(dòng)化和智能化:
隨著我國(guó)工業(yè)設(shè)備越來(lái)越偏向于高精尖方向發(fā)展,對(duì)于工業(yè)設(shè)備的自動(dòng)化和智能化需求就會(huì)越來(lái)越強(qiáng)烈,依托 ROS平臺(tái)的機(jī)械臂控制系統(tǒng)在現(xiàn)有的基礎(chǔ)上可以在工業(yè)設(shè)備更新迭代過(guò)程中提供更加優(yōu)秀的機(jī)器人解決方案,極大地提高實(shí)際工業(yè)生產(chǎn)的效率。
2)功能復(fù)合化,標(biāo)準(zhǔn)化:
正是由于ROS系統(tǒng)本身的優(yōu)勢(shì),所以可以結(jié)合各種傳感系統(tǒng),針對(duì)每一種傳感系統(tǒng)采用不同的程序算法提取數(shù)據(jù),運(yùn)用數(shù)據(jù)實(shí)現(xiàn)機(jī)械臂的實(shí)時(shí)性控制,隨著新型傳感器的發(fā)展,ROS也會(huì)與時(shí)俱進(jìn),不斷的通過(guò)新型傳感系統(tǒng)豐富自身,在不斷積累與實(shí)際使用中拓展發(fā)展空間,提高實(shí)時(shí)性和精度,同時(shí)針對(duì)已經(jīng)研究透徹的功能包,勢(shì)必會(huì)選擇眾多解決方案中的最優(yōu)解,形成標(biāo)準(zhǔn)化的軟件功能包。
3)強(qiáng)適應(yīng)性,支持復(fù)雜工況場(chǎng)景:
機(jī)械臂的終端具有多樣性,基于ROS的機(jī)械臂控制系統(tǒng)具有避障、路徑規(guī)劃等功能,針對(duì)復(fù)雜的工況可以根據(jù)產(chǎn)線(xiàn)要求采用不同的終端來(lái)實(shí)現(xiàn)機(jī)械臂的可移植性,可以應(yīng)用到援救、醫(yī)療等行業(yè),適應(yīng)更加豐富的工作場(chǎng)景,有利于設(shè)備的充分利用以及降低成本。
4)軟硬件結(jié)合,齊頭并進(jìn):
目前機(jī)械臂受限于成本,使用場(chǎng)景等原因,多采用位置控制器,隨著力位一體式機(jī)械臂的發(fā)展,為了提高穩(wěn)定性和精度,必然開(kāi)發(fā)硬件的更多功能,高效的完成以后的工業(yè)任務(wù),讓機(jī)械臂更加像人手一樣工作。
5)技術(shù)交叉融合:
現(xiàn)代工業(yè)的發(fā)展離不開(kāi)人工智能、物聯(lián)網(wǎng)、大數(shù)據(jù)和云計(jì)算等技術(shù)的支持,基于ROS的機(jī)械臂控制系統(tǒng)可以借助高新技術(shù)充實(shí)自己,打破傳統(tǒng)行業(yè)的限制,探索更多的可能性,更好的服務(wù)人類(lèi)。
綜上所述,機(jī)械臂的實(shí)時(shí)控制系統(tǒng)主要涉及到的發(fā)展方向就是控制器的開(kāi)發(fā)優(yōu)化以及應(yīng)用已有控制器進(jìn)行軌跡優(yōu)化算法與應(yīng)急避障處理。前者需要進(jìn)行控制器的整體構(gòu)建以及開(kāi)發(fā),而后者是基于已有控制器進(jìn)行設(shè)計(jì)規(guī)劃,使用外接傳感器進(jìn)行信號(hào)的采集,針對(duì)收集到的信號(hào)進(jìn)行反饋,針對(duì)反饋進(jìn)行調(diào)整,這樣實(shí)現(xiàn)最終的設(shè)計(jì)目標(biāo),滿(mǎn)足設(shè)計(jì)要求。
基于ROS進(jìn)行機(jī)械臂的實(shí)時(shí)控制系統(tǒng)研究是更加方便開(kāi)發(fā)者進(jìn)行機(jī)械臂控制的新方式新方法,依托于ROS所獨(dú)有的節(jié)點(diǎn)編程原理,簡(jiǎn)化了以后進(jìn)行多個(gè)傳感器的信息的融合等工作,便于機(jī)械臂進(jìn)行精準(zhǔn)、快速的操作,同時(shí)由于系統(tǒng)的開(kāi)源,可以借鑒廣大系統(tǒng)維護(hù)者以及項(xiàng)目開(kāi)發(fā)者的經(jīng)驗(yàn),將機(jī)械臂用于更加人性化、個(gè)性化的應(yīng)用場(chǎng)景。作為一個(gè)ROS的學(xué)習(xí)者和使用者,就要在實(shí)踐研究中不斷的豐富這個(gè)平臺(tái),讓它更好的為工作生活服務(wù)。