《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于網絡的工業機器人的仿真研究
基于網絡的工業機器人的仿真研究
2017年微型機與應用第11期
洪惠超,鄭力新,謝煒芳
工業智能化技術與系統福建省高校工程研究中心,福建 泉州 362021
摘要: 依托StepRobotSA1400,研究了OpenGL在機器人仿真系統的應用;通過CoDeSys編寫SA1400 PLC控制器程序,基于TCP/IP協議實現PC或其他終端與機器人控制器的通信,實現了在PC對StepRobotSA1400機器人進行在線控制;同時通過離線仿真功能,真實地模擬了實際機器人的運動情況,預測和減少了實體機器人在實際運行中出現的各種問題。
Abstract:
Key words :

  洪惠超,鄭力新,謝煒芳

  (工業智能化技術與系統福建省高校工程研究中心,福建 泉州 362021)

  摘要:依托StepRobotSA1400,研究了OpenGL在機器人仿真系統的應用;通過CoDeSys編寫SA1400 PLC控制器程序,基于TCP/IP協議實現PC或其他終端與機器人控制器的通信,實現了在PC對StepRobotSA1400機器人進行在線控制;同時通過離線仿真功能,真實地模擬了實際機器人的運動情況,預測和減少了實體機器人在實際運行中出現的各種問題。

  關鍵詞三維仿真;工業機器人運動學仿真;OpenGL

  中圖分類號:TP24

  文獻標識碼:A36

  DOI: 10.19358/j.issn.1674-7720.2017.11.002

  引用格式

  洪惠超,鄭力新,謝煒芳.基于網絡的工業機器人的仿真研究[J].微型機與應用,2017,36(11):5-7,11.

0引言

  隨著生產力水平的不斷進步和科學技術的飛速發展,工業機器人作為先進、智能的工業化設備的代表,在社會生活的很多方面廣泛應用\[1\],尤其利用計算機預先對機器人及其工作環境乃至生產過程進行仿真可以得到很好的輔助效果。通過系統仿真,可以在制造單機與生產線之前模擬出實物,縮短生產工期,避免不必要的返工。因此如何精準、忠實地在計算機界面模擬實際機器人的生產過程、所在的工作環境已經成為機器人技術的一個突出問題。除此之外,在工業機器人的應用領域還存在另一個較為嚴峻的問題:一般的機器人控制器多以實現機器人內部控制為主要目的,缺乏與外界設備的信息交換能力。用戶不能以一種有效的手段動態地對機器人本身進行遠程指令下發、監控。

  如果基于通用的網絡技術和目前成熟的計算機圖形技術,仿真系統能夠實時接收機器人控制器發來的狀態數據,動態地以三維模擬方式顯示或者將數據存儲起來以備將來分析,那么則可以降低機器的研發成本,并極大地提高控制機器人的便利性,因此開發一種基于網絡可遠程控制的機器人仿真軟件是十分必要的。

  本文構建了一個在Visual Studio所提供的MFC框架下引入OpenGL圖形程序接口技術、基于TCP/IP通信協議開發的機器人運動仿真及在線控制軟件。本文將對在MFC下利用OpenGL實現三維顯示及運動學建模等關鍵技術進行研究說明。最后簡要闡述了基于通用的網絡通信技術與機器人仿真軟件相結合的一個應用實例。

