基于FPGA内部Dual-RAM的多轴机器人指令存储
2013-09-27电子科技大学光电信息学院成都610054
(电子科技大学光电信息学院,成都610054)
(电子科技大学光电信息学院,成都610054)
为了解决高精度多轴机器人控制系统中FPGA块RAM容量有限的问题,提出了一种保存规划运动指令的方法。利用FPGA块RAM生成Dual-RAM,通过轴选判断器选择出有效运动参数,再按轴号分别存入各Dual-RAM。实验结果表明:采用该方法,直接使用FPGA内部RAM,避免了外部RAM扩展,从而精简了指令存储电路,增强了系统可移植性。该机器人系统目前已成功应用于工件上下料作业,系统运行稳定,点重复精度达0.02 mm,水平联动速度达到5.2 m/s。
多轴机器人;指令存储;dual-RAM;规划运动
多轴机器人的研制一直是国内、外学者及产业界关注的重点领域[1-4],由于多轴机器人的控制包括许多自成一体的研究领域,如计算机视觉、运动学、动力学、控制理论等,所涉及到的研究难点包括位姿识别、精密机械设计、轨迹规划和插补、复杂指令存储等诸多难题,迄今为止,核心技术仍然只被德国KUKA、瑞典ABB等少数国外研究团队掌握。
多轴机器人的运动控制类型包括归零、规划运动和示教器控制等,其中,规划运动是工业机器人作业时最主要的运动控制方式[5]。多轴机器人的规划运动是指由上位机预先计算出机器人各轴的运动轨迹,并将机器人轴号、运动脉冲数、运动速度等参数信息以指令的方式发送给下位机,下位机存储运动指令,按设定条件产生PWM波[6]。
本文在制作多轴机器人的基础上,对规划运动指令的存储方法进行多种尝试和研究。由于指令数据量大,通常的方法是在 FPGA外部扩展 RAM、FLASH等存储芯片[7-9],导致控制板电路复杂,不利于系统移植。提出了基于FPGA块RAM的规划运动指令存储方法,从而精简了指令存储电路,并且节省了对RAM容量的占用率。
1 多轴机器人组成
1.1 多轴机器人本体组成
笔者所在科研团队研制的多轴机器人有4个自由度。外置相机用于实时采集工件的位置,实现视觉导航。机器人的1、2轴水平方向运动,3轴垂直方向运动,4轴水平360°旋转,4个轴配合可以实现物体搬运、码垛、喷涂等多种作业该系统机器人本体如图1所示。
1.2 高精度多轴机器人控制系统构成
该多轴机器人系统采用PC+FPGA控制方式。PC作为系统的上位机,负责运动类型控制、轨迹规划和人机交互等;FPGA作为系统的下位机,负责机器人位姿识别、与上位机通信、以及PWM发波控制等[10]。上位机和下位机通过串口连接,以指令的方式交换信息。
图1 多轴机器人本体
2 基于FPGA块RAM的指令存储
传统的存储方法一般采用外部扩展RAM或FLASH等存储芯片,外部RAM扩展原理如图2所示。外部RAM的优势在于存储容量更大,但是由于RAM与CPU各自独立,数据读写需要地址译码等[11-12],导致读写耗时大,不满足机器人运动的实时性要求;电路相对复杂,不利于系统的移植。
图2 外部RAM扩展原理图
可编程逻辑器件随着微电子制造工艺的发展取得了长足的进步,现今已发展成为可以完成超大规模的复杂组合逻辑与时序逻辑的FPGA和CPLD。新一代的FPGA内部集成块RAM,甚至集成了中央处理器(CPU)或数字处理器(DSP)内核[13]。
本文中采用的是cyclone IIIEP3C16Q240C8系列FPGA芯片,拥有M9K存储块,可配置成RAM、FIFO、ROM,支持单口、简单双口、真双口操作模式。本文选择简单双口模式,每个dual-RAM的存储宽度最大值为288bit,最大深度为65536[14],经过合理利用,完全可以满足工业机器人的规划运动指令存储要求。FPGA内部单个dual-RAM的配置模式如图3所示。dual-RAM通过2套数据线、地址线和控制线分别与两端的CPU相连,仲裁逻辑模块选定对RAM访问的CPU。
图3 FPGA内部dual-RAM的配置
3 规划运动指令的分轴存储
3.1 多轴机器人规划运动指令的构成
多轴机器人规划运动的指令,包含各轴的运动参数,即要运动的轴的轴号、该轴的目标脉冲数、运动速度等[15]。本文中规划运动指令的构成如表1所示。
表1 规划运动指令构成
其中,帧头和帧尾是在上位机和下位机通信中,用于帧校验的,即如果下位机接收到的帧头或帧尾与协议约定值不同,则说明该帧指令传输出错,应该摒弃。轴选信号(axise_choose[3:0])标注了该帧指令是让哪些轴运动,axise_choose[3]=1则1轴运动; axise_choose[2]=1则2轴运动;axise_choose[1]=1则3轴运动;axise_choose[0]=1则4轴运动。
3.2 机器人规划运动指令的分轴存储
多轴机器人控制指令具有轴多、轴选方式多、参数复杂的特点。例如笔者所在团队研制的SCARA机器人,有4个轴,则该机器人具有24即16种轴选方式,规划运动中上位机指令窗口如图4所示。
图4 规划运动的上位机指令窗口
由图可见:当一二轴联动时,三四轴无需运动,其运动参数也可以视为无效,此时若将整条运动指令指节存入RAM,则会造成RAM容量的浪费。如何利用有限的片内dual-RAM资源实现复杂的多轴指令存储,是机器人规划运动控制的一个难点。
笔者在实践中提出了一种指令分轴存储方法,即将各轴运动指令分别存入不同dual-RAM中,再增加一个dual-RAM用于存储轴选信号,如表2所示。
表2 规划运动指令分轴存储
具体指令存取过程如图5所示,在存储各轴运动参数时,先判断该指令中该轴是否需要运动,如果要运动,则存储该条指令;如果该轴不运动,则该dual-RAM中不用存储该条指令。
图5 指令分轴储存流程图
如此一来,每个dual-RAM中的指令条数得以精简,从而控制了对片内Ram容量的需求,并且也有效地降低了FPGA资源耗用,从而提高了FPGA芯片运行速度。
4 总结
提出了多轴机器人中规划运动指令存储的新方法,制作了多轴机器人系统。该存储方法是基于FPGA内部dual-RAM,先通过轴选判断器,选择出有效运动参数,再按轴号分别存入各个dual-RAM。
实验及测试结果表明:采用本文的方法,避免了外部RAM的扩展,从而精简了指令存储电路,增强了系统可移植性。
该视觉多轴机器人系统目前已成功应用于工厂上下料和码垛作业中,系统运行稳定,点重复精度达0.02 ms,水平联动速度达到5.2 m/s。基于FPGA内部dual-RAM的按轴存储规划运动指令方法在该机器人系统中的成功实现,有效地降低了对多轴机器人存储容量的迫切需求,有效简化了控制电路,增强了系统可移植性。
[1]赵臣,王刚.我国工业机器人产业发展的现状调研报告[J].机器人技术与应用,2009(2):8-12.
[2]张立勋,孙卓君,董九志,等.基于ATmega128和FPGA的六自由度机器人的直流伺服控制器设计[J].电子器件,2007,30 (5):1852-1855,1860.
[3]吴宏岐,郭梦宇.基于STC单片机的仿生六足机器人设计[J].电子器件,2013,36(1):128-131.
[4]樊继壮,赵杰,庞明,等.基于MSC1210的三肢体机器人足部控制系统[J].电子器件,2007,30(1):270-273.
[5]毕胜.国内外工业机器人的发展现状[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]关珊珊,周洁敏.基于Xilinx FPGA的SPIFlash控制器设计与验证[J].电子器件,2012(2):216-220.
[8]徐婉莹,郑永斌,黄新生.景象匹配预处理系统中基于FPGA的高速图像采集和快速直方图运算[J].传感技术学报,2008,21(8):1388-1392.
[9]黄继伟,黄惟一,王爱民,等.多感知机器人夹持器设计[J].传感技术学报,2003,16(4):397-400.
[10]李东洁,邱江艳,尤波.一种机器人轨迹规划的优化算法[J].电机与控制学报,2009,13(1):123-125.
[11] 徐奇澎,郭裕顺.FDTD算法的FPGA实现[J].电子器件,2012,35(2):236-239.
[12]陆燕,王超,李杰,曹鹏.一种基于流水线的MQ编码器FPGA设计[J].电子器件,2007,30(4):1314-1317.
[13]马毅潇,段成林,赵锡芳,等.基于多总线的双口RAM技术在机器人中的应用[J].计算机工程,1999,25(1):65-67.
[14]张伟,包乌日吐,闫玉娥.FPGA内部块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内部Dual-RAM的多轴机器人指令存储*
陈镇龙,秦 娟,叶玉堂*,刘娟秀,叶 溯,张 峰,张 童
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);粤港招标关键领域重点突破项目(w0510116);粤港招标关键领域重点突破项目(w0511206);总装预研基金(9140A01020507DZ0215);兵器集团项目(w0511142)
2013-04-10修改日期:2013-05-07
EEACC:7250
陈镇龙(1982-),男,汉族,重庆巫溪人,博士研究生在读,2007年于电子科技大学获得硕士学位,现为电子科技大学光电信息学院博士研究生,主要从事机器视觉、光电测控及仪器研究,czlong008@163.com;
叶玉堂(1946-),男,汉族,重庆忠县人,博士生导师,教授,主要研究方向为光电测控及仪器、单片光电集成,ytye@uestc.edu.cn。