• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于ROS的機(jī)器人宇航員模型構(gòu)建與仿真驗(yàn)證

      2018-03-30 09:00:12,,,
      機(jī)械與電子 2018年3期
      關(guān)鍵詞:雙臂宇航員連桿

      ,,,

      (哈爾濱工業(yè)大學(xué)機(jī)器人技術(shù)與系統(tǒng)國家重點(diǎn)實(shí)驗(yàn)室,黑龍江 哈爾濱 150080)

      0 引言

      隨著國內(nèi)外空間站項(xiàng)目的穩(wěn)步推進(jìn)和機(jī)器人技術(shù)的發(fā)展,研發(fā)可以協(xié)助甚至代替宇航員進(jìn)行危險(xiǎn)艙外操作的機(jī)器人宇航員成為亟待研究的課題。加拿大航天局(CSA)的國際空間站艙外雙臂機(jī)器人Dextre[1],通常固定在“加拿大臂”末端或在指定軌道上移動,能夠協(xié)助宇航員完成艙外任務(wù)甚至代替其執(zhí)行一些危險(xiǎn)任務(wù)。美國航空航天局(NASA)的艙內(nèi)雙臂機(jī)器人Robonaut2[2]作為國際空間站乘員,初期任務(wù)的主要目標(biāo)是驗(yàn)證雙臂機(jī)器人在太空零重力、高輻射環(huán)境中的適應(yīng)性,后期將協(xié)助人類宇航員,甚至和人類宇航員共同進(jìn)行艙外活動等復(fù)雜任務(wù)。ROS開源機(jī)器人操作系統(tǒng)平臺[3],具有易于實(shí)現(xiàn)復(fù)雜系統(tǒng)的模塊化設(shè)計(jì)和豐富的機(jī)器人軟件系統(tǒng)開發(fā)工具等優(yōu)點(diǎn),很大程度上解決了代碼復(fù)用和軟件模塊化的問題。在此,結(jié)合機(jī)器人宇航員預(yù)研項(xiàng)目,使用ROS對機(jī)器人宇航員模型進(jìn)行搭建,闡述在ROS環(huán)境下機(jī)器人宇航員模型構(gòu)建的方法[4],包括機(jī)器人描述格式文件的構(gòu)建、三維零件導(dǎo)入和節(jié)點(diǎn)動態(tài)鏈接等。

      1 宇航員機(jī)器人總體結(jié)構(gòu)設(shè)計(jì)

      雙臂仿人機(jī)器人宇航員由以下幾部分組成:頭部、軀干、左右手臂、左右靈巧手和可移動輪式平臺。典型機(jī)器人宇航員系統(tǒng)整體結(jié)構(gòu)如圖1所示。該系統(tǒng)整體是由大量集成的軟硬件組成的分布式系統(tǒng),通過傳感器、控制器與執(zhí)行器共同協(xié)作完成任務(wù)。在控制系統(tǒng)的原理樣機(jī)開發(fā)階段,它能夠極大簡化不同部分的硬件集成,簡化仿真實(shí)驗(yàn)。

      圖1 典型機(jī)器人宇航員系統(tǒng)

      機(jī)器人宇航員結(jié)構(gòu)具備49個自由度[5],其中包括2個7自由度機(jī)械臂,2個15自由度的HIT/DLR Hand Ⅱ靈巧手[6],具有俯仰和回轉(zhuǎn)2自由度的腰部[7]和3自由度的頭部[8]。機(jī)器人宇航員的手臂與腰部的D-H參數(shù)如表1和表2所示。其中,ai-1和αi-1分別為連桿i-1的長度和扭角;di和θi分別為連桿i之間的偏置和夾角。

      表1 右臂D-H參數(shù)

      表2 腰部D-H參數(shù)

      機(jī)器人宇航員的結(jié)構(gòu)設(shè)計(jì)緊湊,外觀尺寸接近人體比例。眼部固定2臺相機(jī)作為其雙目視覺感知設(shè)備。機(jī)器人宇航員頭部具備3個自由度,分別可以進(jìn)行回轉(zhuǎn)、俯仰和側(cè)擺3類運(yùn)動,同時(shí)頸部具備可旋轉(zhuǎn)關(guān)節(jié)進(jìn)行回轉(zhuǎn)運(yùn)動。

      機(jī)器人宇航員軀干作為其主體,連接著頭部與兩側(cè)的七自由度機(jī)械臂。軀干下方固定在輪式移動平臺上。軀干具備關(guān)節(jié)結(jié)構(gòu),可以使軀干完成回轉(zhuǎn)與俯仰運(yùn)動,且具備更大的輸出力矩與關(guān)節(jié)運(yùn)動范圍。

      機(jī)器人宇航員雙臂結(jié)構(gòu)采用七自由度冗余機(jī)械臂,左右臂末端分別連接左右靈巧手。宇航員機(jī)器人機(jī)械臂的各個關(guān)節(jié)間具有近似的結(jié)構(gòu),簡化了系統(tǒng)設(shè)計(jì)。

      2 機(jī)器人宇航員模型建立

      ROS是基于Linux的開源的機(jī)器人軟件系統(tǒng)開發(fā)框架,其特點(diǎn)是基于進(jìn)程間通信機(jī)制把機(jī)器人系統(tǒng)中的各個模塊,如關(guān)節(jié)控制、運(yùn)動規(guī)劃和碰撞檢測等,分割為若干獨(dú)立運(yùn)行的程序,從而降低了模塊之間的依賴,實(shí)現(xiàn)了軟件設(shè)計(jì)的高內(nèi)聚和低耦合,降低了不同系統(tǒng)之間共享代碼的難度,提高了代碼的復(fù)用率。在此基礎(chǔ)上,ROS提供了各種系統(tǒng)中間件以簡化機(jī)器人軟件系統(tǒng)的開發(fā),如機(jī)器人描述語言URDF,機(jī)器人關(guān)節(jié)控制架構(gòu)ROS Control,機(jī)器人的運(yùn)動規(guī)劃框架MoveIt!等。

      ROS建立在Linux操作系統(tǒng)之上,分布式的處理方式分散了來自各個功能實(shí)時(shí)計(jì)算的壓力,實(shí)現(xiàn)了模塊之間的松耦合。節(jié)點(diǎn)之間可以采用message,service,action等的不同的通訊模型進(jìn)行數(shù)據(jù)交互。同時(shí),ROS支持多種編程語言機(jī)器接口實(shí)現(xiàn),包括C++,Python,Lisp等。在機(jī)器人軟件系統(tǒng)中可以使用C/C++進(jìn)行底層開發(fā),如驅(qū)動程序、控制算法等,而基于Python,Lisp等腳本語言完成任務(wù)規(guī)劃、用戶界面等上層模塊,從而簡化系統(tǒng)開發(fā),增加系統(tǒng)的魯棒性和可維護(hù)性。

      在機(jī)器人操作系統(tǒng)中,使用機(jī)器人統(tǒng)一描述格式(URDF)來描述機(jī)器人的關(guān)節(jié)配置、關(guān)節(jié)限位和外觀信息等。URDF是基于XML[9]的一種描述式建模語言,具有便于理解、便于維護(hù)和修改的特點(diǎn)。

      在ROS機(jī)器人統(tǒng)一描述格式描述中,機(jī)器人宇航員樹形結(jié)構(gòu)模型由本體、關(guān)節(jié)和節(jié)點(diǎn)等共同組成。機(jī)器人宇航員本體由基座、腰部、軀干3部分構(gòu)成。左右手臂分別由7個關(guān)節(jié)連桿與1只靈巧手構(gòu)成,本體與頭部、手臂通過節(jié)點(diǎn)關(guān)聯(lián)形成機(jī)器人整體架構(gòu)。

      建立機(jī)器人宇航員的機(jī)器人模型需要構(gòu)建不含結(jié)構(gòu)大小與尺寸信息的URDF樹形結(jié)構(gòu),并導(dǎo)入三維零件模型。完成URDF基本指令的編寫后,需要對完成的文件進(jìn)行校驗(yàn),確保文件準(zhǔn)確性。

      表3 URDF基本命令

      機(jī)器人宇航員的基座、軀干、頭部以及各個關(guān)節(jié)等三維模型在Pro/E中建立。使用字段中的字段及絕對路徑解析三維部件模型,導(dǎo)入機(jī)器人宇航員統(tǒng)一描述格式中。劃分后的機(jī)器人宇航員三維部件如圖2所示。

      圖2 機(jī)器人宇航員三維部件

      在基本的樹形結(jié)構(gòu)狀態(tài)下,使用字段將link相對joint的相對偏移量和旋轉(zhuǎn)量標(biāo)識出來。其中,x,y,z表示joint相對于link的偏移量,r,p,y表示其旋轉(zhuǎn)角度。定義origin參數(shù)使其整體結(jié)構(gòu)各個部件間相對位置準(zhǔn)確。使用字段為joint添加旋轉(zhuǎn)信息,分別對x,y,z進(jìn)行賦值,“0”表示固定軸,“1”表示旋轉(zhuǎn)軸。確定axis參數(shù)使結(jié)構(gòu)可以正確運(yùn)動轉(zhuǎn)動。

      以左臂關(guān)節(jié)連桿left arm link 5與left arm link 6為例進(jìn)行建模,所得left arm joint 6關(guān)節(jié)連桿結(jié)構(gòu)相對關(guān)系如圖3所示。其他關(guān)節(jié)連桿關(guān)系的建立相類似,搭建雙臂仿人宇航員機(jī)器人的模型,后利用計(jì)算機(jī)在ROS環(huán)境中對機(jī)器人模型進(jìn)行運(yùn)動仿真。

      圖3 關(guān)節(jié)連桿結(jié)構(gòu)相對關(guān)系

      3 運(yùn)動學(xué)仿真

      3.1 ROS通信模型

      消息文件(message)是用于描述ROS消息域的文本文檔,該文件用于生成以不同編程語言編寫的源代碼。msg文件存儲在一個功能包下的msg目錄下。消息文件每1行給出1個域類型和值域。其提供統(tǒng)一的串行化/解串行化方法,通過自定義消息文件生成代碼減輕復(fù)雜工作量。如本實(shí)驗(yàn)中節(jié)點(diǎn)joint_state_publisher所發(fā)布的話題joint_states的消息類型為sensor_msgs。

      服務(wù)文件(services)是用于描述服務(wù)的文件,由請求和響應(yīng)2部分組成,是另一種節(jié)點(diǎn)間相互通信的方法。服務(wù)文件儲存在一個功能包下的srv目錄下,用于處理ROS通訊中的同步通訊,采用server/client語義。每個service type擁有request與response 2部分,對于service中的server,ROS不會檢查重名,只有最后注冊的server會生效,與client建立連接。本文實(shí)驗(yàn)中joint_state_publisher與rviz等節(jié)點(diǎn)均具有g(shù)et_longgers與set_longer_level的服務(wù)通訊類型。

      action是ROS中一個很重要的功能包集合,可以解決在請求-響應(yīng)式的使用場景中,srevice機(jī)制在請求執(zhí)行期間用戶無法查看執(zhí)行的進(jìn)度或者取消請求的問題。ctionlib使用client-server工作模式,ActionClient 和ActionServer通過“ROS Action Protocol”進(jìn)行通信,“ROS Action Protocol”以ROS消息方式進(jìn)行傳輸。ActionClient 和ActionServer給用戶提供了接口,用戶使用這些接口可以完成goal請求(client)和goal執(zhí)行(server)。在運(yùn)動規(guī)劃框架MoveIt!中常用此種通信方式,運(yùn)動規(guī)劃框架MoveIt!的規(guī)劃結(jié)果以一個action的形式發(fā)布。

      3.2 關(guān)節(jié)連桿與動態(tài)節(jié)點(diǎn)

      根據(jù)已知的機(jī)器人宇航員架構(gòu)URDF文件,分析各個模塊的數(shù)據(jù)與消息傳遞機(jī)制,可建立宇航員機(jī)器人關(guān)節(jié)連桿關(guān)系樹形結(jié)構(gòu)。在完成了機(jī)器人宇航員整體URDF模型構(gòu)建后,使用ROS包中的可視化工具可以使建立的URDF結(jié)構(gòu)圖像化顯示。URDF可視化樹形結(jié)構(gòu)圖能夠顯示關(guān)節(jié)之間位置角度的相對關(guān)系,以及整體與部分、父關(guān)節(jié)與子關(guān)節(jié)的明確關(guān)系。

      建立機(jī)器人宇航員內(nèi)部節(jié)點(diǎn)動態(tài)鏈接。ROS定義了基于主題的點(diǎn)對點(diǎn)消息傳遞機(jī)制,具體實(shí)現(xiàn)在儲存節(jié)點(diǎn)、主題、服務(wù)的注冊信息的節(jié)點(diǎn)管理器中。節(jié)點(diǎn)在與節(jié)點(diǎn)管理器通信時(shí),可獲取關(guān)于其他已注冊節(jié)點(diǎn)的信息并且建立與其他節(jié)點(diǎn)的聯(lián)系。當(dāng)節(jié)點(diǎn)訂閱主題時(shí)會建立一個與發(fā)布該主題節(jié)點(diǎn)的鏈接,并在協(xié)議的基礎(chǔ)上建立連接。機(jī)器人宇航員仿真節(jié)點(diǎn)如圖4所示。圖4中橢圓代表各個功能節(jié)點(diǎn),矩形框代表傳遞的消息數(shù)據(jù),箭頭代表消息數(shù)據(jù)的傳遞方向。

      圖4 仿真節(jié)點(diǎn)框圖

      在通訊過程中,ROS創(chuàng)建的網(wǎng)絡(luò)連接所有進(jìn)程。其中,所有節(jié)點(diǎn)均可通過創(chuàng)建的網(wǎng)絡(luò)與其余各個節(jié)點(diǎn)交互,獲取其發(fā)布信息或?qū)⒆陨頂?shù)據(jù)發(fā)布至網(wǎng)絡(luò)上。節(jié)點(diǎn)之間通過消息完成溝通交流,消息中包含了節(jié)點(diǎn)發(fā)布的數(shù)據(jù)信息。主題相當(dāng)于對消息進(jìn)行管理的數(shù)據(jù)總線,消息信息會發(fā)布到相應(yīng)的主題。節(jié)點(diǎn)通過的訂閱主題的方式接收來自其他節(jié)點(diǎn)的消息。

      3.3 運(yùn)動仿真驗(yàn)證

      將完成的URDF文件絕對路徑打開,啟動三維可視化工具Rviz,完成機(jī)器人宇航員模型的導(dǎo)入。在機(jī)器人操作系統(tǒng)中Rviz環(huán)境下對機(jī)器人宇航員三維模型進(jìn)行運(yùn)動仿真,通過控制關(guān)節(jié)節(jié)點(diǎn)可實(shí)現(xiàn)對機(jī)器人宇航員的運(yùn)動控制。其模擬運(yùn)動過程如圖5所示,其中使用多個運(yùn)動時(shí)間節(jié)點(diǎn)代表模擬運(yùn)動的全過程,表示機(jī)器人宇航員運(yùn)動可達(dá)預(yù)設(shè)工作環(huán)境的所有目標(biāo)位置。

      圖5 機(jī)器人宇航員模擬運(yùn)動

      為使機(jī)器人宇航員模型完成工作空間中目標(biāo)物體的抓取實(shí)驗(yàn),需要將機(jī)器人可移動的關(guān)節(jié)角定義關(guān)節(jié)運(yùn)動類型,使各個關(guān)節(jié)根據(jù)目標(biāo)位置信息運(yùn)動到合適的關(guān)節(jié)角來確定末位置姿態(tài)。字段表示關(guān)節(jié)可旋轉(zhuǎn),表示關(guān)節(jié)固定不可旋轉(zhuǎn)。在關(guān)節(jié)角狀態(tài)發(fā)布器窗口中,可控制并監(jiān)測各個關(guān)節(jié)角的運(yùn)動位姿狀態(tài)。通過末端位置,調(diào)整發(fā)布器中關(guān)節(jié)角旋轉(zhuǎn)角度可使宇航員機(jī)器人到達(dá)抓取位置,完成對目標(biāo)物體的抓取任務(wù)。對工作臺上目標(biāo)杯子的抓取模擬實(shí)驗(yàn)如圖6所示。

      圖6 工作臺上杯子的抓取模擬實(shí)驗(yàn)

      4 結(jié)束語

      提出了一種在ROS環(huán)境中建立雙臂仿人機(jī)器人宇航員三維可視化模型與機(jī)器人模擬運(yùn)動仿真的方法,使用開源次級操作系統(tǒng)ROS的統(tǒng)一機(jī)器人描述格式URDF,對雙臂仿人宇航員機(jī)器人進(jìn)行模型建立。通過對宇航員機(jī)器人各個關(guān)節(jié)與整體進(jìn)行模擬運(yùn)動仿真,驗(yàn)證該模型的合理性,同時(shí)完成了雙臂宇航員機(jī)器人對工作空間內(nèi)目標(biāo)物體的抓取模擬實(shí)驗(yàn)。該實(shí)驗(yàn)為在ROS環(huán)境下對機(jī)器人宇航員復(fù)雜運(yùn)動控制打下基礎(chǔ),后期將對本課題深入研究,建立機(jī)器人逆運(yùn)動學(xué)模型,對雙臂模型進(jìn)行完整的運(yùn)動規(guī)劃,進(jìn)而實(shí)現(xiàn)機(jī)械臂與固定目標(biāo)對接、雙臂夾持搬運(yùn)物體等復(fù)雜工作。

      [1] Coleshill E, Oshinowo L, Rembala R, et al. Dextre: Improving maintenance operations on the International Space Station[J]. Acta Astronautica, 2009, 64(9/10):869-874.

      [2] Diftler M A, Mehling J S, Abdallah M E, et al. Robonaut 2 - The first humanoid robot in space[C]// IEEE International Conference on Robotics and Automation, 2011:2178-2183.

      [3] 張建偉, 張立偉,胡穎,等.開源機(jī)器人操作系統(tǒng):ROS[J].北京:科學(xué)出版社,2012.

      [4] Quigley M, Conley K, Gerkey B P, et al. ROS: an open-source robot operating system[C]// ICRA Workshop on Open Source Software,2009.

      [5] 夏晶,蔣再男,劉宏,等.機(jī)器人宇航員遙操作中手臂運(yùn)動映射優(yōu)化[J].華中科技大學(xué)學(xué)報(bào)(自然科學(xué)版), 2012, 40(12):55-59.

      [6] 樊紹巍,劉伊威,金明河,等.HIT/DLR HandⅡ類人形五指靈巧手機(jī)構(gòu)的研究[J].哈爾濱工程大學(xué)學(xué)報(bào), 2009, 30(2):171-177.

      [7] 姜力,周揚(yáng),孫奎,等.七自由度冗余機(jī)械臂障控制[J].光學(xué)精密工程,2013,21(7):1795-1802.

      [8] 朱俊杰,王濱,劉宏,等.仿人機(jī)器人頭部設(shè)計(jì)及目標(biāo)跟蹤研究[J].機(jī)械與電子,2010(7):49-52.

      [9] Deutsch A, Fernandez M,Florescu D,et al.A query language for XML[J].Computer Networks, 1999, 31(11/12/13/14/15/16):1155-1169.

      猜你喜歡
      雙臂宇航員連桿
      畫宇航員
      宇航員是怎樣煉成的
      某發(fā)動機(jī)連桿螺栓擰緊工藝開發(fā)
      空間機(jī)器人雙臂捕獲航天器操作的無源自抗擾避撞從順控制
      我在街上走
      詩潮(2019年8期)2019-08-23 05:39:48
      貪玩兒的宇航員(下)
      雙臂掘進(jìn)鉆車
      我是宇航員
      連桿的運(yùn)動及有限元分析
      一種連桿、杠桿撬斷澆口的新型模具設(shè)計(jì)
      成安县| 得荣县| 鄂托克前旗| 沙湾县| 金塔县| 焦作市| 灵宝市| 阿瓦提县| 永仁县| 高阳县| 勃利县| 岢岚县| 惠安县| 沈丘县| 广东省| 洪江市| 康定县| 六盘水市| 什邡市| 玉田县| 土默特左旗| 汨罗市| 陆丰市| 阳信县| 南丰县| 绥滨县| 巴林右旗| 凌源市| 通化县| 徐汇区| 南投县| 梁河县| 东辽县| 额济纳旗| 新干县| 五常市| 格尔木市| 阿克苏市| 额尔古纳市| 广水市| 白沙|