1在MFC(Microsoft Foundation Classes)下的OpenGL三維顯示技術

  OpenGL是由SGI公司所開發的一個成熟而久負盛名的跨平臺的計算機圖形應用程序接口規范,其高效、功能完善、支持幾乎所有現有的主流操作系統平臺。本文采用OpenGL2.0版本結合微軟基礎類庫實現系統的人機交互功能。以下簡單介紹應用OpenGL和MFC實現三維圖形軟件的過程。

 ?。?)開發環境配置:應用OpenGL和MFC開發三維圖形軟件需要用到opengl32.dll和glu.dll這兩個文件。在開發本程序時,還使用了glut庫,在程序中,可以利用glut提供的各種庫函數來實現對鼠標、鍵盤的消息進行響應以及繪制三維圖形\[2\]。

 ?。?)設置像素格式的結構和參數

  ①填充 PIXELFORMATDESCRIPTOR 結構設置像素格式。

  ②用ChoosePixelFormat()函數比較傳來的像素格式描述和OpenGL支持的像素格式,返回一個最佳匹配的像素格式索引。

  ③調用SetPixelForlnat用格式索引iPixelFormat來設置hdc的像素格式。

 ?。?)設置著色描述表:OpenGL的著色描述表定義為hRC。為了讓程序能夠繪制窗口,還需要創建一個設備描述表。Windows的設備描述表被定義為hDC。DC將窗口連接到GDI(圖形設備接口)。而RC將OpenGL連接到DC。

 ?。?)添加響應WM_PAINT消息的消息處理函數OnPaint,在函數OnPaint函數體中建立機器人三維模型及繪制其工作環境\[34\]。

 ?。?)建立消息映射和命令傳遞。

 ?。?)定義場景(包括機器人和其工作環境)重繪函數DrawStepRoot(),在DrawStepRobot()函數中需要繪制包括氣缸 、活塞、上下平臺和鉸鏈等元件,繪制時這些元件則由更小的細節組成,這些細節均可通過OpenGL以及glut所提供的基本點 、線 、多邊形的繪制函數繪制而成;關節與關節之間的相對旋轉則可以分別由OpenGL中的glTranslatef()函數所實現,將每個關節角作為函數傳入glTranslatef()中,通過DDX_(對話數據交換函數)實現控件值與上述函數參數(如位置、姿態、每個關節的角度)的綁定;登記按鈕或鼠標等命令消息,在對應的消息處理函數中通過

  

Image 001.jpg

  重繪函數DrawStepRoot()對機器人的狀態進行更新\[45\]。

  機器人本體和機器人仿真模型如圖1和圖2所示。

2在Windows下網絡數據通信的實現

  本文所搭建的仿真軟件是以SA1400機器人本體為客戶端,而以其他設備為服務端。目的是實現一臺支持TCP/IP協議的終端盡最大的可能對多臺機器進行操控。

  在實現數據傳輸的過程中,因為對數據的可靠性和完整性均有極高的要求,基于此,此處選擇了多線程流式Socket方式。

  以傳輸機器人6個關節角為例,服務器程序實現如下:

 ?。?)在OnInitDialog()函數中添加用于初始化和建立套接字的代碼,用listen()和Accept()函數監聽客戶端請求。

 ?。?)創建線程對象 pThread用于接收客戶端的連接請求:

  CThread*pThread=(CThread*)AfxBeginThread(RUNTIME_CLASS(CThread));

  這時,服務器方通信的初始化完成,創建新的線程,避免由于通信造成主程序阻塞而不能對機器人進行控制,妨礙用戶界面上的操作和結果的顯示。

 ?。?)用Send()函數向機器人本體傳輸數據

  對應機器人的6個關節角,定義了一個長度為6的浮點型數組,通過send()函數與機器人本體通信。具體為在消息響應函數中加入如下代碼:

  send (app>ClientSock, (char*)(data), 24, 0);

  這種方法的不足之處是當僅僅只需要更新一個關節角度值時,則另外5個關節角度也需要同步更新,傳輸的數據量由本來的4 B變為了24 B;以及只能傳輸機器人的6個關節角度,而對于速度等其余數據則需要另行定義。

  為了避免這種情況的出現以及適應更多類型數據的傳輸,本系統做了如下的設計,定義發送數據包格式如圖3。

