首頁 > 文章中心 > 正文

          工業機器人控制軟件重構方式

          前言:本站為你精心整理了工業機器人控制軟件重構方式范文,希望能為你的創作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。

          工業機器人控制軟件重構方式

          運動控制模塊選用TI公司的OMAPL138雙核處理器芯片,它集成了TMS320C674xDSP內核和ARM926EJ-S雙核,具有高性能與低功耗的特性。ARM內核完成非實時性的指令解釋、軌跡規劃、數據管理、任務管理、網絡通信等工作,DSP內核由于具有強大計算能力完成插補計算、逆運動學、速度和位置控制、I/O控制等實時任務。位置控制FPGA芯片包含多軸插補、位置PID等電路,采用了ALTERA公司的EP1C3T144芯片,通過加載不同的程序來實現功能重構。為了提高多軸聯動插補速度,插補算法采取軟插補(粗)+硬插補(精)結合的模式,硬插補基于數字脈沖乘法器來實現。該模塊與驅動器的連接接口提供了兩種形式:數字脈沖量接口、工業以太網接口,工業以太網接口可兼容多種驅動器的通信協議,目前已實現了Mecha-trolinkIII協議,這是由日本安川公司提出的一種符合EEE802.3u標準的以太網協議,傳輸速度可達到100Mbps。OMAPL138雙核處理器芯片能提供豐富的外圍接口,包括以太網、USB、RS232等接口,通過以太網接口實現運動控制模塊與示教模塊的通信。

          示教模塊由OMAPL138雙核處理器電路、48個按鍵和5.7寸640×480彩色TFT組成,按鍵包括編輯鍵、手動操作鍵、示教編程鍵及功能鍵組成。為保證功能重構與硬件平臺無關,采用Win-dowsCE6.0操作系統。該模塊包含的軟件功能構件有:文件管理、示教編程、參數設置、參數管理、圖形模擬、以太網通信等。I/O模塊負責邏輯控制功能,實現機器人與周邊設備的協調作業任務。CAN協議是建立在國際標準組織開放系統互連模型之上,協議簡單,最高通信速率可達1Mbit/s,直接傳輸距離高達10km,采取多主線工作方式,高抗電磁干擾性、糾錯能力強;同時,CAN接口安裝方便、成本低。本論文選用CAN總線作為運動控制器與I/O模板之間的數據通信方式。2)工業以太網通信協議機器人示教模塊與運動控制模塊的以太網通信功能采用套接字(Sock-et)方式來實現,Socket接口分為兩部分:客戶端和服務器,這里示教模塊作為客戶端,運動控制模塊作為服務器。本文采用的通信模式采用主從方式,示教模塊為主動方,發送機器人運動程序、控制參數和命令字,用來控制機器人的運動動作,而運動控制模塊實時地將坐標數據及狀態參數上傳給示教模塊。在開始通信時,將首先進行握手連接。

          數據鏈路層協議定義了命令和數據兩類報文形式,命令報文用來控制機器人的運行動作和流程,定義成標準的報文格式;數據報文用來傳送機器人的運動程序和參數,數據量比較大,定義成一種擴展報文格式。標準報文格式有7個字節,第1個字節是報文頭標識符,用來標識一次通訊的開始,本報文設為“%”。第2個字節是報文類型段,用來標識傳輸的消息類型和處理模式,定義的消息類型為:命令、數據,并提供了了兩種報文處理模式:實時性和非實時性。當需要機器人完成急停處理、復位處理及超程報警等任務時,則傳送具有實時性標識的報文;對一般的機器人處理任務,將報文標識為非實時性。報文的長度由第3、4字節標識,最長為65536字節。第5、6字節為數據段,第7個字節用“&”來標識報文尾。當傳輸的信息類型標識為數據時,使用了一種擴展報文格式,此時數據段長度可以達到2K字節。示教模塊按照報文通信協議將需要發送的數據封裝起來,再使用傳送函數將數據下傳給運動控制模塊,包括程序、參數、命令字。在數據報文中如果是多個程序指令,則不同指令之間用“\r\n”隔開,如:“%0x004D指令1\r\n指令2\r\n......&”。數據報文中參數按一定次序排列,用“;”隔開,如:“%0x004B參數1;參數2;......&”。示教模塊下傳、接收的部分數據報文定義。

          工業機器人控制軟件重構方法

          模塊化機器人的控制軟件都應當具備可剪裁性或多重性,整個體系結構應當能夠被重新配置,以滿足多種應用領域的需求,具備理想“開放性”概念的控制軟件應可被拆分為多個標準部件。為了實現上的方便同時又滿足組態的特性,本文提出了一個柔性的軟件框架結構。“柔性”與“開放性”這2個概念有不同點,但又具有相同的特性,“開放性”側重與外部系統通過定義標準的接口相互操作,而“柔性”是指系統能通過改變自身結構以適應外部環境的能力。這種柔性控制系統采用基于構件的組態結構,其軟件由三部分組成:嵌入式柔性控制系統開發平臺、機器人功能構件庫和運動規劃與控制算法構件庫。嵌入式柔性控制系統開發平臺用來實現功能構件封裝、系統配置等任務。針對模塊化機器人控制系統具有多功能和多對象的特點,控制軟件的整體結構流程被設計成前臺、后臺程序模塊,后臺模塊也稱為"背景"程序,主要用來完成控制指令的準備工作和參數管理工作,前臺模塊是一個循環執行運行的程序,它是整個控制系統的核心。在系統運行過程中采用實時中斷服務程序輸出,前后臺模塊相互配合完成機器人控制系統的各項控制和管理任務。功能構件的程序模式由配置腳本文件指定。構件化結構關鍵是構件的提取,即對可重用對象的提煉概括。通過良好地定義這些對象之間相互通信的接口,可以將這些基本對象或將它們進一步分析以后形成的粒度更小的對象,在開發過程中加以重用。本文建立的構件庫由用戶層構件庫和核心層構件庫組成,兩者之間通過標準硬件接口進行通信。用戶層構件庫包括人機界面、示教編程、運動規劃、參數管理等非實時構件庫。由于用戶層使用WindowsCE操作系統,軟件模塊采用COM構件來實現。核心層構件庫包括譯碼處理、速度控制、位置控制、運動學、逆運動學等機器人作業的實時性任務。由于核心層沒有使用操作系統,本文利用功能函數形式實現。各種功能構件按標準接口進行封裝,功能構件的接口。

          控制模型及算法構件庫設計

          模塊化機器人柔性控制系統的性能很大程度上依賴于控制模型與算法,已開發的模型算法構件包括:指令譯碼、機器人運動學、逆運動學、速度控制、關節插補、閉環位置控制等。主要由譯碼處理、直角坐標計算、插補運算、逆運動學、加減速及位置控制等模塊組成。圖中各參數含義為:(X,Y,Z,U,V,W)表示譯碼后的坐標數據,Q為坐標系選擇標志,F為指令速度,Type為運動方式標志位,(α,β,γ)和(px,py,pz)分別表示機器人末端的位置和姿態,(q1,j,q2,j,…,q6,j)為第j個插補周期的關節坐標。直角坐標計算模塊的功能為利用機器人運動學將關節坐標轉換為機器人末端的位置和姿態。插補模塊的功能是根據軌跡運動方式、軌跡起止坐標及速度等參數,進行關節坐標系或直角坐標系下的插補運算。在直線坐標系下插補計算得到的機器人末端位置和姿態,需利用機器人逆運動學將其轉換為相應的關節坐標,從而控制各伺服系統的運動。1)關節軌跡插補構件關節軌跡插補用于計算各個插補周期內的各關節進給量,以保證末端執行器的平滑、穩定運行。關節軌跡插補由2個構件實現,非實時函數structinter_stepjoint_inter_pre(structinter_in*st_end)用于計算單個插補周期內的各關節的進給量,實時函數structRobot_jointslocomotion_joint(structinter_step*q_step,structinter_in*st_end,structRobot_joints*q_BK)用于計算插補周期各關節的坐標值。構件入口參數為結構體型參數structinter_in*st_end,其中包括初始關節坐標Qs(q1,s,q2,s,…,q6,s),目標關節坐標Qe(q1,e,q2,e,…,q6,e)和關節速度F,出口參數為各插補周期關節位置q。2)機器人運動學構件機器人運動學構件用于實現機器人關節坐標系的坐標到機器人末端的位置和姿態之間坐標轉換。該構件被封裝為structRobot_T6cal_t6(structRobot_joints*q),入口參數為機器人關節坐標(q1,q2,…,q6)(structRobot_joints*q),出口參數為機器人末端的位置和姿態T6(structRo-bot_T6*T6),公共接口參數為機器人的Denavit-Hartenberg(D-H)參數(structDH_para*DH),即關節角(θ1,θ2,…,θ6)、扭轉角(α1,α2,…,α6)、連桿長度(a1,a2,…,a6)和連桿偏移量(d1,d2,…,d6)等。計算思路為根據機器人D-H坐標系建立原則,建立連桿坐標系,利用DH連桿參數計算相鄰連桿之間的連桿變換矩陣Ai(i=1,2,…,6),用以描述相鄰連桿坐標系之間的坐標變換關系。通過各連桿變換矩陣相乘,就可以得到機器人末端的變換矩陣。3)逆運動學構件機器人逆運動學構件用于實現機器人末端的位置和姿態到機器人關節坐標系的坐標之間的映射,從而對機器人末端路徑進行規劃,達到機器人整體運動的精確控制。該構件被封裝為structRobot_jointsrobot_rev(structRobot_T6*T6,structRobot_joints*q_BK),入口參數為機器人末端的位置和姿態T6(structRobot_T6*T6),上一位置的機器人關節坐標(q1,j-1,q2,j-1,…,q6,j-1)(structRobot_joints*q_BK),出口參數為當前位置的機器人關節坐標(q1,j,q2,j,…,q6,j)(structRobot_joints*q),公共接口參數為機器人D-H參數,機器人各關節最小允許坐標(q1,min,q2,min,…,q6,min)(doubleQmin[6])和最大允許坐標(q1,max,q2,max,…,q6,max)(doubleQmax[6])。計算思路為根據機器人末端的變換矩陣,利用解析法求解各關節坐標。由于逆運動學求解存在多解問題,根據機器人動作范圍(qi,j∈[qi,min,qi,max],i=1,2,…,6)對其進行判定,去除不可達的解。將當前軌跡點計算出的六關節坐標qi,j與上一位置的關節坐標qi,j-1進行比較,選取Δq=|qi,j-qi,j-1|最小的qi,j值作為所求的關節坐標。4)譯碼處理構件譯碼構件的功能是將示教盒下傳的各條機器人指令進行譯碼,譯碼結果首先放入CS第一級緩存,并根據命令做相應的預處理,如段長計算、圓弧半徑處理等,然后經過BS寄存器最后譯碼到AS執行寄存器,構成三級緩存結構,為最終的指令執行做好準備。我們設計的機器人語言格式如下:語句序列為[<標號>]?<執行句><語句分隔符>|[<標號>]?<注釋句><語句分隔符>其中,標號由4位數字構成。執行句為〈定義語句〉<機器人控制語句>〈程序控制語句〉〈輸入輸出語句〉〈賦值語句〉定義語句為〈位姿定義〉〈坐標系定義〉例如,“MOVJVJ=500S0L-90U0R0B45T0;{關節插補}”為一個執行句。機器人譯碼處理由詞法分析構件、語法分析和代碼轉換構件來實現。詞法分析構件由函數voidAccidenceCheck(char*mem,intmemsize)實現,用于檢查機器人程序中不符合詞法規則的指令。語法分析和代碼轉換構件由函數structUnRegInCode2Cs(char*mem,intmemsize)實現,用于根據機器人指令的規則對機器人代碼進行逐行檢查,將機器人程序各種作業信息提取出來,保存到CS緩沖區中。

          機器人控制系統現場實驗與結果分析

          利用本文提出的嵌入式柔性控制系統開發平臺,在某種型號關節機器人上進行了應用實驗。該關節機器人技術指標為:6個運動軸,重復定位精度為0.1mm,各關節最大運行速度是S軸(回旋)為45°/s、L軸(下臂)為45°/s、U軸(上臂)為30°/s、R軸(手腕橫擺)為60°/s、B軸(手腕俯仰)為60°/s、T軸(手腕回轉)為120°/s,最大負載為3kg。機器人控制系統硬件由六軸運動控制模塊、示教模塊和IO模塊構成,控制軟件包括人機界面、示教編程、參數設置、插補計算、譯碼處理、速度控制、位置控制、運動學、逆運動學等功能,為機器人控制系統軟件編寫了配置文件,給出組件間的拓撲結構。不帶機器人本體時軌跡位置最大誤差為0.08mm,姿態最大誤差為0.2°,帶本體時軌跡位置最大誤差為0.1mm,姿態最大誤差為0.6°。該型號機器人軌跡位置理論值允許誤差為0.1mm,因此可以滿足該型號機器人控制精度要求。機器人控制系統經過長時間運行,結果表明采用嵌入式柔性控制系統可增加機器人系統的開放性和可擴展性,軟硬件配置方便,控制系統可靠性高。

          結語

          針對模塊化機器人對控制系統的實際需求,本文提出一種柔性的控制系統結構,它可解決基于嵌入式系統的機器人控制功能重構問題,而以往的模塊化機器人控制系統的研究主要是基于PC平臺的。該機器人控制系統的軟硬件功能模塊被抽取成標準構件,為滿足機器人對控制系統計算能力和小型化的要求,硬件模塊采用了雙核處理器并利用現場總線標準接口實現之間的通信。機器人控制軟件采用了基于構件的組態結構,它由柔性嵌入式控制系統開發平臺、機器人功能構件庫和運動規劃與控制算法構件庫三部分組成,所有軟件模塊都按標準接口進行封裝。所開發的控制系統在六關節模塊工業機器人上進行了應用,現場實驗表明該系統性能穩定可靠,能適應模塊化機器人的機械結構和作業任務的變化需求,可使開發周期大大縮短。

          作者:曹建福汪霖單位:西安交通大學機械制造系統工程國家重點實驗室