(電子科技大學光電信息學院,成都610054)
(電子科技大學光電信息學院,成都610054)
為了解決高精度多軸機器人控制系統(tǒng)中FPGA塊RAM容量有限的問題,提出了一種保存規(guī)劃運動指令的方法。利用FPGA塊RAM生成Dual-RAM,通過軸選判斷器選擇出有效運動參數(shù),再按軸號分別存入各Dual-RAM。實驗結(jié)果表明:采用該方法,直接使用FPGA內(nèi)部RAM,避免了外部RAM擴展,從而精簡了指令存儲電路,增強了系統(tǒng)可移植性。該機器人系統(tǒng)目前已成功應用于工件上下料作業(yè),系統(tǒng)運行穩(wěn)定,點重復精度達0.02 mm,水平聯(lián)動速度達到5.2 m/s。
多軸機器人;指令存儲;dual-RAM;規(guī)劃運動
多軸機器人的研制一直是國內(nèi)、外學者及產(chǎn)業(yè)界關(guān)注的重點領(lǐng)域[1-4],由于多軸機器人的控制包括許多自成一體的研究領(lǐng)域,如計算機視覺、運動學、動力學、控制理論等,所涉及到的研究難點包括位姿識別、精密機械設計、軌跡規(guī)劃和插補、復雜指令存儲等諸多難題,迄今為止,核心技術(shù)仍然只被德國KUKA、瑞典ABB等少數(shù)國外研究團隊掌握。
多軸機器人的運動控制類型包括歸零、規(guī)劃運動和示教器控制等,其中,規(guī)劃運動是工業(yè)機器人作業(yè)時最主要的運動控制方式[5]。多軸機器人的規(guī)劃運動是指由上位機預先計算出機器人各軸的運動軌跡,并將機器人軸號、運動脈沖數(shù)、運動速度等參數(shù)信息以指令的方式發(fā)送給下位機,下位機存儲運動指令,按設定條件產(chǎn)生PWM波[6]。
本文在制作多軸機器人的基礎(chǔ)上,對規(guī)劃運動指令的存儲方法進行多種嘗試和研究。由于指令數(shù)據(jù)量大,通常的方法是在 FPGA外部擴展 RAM、FLASH等存儲芯片[7-9],導致控制板電路復雜,不利于系統(tǒng)移植。提出了基于FPGA塊RAM的規(guī)劃運動指令存儲方法,從而精簡了指令存儲電路,并且節(jié)省了對RAM容量的占用率。
筆者所在科研團隊研制的多軸機器人有4個自由度。外置相機用于實時采集工件的位置,實現(xiàn)視覺導航。機器人的1、2軸水平方向運動,3軸垂直方向運動,4軸水平360°旋轉(zhuǎn),4個軸配合可以實現(xiàn)物體搬運、碼垛、噴涂等多種作業(yè)該系統(tǒng)機器人本體如圖1所示。
該多軸機器人系統(tǒng)采用PC+FPGA控制方式。PC作為系統(tǒng)的上位機,負責運動類型控制、軌跡規(guī)劃和人機交互等;FPGA作為系統(tǒng)的下位機,負責機器人位姿識別、與上位機通信、以及PWM發(fā)波控制等[10]。上位機和下位機通過串口連接,以指令的方式交換信息。
圖1 多軸機器人本體
傳統(tǒng)的存儲方法一般采用外部擴展RAM或FLASH等存儲芯片,外部RAM擴展原理如圖2所示。外部RAM的優(yōu)勢在于存儲容量更大,但是由于RAM與CPU各自獨立,數(shù)據(jù)讀寫需要地址譯碼等[11-12],導致讀寫耗時大,不滿足機器人運動的實時性要求;電路相對復雜,不利于系統(tǒng)的移植。
圖2 外部RAM擴展原理圖
可編程邏輯器件隨著微電子制造工藝的發(fā)展取得了長足的進步,現(xiàn)今已發(fā)展成為可以完成超大規(guī)模的復雜組合邏輯與時序邏輯的FPGA和CPLD。新一代的FPGA內(nèi)部集成塊RAM,甚至集成了中央處理器(CPU)或數(shù)字處理器(DSP)內(nèi)核[13]。
本文中采用的是cyclone IIIEP3C16Q240C8系列FPGA芯片,擁有M9K存儲塊,可配置成RAM、FIFO、ROM,支持單口、簡單雙口、真雙口操作模式。本文選擇簡單雙口模式,每個dual-RAM的存儲寬度最大值為288bit,最大深度為65536[14],經(jīng)過合理利用,完全可以滿足工業(yè)機器人的規(guī)劃運動指令存儲要求。FPGA內(nèi)部單個dual-RAM的配置模式如圖3所示。dual-RAM通過2套數(shù)據(jù)線、地址線和控制線分別與兩端的CPU相連,仲裁邏輯模塊選定對RAM訪問的CPU。
圖3 FPGA內(nèi)部dual-RAM的配置
多軸機器人規(guī)劃運動的指令,包含各軸的運動參數(shù),即要運動的軸的軸號、該軸的目標脈沖數(shù)、運動速度等[15]。本文中規(guī)劃運動指令的構(gòu)成如表1所示。
表1 規(guī)劃運動指令構(gòu)成
其中,幀頭和幀尾是在上位機和下位機通信中,用于幀校驗的,即如果下位機接收到的幀頭或幀尾與協(xié)議約定值不同,則說明該幀指令傳輸出錯,應該摒棄。軸選信號(axise_choose[3:0])標注了該幀指令是讓哪些軸運動,axise_choose[3]=1則1軸運動; axise_choose[2]=1則2軸運動;axise_choose[1]=1則3軸運動;axise_choose[0]=1則4軸運動。
多軸機器人控制指令具有軸多、軸選方式多、參數(shù)復雜的特點。例如筆者所在團隊研制的SCARA機器人,有4個軸,則該機器人具有24即16種軸選方式,規(guī)劃運動中上位機指令窗口如圖4所示。
圖4 規(guī)劃運動的上位機指令窗口
由圖可見:當一二軸聯(lián)動時,三四軸無需運動,其運動參數(shù)也可以視為無效,此時若將整條運動指令指節(jié)存入RAM,則會造成RAM容量的浪費。如何利用有限的片內(nèi)dual-RAM資源實現(xiàn)復雜的多軸指令存儲,是機器人規(guī)劃運動控制的一個難點。
筆者在實踐中提出了一種指令分軸存儲方法,即將各軸運動指令分別存入不同dual-RAM中,再增加一個dual-RAM用于存儲軸選信號,如表2所示。
表2 規(guī)劃運動指令分軸存儲
具體指令存取過程如圖5所示,在存儲各軸運動參數(shù)時,先判斷該指令中該軸是否需要運動,如果要運動,則存儲該條指令;如果該軸不運動,則該dual-RAM中不用存儲該條指令。
圖5 指令分軸儲存流程圖
如此一來,每個dual-RAM中的指令條數(shù)得以精簡,從而控制了對片內(nèi)Ram容量的需求,并且也有效地降低了FPGA資源耗用,從而提高了FPGA芯片運行速度。
提出了多軸機器人中規(guī)劃運動指令存儲的新方法,制作了多軸機器人系統(tǒng)。該存儲方法是基于FPGA內(nèi)部dual-RAM,先通過軸選判斷器,選擇出有效運動參數(shù),再按軸號分別存入各個dual-RAM。
實驗及測試結(jié)果表明:采用本文的方法,避免了外部RAM的擴展,從而精簡了指令存儲電路,增強了系統(tǒng)可移植性。
該視覺多軸機器人系統(tǒng)目前已成功應用于工廠上下料和碼垛作業(yè)中,系統(tǒng)運行穩(wěn)定,點重復精度達0.02 ms,水平聯(lián)動速度達到5.2 m/s。基于FPGA內(nèi)部dual-RAM的按軸存儲規(guī)劃運動指令方法在該機器人系統(tǒng)中的成功實現(xiàn),有效地降低了對多軸機器人存儲容量的迫切需求,有效簡化了控制電路,增強了系統(tǒng)可移植性。
[1]趙臣,王剛.我國工業(yè)機器人產(chǎn)業(yè)發(fā)展的現(xiàn)狀調(diào)研報告[J].機器人技術(shù)與應用,2009(2):8-12.
[2]張立勛,孫卓君,董九志,等.基于ATmega128和FPGA的六自由度機器人的直流伺服控制器設計[J].電子器件,2007,30 (5):1852-1855,1860.
[3]吳宏岐,郭夢宇.基于STC單片機的仿生六足機器人設計[J].電子器件,2013,36(1):128-131.
[4]樊繼壯,趙杰,龐明,等.基于MSC1210的三肢體機器人足部控制系統(tǒng)[J].電子器件,2007,30(1):270-273.
[5]畢勝.國內(nèi)外工業(yè)機器人的發(fā)展現(xiàn)狀[J].機械工程師,2008 (7):56-58.
[6]Asami Kenichi,Hagiwara Hayato.Development of Visual Navigation System for Patrol Service Robot[J].Communications in Computer and Information Science(S1865-0929),2011,206(4):267 -270.
[7]關(guān)珊珊,周潔敏.基于Xilinx FPGA的SPIFlash控制器設計與驗證[J].電子器件,2012(2):216-220.
[8]徐婉瑩,鄭永斌,黃新生.景象匹配預處理系統(tǒng)中基于FPGA的高速圖像采集和快速直方圖運算[J].傳感技術(shù)學報,2008,21(8):1388-1392.
[9]黃繼偉,黃惟一,王愛民,等.多感知機器人夾持器設計[J].傳感技術(shù)學報,2003,16(4):397-400.
[10]李東潔,邱江艷,尤波.一種機器人軌跡規(guī)劃的優(yōu)化算法[J].電機與控制學報,2009,13(1):123-125.
[11] 徐奇澎,郭裕順.FDTD算法的FPGA實現(xiàn)[J].電子器件,2012,35(2):236-239.
[12]陸燕,王超,李杰,曹鵬.一種基于流水線的MQ編碼器FPGA設計[J].電子器件,2007,30(4):1314-1317.
[13]馬毅瀟,段成林,趙錫芳,等.基于多總線的雙口RAM技術(shù)在機器人中的應用[J].計算機工程,1999,25(1):65-67.
[14]張偉,包烏日吐,閆玉娥.FPGA內(nèi)部塊RAM的應用技巧[J].微處理機,2006(6):20-23.
[15]Shao Xiaoyin,Sun Dong.Development of an FPGA-Based Motion Control ASIC for Robotic Manipulators[C]//IEEE Intelligent Control and Automation,Dalian,China,2006,2:8221-8225.
基于FPGA內(nèi)部Dual-RAM的多軸機器人指令存儲*
陳鎮(zhèn)龍,秦 娟,葉玉堂*,劉娟秀,葉 溯,張 峰,張 童
Method of Instruction Storage in Multi-Axis Robot Based on FPGA’s Dual-RAM*
CHEN Zhenlong,QIN Juan,YE Yutang*,LIU Juanxiu,YE Su,ZHANG Feng,ZHANG Tong
(School of Opto-Electronic Information,University of Electronic Science and Technology of China,Chengdu610054,China)
In order to solve the problem that the RAM of FPGA is limited in high-precisionmulti-axis robot system,a method of saving the programmed motion instruction is proposed.The effective motion parameters are selected out firstly,then stored in each FPGA’s internal dual-RAM according to the axis number.The experiment results indicated that with thismethod using the RAM of FPGA,the external expansion of RAM or Flash is avoided,thereby got the instruction storing circuit simplified,and the portability of system enhanced.The robot system runs blanking and stacking stably in the work piece,with a high precision of 0.02 mm,and speed of 5.2 m/s.
multi-axis robot;instruction storage;dual-RAM;programmed motion
10.3969/j.issn.1005-9490.2013.06.026
TP241 文獻標識碼:A 文章編號:1005-9490(2013)06-0869-03
項目來源:國家自然科學基金項目(61205004);粵港招標關(guān)鍵領(lǐng)域重點突破項目(w0510116);粵港招標關(guān)鍵領(lǐng)域重點突破項目(w0511206);總裝預研基金(9140A01020507DZ0215);兵器集團項目(w0511142)
2013-04-10修改日期:2013-05-07
EEACC:7250
陳鎮(zhèn)龍(1982-),男,漢族,重慶巫溪人,博士研究生在讀,2007年于電子科技大學獲得碩士學位,現(xiàn)為電子科技大學光電信息學院博士研究生,主要從事機器視覺、光電測控及儀器研究,czlong008@163.com;
葉玉堂(1946-),男,漢族,重慶忠縣人,博士生導師,教授,主要研究方向為光電測控及儀器、單片光電集成,ytye@uestc.edu.cn。