Image 002.jpg

  關節ID:表明當前接收的數據適用于第n個關節。

  指示執行動作類型:表明關節ID將做何種狀態改變,如速度、旋轉角度等。

  數據字段:指明了關節ID執行動作的改變量,如速度改變量、旋轉角度改變量等。

  對于服務器而言,SA1400在接收數據時,服務器解析第一個字段ID,確定需要更新第n個關節角后,解析指示執行動作類型字段以及數據字段,由此機器人做出相應的狀態改變。

  基于MFC的多線程流式Socket方式的通信設計以及對發送數據包的改進不僅能有效地實現一個終端對多臺機器人的控制,同時在發送數據量減少4倍的情況下,實現了機器人多種狀態的更新。

3機器人運動學建模

  研究工業機器人運動學的運動特性,就是研究各連桿的速度、加速度、位置變量的所有高階導數;選擇合適的方法確定機器人的連桿參數,以及對機器人進行工作空間規劃則有助于減小機器人三維尺寸,提高機器人的運行效率\[6\]。

  為了描述連桿坐標系之間的關系,Denavit 和Hartenberg提出一種通用的方法,這種方法在機器人的每個連桿上都固定一個坐標系,用4×4的齊次變換矩陣來描述相鄰兩連桿的空間關系。通過依次變換可最終推導出末端執行器相對于基坐標系的位姿,從而建立機器人的運動學方程\[7\]。

  實現方法如下:

  對機器人,如圖4所示,采用DH參數法進行建模,得到關于SA1400機器人的DH坐標系,如圖5所示。

  

Image 003.jpg

  其中圖5中參數an表示連桿長度; dn為移動關節移動變量。

  根據圖5可得關于SA1400的DH參數,如表1所示。其中θn為轉動關節變量,αn是兩關節軸扭角。

  

