基于基于DSP和和FPGA的多轴运动控制系统设计
的多轴运动控制系统设计
传统的机器人运动控制器都是采用PC+运动控制卡的方法,成本较高。提出了一种基于DSP和FPGA的通用型运
动控制系统,大大降低了系统成本。利用FPGA内部生成的双端口RAM作为DSP与上位机之间的缓冲区,同时
采取串行转并行的策略,简化了系统的布线。在DSP上实现了直线与圆弧插补算法以及逆运动学的求解,并进
行了仿真。仿真结果表明,系统能够按照预定轨迹运动,同时各轴的速度变化也较平稳。
工业机器人的控制系统是其核心主体,控制算法的好坏直接关系到整个机器人的运动效果。最早的机器人多采用封闭式的
结构,即每个厂家针对自己的机器人开发了专用的控制系统,且系统的接口没有开放给用户,不具有通用性,给以后的扩展和
升级造成了很大的困难[1]。因此,如何使机器人控制系统能够很方便地进行重构,在从一套控制系统换成另一套控制系统
时,尽可能少做改动[2],已经成为目前一个研究的热门方向。对于这种开放式系统,目前比较主流的构架是PC+
1 系统硬件设计
系统硬件设计
1.1 总体架构
总体架构
系统设计的难点在于逆运动学求解和插补算法的实时处理。为此,系统选用了具有快速计算能力的DSP处理芯片
TMS320F28335作为核心单元。该处理器是TMS320C28X系列浮点DSP控制器,具有32位浮点处理单元,相对于单片机和
ARM而言,在处理器结构和指令系统方面都针对数学运算进行了优化,特别适合于机器人复杂的控制算法。
另外,运动控制系统还需要连接伺服控制器来控制各关节的电机,以实现机器人的高精度定位。一般伺服控制器都提供了
大量的I/O信号,如速度控制信号、异常报警信号、禁止信号等。通常,机器人的每个轴都需要单独的伺服控制器,系统必须
具有数百路I/O口来控制电机。考虑到DSP的I/O口数量十分有限,系统搭载了一块FPGA进行底层的逻辑操作。这里采用的是
Altera公司Cyclone II系列的EP2C5Q208,该芯片能够提供142路的I/O口,内部还有大量的逻辑单元,可以满足系统要求。针
对这种构思,给出系统的原理框图如图1所示。
与上位机(ARM)数据的交换
)数据的交换
1.3 DSP与上位机(
运动控制系统的指令是由ARM给出的,需要一种快速的数据交换机制。常规的通信方法有两种。第一种是ARM通过串行总
线的方式直接将数据传送给DSP。由于机器人控制指令包含空间位置和姿态,一般都较长,如果采用直接传输的方式,其准
确性和同步性很难保证。第二种是采用
本系统采用的方案是利用FPGA来存储机器人运动控制指令。EP2C5Q208芯片内部存在大量的M4K内存单元,利用Altera
的IP核可以将这些内存单元配置成双端口RAM。同时,利用FPGA强大的逻辑能力,可以实现串行与并行之间的转换。
1.4 伺服驱动器控制电路
伺服驱动器控制电路
对于
有了前三轴的角度,可以很方便地计算后三轴的转角[4]。由于TMS320F28335配备了支持浮点的寄存器和流水线,所以所
有的运算都可以在浮点环境下进行。只要利用TI自带的浮点库,即可在DSP上实现机器人的逆运动学求解。经过实际测算,由
DSP求逆解计算所引起的末端轨迹偏差在0.1 mm以内,精度可以满足要求。
2.2 插补算法
插补算法
本系统主要完成直线和圆弧插补功能。即利用曲线上两端点(直线)或三点(圆)的位姿矩阵,针对运行速度和插补周
期,得到运行路径上各点的姿态位置。
具体的算法是利用几何的方法直接求取曲线上点的坐标作为该点机器人末端的位置。末端姿态则采用线性化的方法,把曲
线首端和尾端两点的姿态向量差根据当前速度均匀地匹配到插补的每一步[5]。速度控制采用S曲线加减速的方法,能够使速度
和加速度曲线都平滑过渡,减小机械冲击[6]。在两条曲线交界处,速度的方向会有瞬变,进而产生很大的加速度,对结构造
成冲击。对此,每次需要读取两条指令,通过判断两条曲线的夹角来计算得到拐角处的速度。若设系统最大加速度为Amax,
则有如下计算公式:
可见该运动控制器已经能够很好地实现简单路径以及其组合的行走,并可以实现两段路径之间的平滑过渡。此时各关节的
角加速度如图5所示。
由此可见,系统能够按照预定的轨迹运行,并且各轴的关节速度都平稳变化。利用CCS软件还可以观察执行一次插补所需
要的时间。实际测量得到的结果是:直线插补部分消耗时钟周期15 761个,圆弧插补部分则需要17 591个时钟周期。由于
DSP的时钟频率为150 MHz,因此最长需要的插补时间是117 μs,小于0.2 ms。而若采用一般的PC+运动控制卡的方法,
每一次插补所需时间则需要分成两部分:一部分是插补算法本身所消耗的时间,另一部分是从上位机通过总线传送给DSP的
时间。这两项都需要大量的时间。而且由于带Windows操作系统的PC机实现精确计时的能力是很弱的,因此一般的做法都是
预先计算出多步的数据,然后一次性地放在运动控制卡的缓存中,让运动控制卡定时取数。这样又会给速度的实时控制带来很
大的困难。
因此,本系统所采用的构架利用DSP进行插补运算,不但节约了缓存设备容量,而且不需要中间的传输环节,对系统的实
时性有很大的提高。
本系统以浮点数DSP芯片TMS320F28335为核心,以EP2C5Q208 FPGA为辅助器件,实现了多轴机器人的运动控制器,整
个系统具有小型化、成本低、实时性好的特点,有很大的实际意义。
参考文献
参考文献
[1] 谈世哲,梅志千,杨汝清.基于DSP的工业机器人控制器的设计与实现[J].机器人,2002,24(2):134-139.
[2] 赵春红,秦现生,唐虹.基于PC的开放式数控系统研究[J].机械科学与技术,2005,24(9):1108-1113.
[3] 蔡自兴.机器人学基础[M].北京:机械工业出版社,2009.
[4] SPONG M W,HUTCHINSON S,VIDYASAGAR M.Robot dynamics and ntrol[M].Wiley,2005:85-92.
[5] 叶伯生.机器人空间三点圆弧功能的实现[J].华中科技大学学报,2007,5(8):5-8.
[6] 张得礼,周来水.数控加工运动的平滑处理[J].航空学报,2006,1(1):125-130.