• 
    

    
    

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

      基于V-REP的關(guān)節(jié)機器人運動仿真

      2017-04-21 00:44:00趙海林孫福佳
      電子科技 2017年4期
      關(guān)鍵詞:控制程序腳本離線

      趙海林,錢 煒,孫福佳

      (上海理工大學 機械工程學院,上海 200093)

      基于V-REP的關(guān)節(jié)機器人運動仿真

      趙海林,錢 煒,孫福佳

      (上海理工大學 機械工程學院,上海 200093)

      提出了一種在V-REP平臺下實現(xiàn)機器人虛擬運動控制及運動仿真方法。在V-REP中創(chuàng)建了機器人控制模型,并使用Lua編寫了控制腳本及通信接口,使用Visual Studio 2010編寫了外部控制程序。通過Socket通信實現(xiàn)機器人模型與外部控制程序的連接。以廣泛應用的IRB4600六軸機器人模型為實驗對象,通過外部控制程序?qū)崿F(xiàn)機器人運動仿真的步驟。實驗中機器人準確響應外部控制指令到達相應位置,驗證了本方法的有效性。

      V-REP;關(guān)節(jié)機器人;運動仿真;Lua

      離線編程系統(tǒng)對工業(yè)機器人發(fā)揮著重要作用,而控制機器人的動作模擬,實現(xiàn)機器人模型的運動仿真便是離線編程系統(tǒng)中的重要一環(huán)[1]?,F(xiàn)在國內(nèi)科研機構(gòu)對于離線編程系統(tǒng)中的運動仿真模塊,多是采用Open GL 圖形繪制引擎以及WTK虛擬環(huán)境開發(fā)包工具獨立開發(fā),在虛擬環(huán)境中建模、根據(jù)計算的位置驅(qū)動模型仿真運動[2-3],這樣做的缺點就是建模能力差,不適應科研人員對不同機器人運動學控制研究的需要。本文針對機器人模型運動仿真提出一種新的方法,即將機器人運動仿真界面和運動學計算及控制分開,選擇V-REP為運動仿真平臺,利用其開源性、接受多種語言編程以及豐富的API來做界面仿真,把后臺的計算過程放在外部控制程序中[4-5]。文中運動仿真實驗證實了此方法可行,為未來機器人理想編程系統(tǒng)的開發(fā)提供了一定的參考。

      1 運動仿真平臺及腳本語言

      1.1 運動仿真平臺V-REP

      本文選擇V-REP作為機器人運動仿真的實驗平臺, 虛擬機器人實驗平臺(Virtual Robot Experiment Platform,V-REP),其是國外一款開源的有自身IDE的機器人仿真軟件。其支持嵌入腳本、插件、 ROS、remote API clients、 Add-on等控制方式,以及C/C++, Python、Java、Lua、Matlab等編程語言。另外還支持機器人運動學正解和逆解、碰撞檢測、路徑規(guī)劃、定制UI、視覺計算、三維建模、距離感應計算[6]。在開發(fā)集編程仿真于一體的離線編程軟件時,可選擇嵌入V-REP,將其當作一個獨立的仿真模擬環(huán)境。

      1.2 Lua語言及Luasocket

      Lua是一個小巧的腳本語言,在所有操作系統(tǒng)和平臺上都能夠編譯運行,其設計目的是為了嵌入應用程序中,為應用程序提供靈活的擴展和定制功能。在目前所有腳本引擎中,Lua的速度是最快的,這決定了Lua是作為嵌入式腳本的最佳選擇[7]。而LuaSocket是Lua的網(wǎng)絡模塊庫,其提供TCP、UDP、DNS、FTP、HTTP、SMTP 等多種網(wǎng)絡協(xié)議的訪問操作,本文使用Luasocket中的socket.tcp()這一函數(shù)[8]。

      2 在V-REP中創(chuàng)建機器人控制模型

      在V-REP中創(chuàng)建機器人控制模型分為兩部分:(1)建立機器人三維模型、添加關(guān)節(jié)約束;(2)為模型編寫控制腳本代碼和通信接口。

      2.1 建立機器人三維模型

      建立機器人模型可在V-REP中完成,也可在外部的CAD軟件中完成然后導入V-REP;但是前者建模能力較弱且較為繁瑣,遠不如現(xiàn)在已經(jīng)商用化的三維軟件便捷。本文選擇在SolidWorks中設計機器人三維模型,然后轉(zhuǎn)換成V-REP能夠讀取的標準CAD格式(如stl,dxf,3ds等)導入到V-REP中[9]。

      不管是內(nèi)部建模還是外部導入,由于機器人零件眾多,為了在進行機器人運動仿真時V-REP減少延遲及提高運行效率,需要將同一個連桿的各個零件合并成一個部件。本文以IRB4600六軸工業(yè)機器人為例,其最終的優(yōu)化結(jié)果是7個部件,部件之間以6個關(guān)節(jié)連接。其原始三維模型以及優(yōu)化后的模型如圖1所示,圖1(a)為原始模型;圖1(b)為優(yōu)化后的模型。

      圖1 機器人優(yōu)化前后的模型圖

      在運控仿真時圖1(b)的模型被標示在不可見的圖層中。根據(jù)IRB4600機器人的D-H參數(shù),如表1為其添加關(guān)節(jié)約束,添加關(guān)節(jié)時需要考慮到各連桿的長度及扭轉(zhuǎn)角,各關(guān)節(jié)變量及偏置量。

      表1 IRB4600機器人D-H參數(shù)表

      6個關(guān)節(jié)分別連接著7個部件(連桿),其層級結(jié)構(gòu)如圖2所示。

      圖2 連桿和關(guān)節(jié)的層級關(guān)系圖

      2.2 編寫控制腳本與通訊接口設計

      V-REP中控制腳本分為線程腳本和非線程腳本兩種,和非線程腳本相比,線程腳本常規(guī)動作部分是循環(huán)執(zhí)行的,且運行模擬時機器人能夠持續(xù)接受外部指令進行動作,因此本文選擇線程腳本來編寫控制代碼和通信接口程序。

      V-REP中的機器人控制模型和外部控制程序之間需要可靠地數(shù)據(jù)通信服務,因此本文選擇TCP協(xié)議中的流式套接字來傳輸指令,通信體系結(jié)構(gòu)選擇常見的客戶端—服務器模式,以V-REP為客戶端,外部控制程序為服務器端。編寫腳本代碼使用Lua語言,和外部控制程序通信使用Luasocket模塊中的相關(guān)函數(shù)。

      在控制腳本中,使用socket=require("socket")來加載Socket通信模塊,使用函數(shù)client=socket.tcp()和client:connect()來和外部控制程序建立連接,使用jointHandles[i]=simGetObjectHandle('IRB4600_joint'..i)給各關(guān)節(jié)添加控制句柄。使用函數(shù)client:receive(‘*l’)來接收外部控制指令字符串,其參數(shù)’*l’表示接收一行字符串,以換行符” ”作為作為一次指令讀取結(jié)束的標志。使用simRMLMoveToJointPositions()函數(shù)來控制機器人的動作,此函數(shù)可以在同一時間控制機器人的各個關(guān)節(jié)動作(包括各關(guān)節(jié)轉(zhuǎn)速,加速度以及轉(zhuǎn)動角度等參數(shù))以達到控制機器人運動的目的[10]。

      V-REP端要設計控制接口,以解析外部控制程序發(fā)來的運動指令。外部控制程序發(fā)出一串特定格式的字符,V-REP端通過string.find()、string.sub()、tonumber()等函數(shù)解析出各個關(guān)節(jié)的目標角度值,然后把設定好的各個參數(shù)值賦給simRMLMoveToJointPositions()函數(shù),控制機器人的各個關(guān)節(jié)以一定的速度和加速度轉(zhuǎn)動設定的角度,以實現(xiàn)對機器人的運動控制。本文采用線程腳本編寫控制代碼,其常規(guī)動作部分循環(huán)執(zhí)行,因此外部控制程序和V-REP成功連接后,通過發(fā)送一系列的控制指令便可實現(xiàn)對機器人動作的連續(xù)控制。

      3 外部控制程序設計及調(diào)試驗證

      3.1 外部控制程序及界面設計

      按前文所述外部控制程序和V-REP之間通訊采用客戶端—服務器模式。為保持腳本代碼的簡潔以使機器人模擬動作時迅速響應,本文選擇將控制界面上的一系列控制動作全部在控制程序后臺轉(zhuǎn)化成關(guān)節(jié)軸的轉(zhuǎn)角,然后寫入字符串變量中通過Socket發(fā)送給V-REP,以實現(xiàn)對V-REP中機器人模型的動作控制。

      本文選擇Visual Studio 2010編寫外部控制程序,其控制界面如圖3所示。

      圖3 外部控制程序界面

      和V-REP建立Socket通信,服務器端需要兩個套接字對象;“m_ListenSocket”(用于監(jiān)聽)和“m_ServerSocket”(用于通信);這兩個Socket對應于兩個Socket類,都繼承自CAsyncSocket。此外部控制程序是一個基于對話框的MFC項目[11]。

      在控制界面中的端口設置區(qū),本文使用ServerIP.GetAddress()函數(shù)讀取服務器IP地址,使用m_ListenSocket.Create()函數(shù)創(chuàng)建用于監(jiān)聽的套接字,使用函數(shù)m_ListenSocket.Listen(1)限定只接受一個客戶端(V-REP)的連接,使用m_ListenSocket.Close()函數(shù)停止監(jiān)聽外部客戶端的連接請求,使用m_ServerSocket.Close()斷開與客戶端(V-REP)的連接;在關(guān)節(jié)角度控制區(qū),由于機器人的每個關(guān)節(jié)軸均有一定的轉(zhuǎn)角范圍,如表1所示。因此要在界面中的關(guān)節(jié)轉(zhuǎn)角編輯框中檢測輸入的目標角度,如果超過最大轉(zhuǎn)角范圍,則不發(fā)送控制指令并彈出提示信息;同樣在關(guān)節(jié)角調(diào)整區(qū)也需要實時檢測調(diào)整轉(zhuǎn)角時將會達到的轉(zhuǎn)角上限。關(guān)節(jié)角度控制區(qū)使用m_ServerSocket.Send()函數(shù)發(fā)送控制指令,關(guān)節(jié)角度調(diào)整區(qū)與此類似。在位置坐標控制區(qū),按照機器人的D-H參數(shù)表,如表1所示,建立機器人模型[12-13],通過機器人逆運動學函數(shù)invkine()將求解出的6個關(guān)節(jié)的轉(zhuǎn)角轉(zhuǎn)換成字符串賦值給m_angle,同樣通過m_ServerSocket.Send()函數(shù)發(fā)送給V-REP,以實現(xiàn)對機器人末端執(zhí)行器位姿的控制。

      3.2 軟件調(diào)試及機器人運動仿真驗證

      本文以應用廣泛的IRB4600機器人為實驗對象進行運動仿真驗證。在V-REP中載入已創(chuàng)建完成的IRB4600機器人控制模型,打開外部控制程序并開始監(jiān)聽等待V-REP的連接申請,點下V-REP中模擬開始按鈕,V-REP根據(jù)控制腳本內(nèi)設定的IP地址連接到外部控制程序,外部程序接收到V-REP的連接請求后自動接收連接請求,成功連接后機器人等待外部程序發(fā)送控制指令。在外部控制界面上輸入6個關(guān)節(jié)轉(zhuǎn)角或末端執(zhí)行器位姿數(shù)據(jù)給機器人指定目標位置,通過各增量按鈕對機器人的姿態(tài)進行調(diào)節(jié),這樣便可通過外部程序控制機器人動作了。調(diào)試結(jié)果如圖4所示。

      圖4 調(diào)試效果圖

      調(diào)試結(jié)果顯示,外部控制程序和V-REP成功連接,并對輸入的轉(zhuǎn)角和位姿指令均可準確動作并到達指定位置,對于超過轉(zhuǎn)角范圍的也會彈出提示。不過不足之處是在進行大角度增量調(diào)節(jié)時,機器人動作相對控制按鈕的輸入會有延遲,這和V-REP的模擬引擎(分別為Bullet、ODE、Vortex、Newton的4種引擎)、設定的精確度以及模擬時間步長有關(guān),在模擬設置中作出相應調(diào)整仿真效果會明顯改善。

      4 結(jié)束語

      本文在V-REP中建立了機器人的控制模型并為其添加了關(guān)節(jié)約束,同時編寫了控制腳本以及與外部控制程序的通信接口函數(shù);用VS2010編寫了外部控制程序界面以及關(guān)節(jié)控制和坐標控制代碼。調(diào)試實驗實現(xiàn)了外部控制程序?qū)C器人運動的控制,證實了通過外部程序控制機器人的動作以及利用V-REP實現(xiàn)機器人模型的運動仿真的可行性,這也為以后的機器人離線編程系統(tǒng)的開發(fā)打下了基礎[14]。本文所述的控制機器人進行運動仿真的方法,不僅限于六軸機器人,對于其他的多軸關(guān)節(jié)型機器人、輪式機器人也可通過修改控制腳本和外部控制程序代碼進行運動控制模擬。本文作為機器人離線編程系統(tǒng)開發(fā)的前期研究成果,尚未加入程序編輯及指令編譯等模塊,后續(xù)研究中需要在控制界面中增添更多的功能模塊以及豐富V-REP中的機器人控制模型庫。

      [1] 蔡自興,謝斌.機器人學[M]. 3版.北京:清華大學出版社,2015.

      [2] 孫斌.六軸工業(yè)機器人的離線編程與仿真系統(tǒng)研究[D].太原:太原理工大學,2014.

      [3] 晏升輝,張海鷗,王桂蘭,等.基于OpenGL的五軸數(shù)控銑削仿真[J].機械制造,2012,50(2):45-47.

      [4] 曹金學.工業(yè)點焊機器人離線編程軟件的國產(chǎn)化開發(fā)及應用[J].計算機應用與軟件,2011,28(12):30-32.

      [5] 祁若龍,周維佳,劉金國,等. VC平臺下機器人虛擬運動控制及3D運動仿真的有效實現(xiàn)方法[J].機器人,2013,35(5):594-599.

      [6] Rohmer E, Singh S P N, Freese M. V-REP: A versatile and scalable robot simulation framework[C]. TA,USA:IEEE/RSJ International Conference on Intelligent Robots & Systems. IEEE, 2013.

      [7] Roberto Ierusalimschy.Lua 程序設計[M].2版.周惟迪,譯.北京:電子工業(yè)出版社,2008.

      [8] Diego Nehab. Network support for the Lua language [EB/OL]. (2007-10-3) [2016-04-24] http:∥w3.impa.br/~diego/software/luasocket/home.html.

      [9] 甘亞輝,戴先中.一種高效的開放式關(guān)節(jié)型機器人3D仿真環(huán)境構(gòu)建方法[J]. 機器人,2012,34(5):628-633.

      [10] Diego N.Virtual robot experimentation platform user manual[EB/OL]. (2016-2-18) [2016-04-25] http:∥www.coppeliarobotics.com/helpfiles/index.html.

      [11] 鄭阿奇.Visual C++網(wǎng)絡編程教程(Visual Studio 2010平臺)[M].北京:電子工業(yè)出版社,2013.

      [12] 孫樹棟.工業(yè)機器人技術(shù)基礎[M].西安:西北工業(yè)大學出版社,2006.

      [13] Mitsi S,Bouzakis K D.Mansour off-line programming of an industrial robot formanufacturing[J].The International Journal of Advanced Manufacturing Technology,2005,26(3):262-267.

      [14] Christine Connolly,張利梅.ABB Robot Studio的技術(shù)與應用[J].機器人技術(shù)與應用,2011(1):33-36.

      Research of Articulated Robot Motion Simulation Based on V-REP

      ZHAO Hailin,QIAN Wei,SUN Fujia

      (School of Mechanical Engineering,University of Shanghai for Science&Technology, Shanghai 200093, China)

      An efficient method is presented to realize the virtual robot motion control and motion simulation based on V-REP platform.In V-REP robot control model is created and control script and the communication interface is developed with the Lua, and the external control program is written in Visual Studio 2010.Connection between robot model and external control program is realized through the Socket communication .Taking the widely used six-axis robot model IRB4600 as experimental object, this paper steps through the procedure of realizing the robot motion simulation with external control program.Robot responsed to external control instruction to reach the corresponding position in the experiment, whichveri-fied the effectiveness of this method.

      V-REP; articulated robot; motion simulation; Lua

      2016- 04- 24

      上海市經(jīng)信委重大技術(shù)裝備研制專項基金資助項目(ZB-ZBYZ-03-11-1709)

      趙海林(1988- ),男,碩士研究生。研究方向:工業(yè)機器人運動控制。錢煒(1964- ),男,碩士,副教授。研究方向:機器人機構(gòu)學等。

      10.16180/j.cnki.issn1007-7820.2017.04.013

      TP242.2

      A

      1007-7820(2017)04-053-04

      猜你喜歡
      控制程序腳本離線
      酒駕
      異步電機離線參數(shù)辨識方法
      防爆電機(2021年4期)2021-07-28 07:42:46
      呼吸閥離線檢驗工藝與評定探討
      基于PLC的變電站備用電源自動投入裝置控制程序的研究
      安奇奇與小cool 龍(第二回)
      淺談ATC離線基礎數(shù)據(jù)的準備
      數(shù)據(jù)庫系統(tǒng)shell腳本應用
      電子測試(2018年14期)2018-09-26 06:04:24
      離線富集-HPLC法同時測定氨咖黃敏膠囊中5種合成色素
      中成藥(2018年2期)2018-05-09 07:20:09
      快樂假期
      中學生(2017年19期)2017-09-03 10:39:07
      基于PLC數(shù)值處理模塊的PID控制程序研究
      临汾市| 游戏| 镇宁| 祁门县| 静海县| 昌平区| 札达县| 宜章县| 鲜城| 翁牛特旗| 泽州县| 五指山市| 武乡县| 邢台市| 东城区| 柯坪县| 湘西| 广昌县| 扎鲁特旗| 屏南县| 郯城县| 牙克石市| 屏东市| 江山市| 丰宁| 锦州市| 延津县| 平乡县| 厦门市| 南京市| 睢宁县| 左权县| 页游| 广平县| 化隆| 乡宁县| 同德县| 宁安市| 瓮安县| 黎川县| 额敏县|