Image 006.jpg

  由于所有的運動都是相對于當前坐標系而言的,因此,總的變換矩陣A等于各變換矩陣右乘。

  RPQ{31SH~W053@}XCY}XH$K.png

  將表1參數代入式(1),從而得到A1、A2、A3、A4、A5、A6。

  可得連續的連桿變換為:

  206610NOYAJE({TBCYGWNZN.png

  所求T中的參數nx、ny、nz、ox、oy、oz、px、py、pz即為根據機器人各關節角度計算出來的末段執行器的姿態和位置,也就是SA1400機器人正運動學方程的建立過程。與之相反的是機器人逆運動方程的建立,即已知末端位姿求出各個關節旋轉的角度。

  對于機器人求逆解的方法有多種,最常用的方法是封閉解法,采用該方法不僅便于實時控制,而且計算速度快且效率高。封閉解法包含代數、幾何兩種解法。此處采用一種系統化的代數解法。具體過程如下:如式(2)所示,已知nx、ny、nz、ox、oy、oz、px、py、pz,而A1、A2、A3、A4、A5、A6則為未知矩陣,其中所含的未知變量為θ1、θ2、θ3、θ4、θ5、θ6。用未知的連桿的逆變換左乘方程的兩端,把關節變量分離出來,從而求出解,按照這種方法讓矩陣左右兩邊的元素相等便可求出各個關節變量的值。計算過程可用下述等式表示:

  A)V(JY3OJO%(4$$`%S{)JT7.png

4應用實例

  本文構建的基于網絡和StepRobotSA1400工業機器人的仿真系統基本上能模擬真正機器人所實現的功能,圖6為轉動關節變量J1~J6為0時,機器人仿真軟件的仿真結果;圖7為J1~J2為0、J3=30°、J4~J6為0時,機器人仿真軟件的仿真結果。

  可以從圖6、圖7中的正運動學求解模塊中輸入轉動關節變量獲得機器人末端執行器的位姿矩陣,也可以在逆運動學求解模塊中設定末端執行器的位姿矩陣,求得6個關節變量的角度值并在仿真界面中顯示。當所求逆運動學解或輸入關節角度超過關節范圍時(關節角度范圍如表1所示),則程序將彈出警告頁面(如圖8所示),若沒有對其進行該設計,當關節超限時,機器人的末端執行器將可能對地板等硬物產生撞擊,造成機器人本體的損壞。

  

Image 004.jpg

  機器人模型所對應的狀態

  

Image 005.jpg

5結束語

  本文構建了一個基于網絡的工業機器人的仿真及在線控制系統。該系統利用OpenGL搭建了機器人本體仿真模型,避免了調試過程中對機器人本體可能造成的損傷;同時引進在線控制功能,對傳輸的數據包做了進一步的優化,減少了網絡的通信量,實現對機器人的遠程監控,證明了仿真技術和網絡通信結合的可行性。

參考文獻

 ?。?] 郭青陽.基于KUKA工業機器人的定位誤差補償方法的研究\[D\].長春:長春工業大學,2016.

  [2] 董天平,馬燕,劉倫鵬.基于OpenGL的工業化機器人仿真研究\[J\].重慶師范大學學報(自然科學版),2013,30(2): 6064.

 ?。?] 李春雨. 計算機圖形學及實用編程技術\[M\]. 北京:北京航空航天大學出版社, 2009.

 ?。?] 馮勝強, 胡繩蓀, 申俊琦. 基于UG的弧焊機器人模型裝配與運動仿真\[J\]. 天津大學學報, 2009, 42(6):518522.

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

 ?。?] CRAIG J J.機器人學導論(第3版)\[M\].贠超,譯.北京:機械工業出版社, 2006.

 ?。?] DENAVIT J, HARTENBERG R S. A kinematic notation for lowerpair mechanisms based on matrices\[J\]. Trans.of the Asme. Journal of Applied Mechanics, 1955(22):215221.


此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
一本色道久久综合亚洲二区三区| 欧美精品91| 亚洲激情在线| 久久精品91| 久久精品观看| 久久精品国产综合精品| 亚洲图片欧洲图片av| 一本色道久久| 一区二区电影免费在线观看| 亚洲精品免费观看| 亚洲人成网站777色婷婷| 最近看过的日韩成人| 亚洲高清视频在线观看| 亚洲电影专区| 亚洲日本中文字幕| 亚洲区在线播放| 亚洲欧洲久久| 99精品免费视频| 99热精品在线| 亚洲色图自拍| 亚洲欧美久久久久一区二区三区| 国产一区视频网站| 国产一区二区你懂的| 国产有码在线一区二区视频| 国产精品最新自拍| 国产一区久久| 亚洲电影专区| 日韩性生活视频| 国产精品99久久久久久久vr| 亚洲女女女同性video| 性色一区二区| 久久精品一区二区三区不卡| 亚洲福利视频网| 亚洲精品韩国| 亚洲午夜久久久久久久久电影网| 亚洲高清在线播放| 亚洲激情综合| 亚洲香蕉网站| 久久精品主播| 欧美成人性网| 国产精品国产三级国产aⅴ浪潮 | 久久av最新网址| 久久精品中文| 蜜臀久久99精品久久久久久9 | 欧美日韩欧美一区二区| 欧美亚州韩日在线看免费版国语版| 久久综合色8888| 欧美第一黄网免费网站| 欧美性大战久久久久| 国产一区二区无遮挡| 在线观看成人一级片| 99视频一区| 久久精品国产久精国产一老狼| 欧美一激情一区二区三区| 亚洲第一二三四五区| 在线亚洲精品| 久久久一本精品99久久精品66| 亚洲欧美在线视频观看| 久久精品一本| 欧美日韩成人激情| 国产日韩精品一区二区| 亚洲高清一区二| 一区二区三区欧美视频| 亚洲国产精品99久久久久久久久| 欧美一区二区视频在线观看| 亚洲人成精品久久久久| 午夜精品三级视频福利| 模特精品在线| 国产精品一区免费视频| 亚洲精品日韩在线| 午夜综合激情| 这里只有精品丝袜| 久久久久久久999| 欧美日韩在线播| 在线观看国产一区二区| 亚洲一区二区三区乱码aⅴ| 亚洲国产日韩精品| 香蕉久久一区二区不卡无毒影院| 香港成人在线视频| 男人的天堂成人在线| 国产精品视频一区二区三区| 亚洲国产精品久久久久秋霞蜜臀| 亚洲高清一区二| 亚洲一区国产| 一二三区精品| 免费短视频成人日韩| 国产日韩av一区二区| 一本色道久久99精品综合| 亚洲欧洲一区二区在线观看| 久久国产免费看| 国产精品久久久久秋霞鲁丝| 亚洲日本一区二区| 最新亚洲一区| 久热re这里精品视频在线6| 国产模特精品视频久久久久| 9色国产精品| 亚洲麻豆国产自偷在线| 免费成人美女女| 黄色av日韩| 欧美在线亚洲| 久久久久国产一区二区三区四区| 牛牛精品成人免费视频| 国产亚洲一级| 欧美一区二粉嫩精品国产一线天| 久久av在线看| 欧美在线亚洲一区| 国产精品日韩二区| 亚洲性线免费观看视频成熟| 99国产精品99久久久久久| 老司机午夜免费精品视频| 国内成人精品2018免费看| 午夜在线不卡| 欧美在线视频在线播放完整版免费观看| 久久久精品日韩欧美| 国产精品推荐精品| 亚洲一区欧美二区| 亚洲欧美日韩精品| 欧美日韩中文字幕综合视频| 日韩午夜电影| 亚洲天堂成人在线视频| 欧美色中文字幕| 中文日韩在线| 亚洲欧美电影院| 国产精品亚洲а∨天堂免在线| 亚洲国产成人精品久久| 亚洲黄色成人| 欧美黄免费看| 亚洲精品视频啊美女在线直播| 亚洲一区中文字幕在线观看| 亚洲免费在线播放| 国产精品草草| 亚洲欧美三级在线| 久久久久久久久久久久久女国产乱| 欧美日韩免费观看一区| 亚洲免费电影在线| 正在播放欧美视频| 国产精品高清在线观看| 亚洲综合色噜噜狠狠| 久久久久国产精品午夜一区| 尤物九九久久国产精品的分类| 亚洲视频免费在线| 亚洲欧美一区二区三区久久 | 亚洲风情亚aⅴ在线发布| 久久久久久久一区二区三区| 精品成人在线视频| 亚洲另类在线视频| 欧美手机在线视频| 亚洲欧美不卡| 蜜臀久久99精品久久久画质超高清 | 欧美大片第1页| 日韩图片一区| 欧美一区二区福利在线| 国语自产精品视频在线看抢先版结局 | 欧美国产日韩免费| 亚洲精品视频在线观看免费| 亚洲免费影视| 亚洲欧美日韩一区二区在线| 亚洲日本理论电影| 久久岛国电影| 国产日韩精品在线| 日韩视频在线一区二区| 亚洲综合视频1区| 国产中文一区二区| 日韩一区二区精品| 国产伦精品一区二区三区视频孕妇| 欧美性猛交99久久久久99按摩| 欧美人与性动交cc0o| 欧美天天影院| 欧美一区二区在线| 蜜桃av综合| 一区二区三区欧美日韩| 裸体一区二区三区| 欧美精品一区二区精品网| 亚洲欧洲日产国产综合网| 久久国内精品自在自线400部| 欧美日本在线看| 国产一区二区视频在线观看| 亚洲第一区色| 久久精品视频免费| 久久精品日产第一区二区| 欧美成人一区二免费视频软件| 欧美午夜电影一区| 亚洲欧美资源在线| 欧美精品久久久久a| 午夜精品久久| 欧美电影美腿模特1979在线看| 有坂深雪在线一区| 亚洲在线一区二区三区| 亚洲高清在线视频| 欧美制服丝袜| 一本大道久久a久久精品综合| 一区二区三区四区五区在线| 国产一区二区三区在线观看精品 | 亚洲最新色图| 国产亚洲精久久久久久| 亚洲性线免费观看视频成熟| 在线免费观看欧美| 欧美一区二区福利在线| 99国产精品久久久久久久成人热| 亚洲视频一二三|