基于DSP仿人机器人关节控制器设计

2010-05-13 09:17单琳娜,姜重然,陈文平
现代电子技术 2009年20期

单琳娜,姜重然,陈文平

摘 要:在具有32自由度仿人机器人中,为了每一个关节动作准确,可以采用分布式控制的体系结构。这里采用基于RS 485总线的TMS320F240DSP作为分布式关节控制器,非常适合于在机械臂内的狭小空间内安装,并进行增量码盘和速度检测电路的设计以及相应的软件设计等,完成了6个自由度机械臂分布式关节控制器设计,能够满足仿人机器人技术与系统的运动轨迹的要求。

关键词:仿人机器人;关节控制器;分布式控制系统;DSP

中图分类号:TP24文献标识码:A

文章编号:1004-373X(2009)20-029-03

Design about Joint Controller of Humanoid Robot Based on DSP

SHAN Linna,JIANG Chongran,CHEN Wenping

(School of Information and Electronic Technology,Jiamusi University,Jiamusi,154007,China)

Abstract:Distributed control system structure could be adopted in humanoid rodot with 32 degrees of freedom to ensure motion accuracy of each joint.TMS320F240DSP based on RS 485 bus is adopted as the joint controller,which is quite suit to be installed in the narrow space inner mechanical arms.The circuits of incremental discs and speed detection together with their respective applications are designed.The accomplishment of distributed controller for 6 degrees of freedom mechanical arms fulfills the trajectory requirement of humanoid robot qualification and the system.

Keywords:humanoid robot;joint controller;distributed control system;DSP

0 引 言

仿人机器人具有可移动性,具有很多的自由度,包括双臂、颈部、腰部、双腿等,可以完成更复杂的任务,这些关节要连接在一起,进行统一的协调控制,就对控制系统的可靠性、实时性提出了更高的要求[1] ,以往采用的集中控制系统,控制功能高度集中,局部的故障就可能造成系统的整体失效,降低了系统的可靠性和稳定性,因此考虑采用分布式的控制系统来实现系统的控制功能[2,3]。

考虑到机械臂控制系统控制算法的计算量以及多轴协调控制等问题,采用基于RS 485总线的分布式控制的体系结构,见图1所示。运动规划算法由主计算机来实现[4],同时主计算机还将通过RS 485总线与各关节控制器通信,负责各关节控制器的协调工作。每个关节控制器和一台电机、驱动器、检测反馈装置等构成一个位置伺服系统,负责机械臂某一个关节变量的具体控制任务[5-7]。

图1 分布式控制系统结构框图

1 仿人机器人分布式控制器的硬件设计

1.1 关节控制器硬件电路设计

该设计选用TI公司的2000系列DSP TMS320F240作为控制单元。其时钟频率可达20 MHz,具有高速的处理能力,片内资源丰富,特别是它特有的内置事件管理器模块,使其在电机控制领域具有非常广泛的应用。该芯片本身尺寸很小,需要外扩的资源不多,节省了电路板的空间。关节控制器硬件电路原理图框图如图2所示[8,9]。

1.2 电机驱动器的接口电路

驱动器的控制模式可以分为两种:速度控制模式和位置控制模式(通常用电位器作为电机的位置传感器)。这里采用它的速度控制模式,输入的指令信号是0~10 V的模拟量。因此需要用D/A转换电路,把DSP输出的数字量给定转变为模拟信号,电路图如图3所示。DAC7621为12 b并行输入的D/A转换器,它内置参考源,输出范围:0~4.095 V。它的12位输入接DSP数据总线中的D0到D11。它的片选输入管脚可以接DSP的I/O控制线/IS。为了得到0~10 V的模拟信号,还要利用LM358中的一片运算放大器构成的同相比例放大电路,把0~4.095 V的信号放大2.5倍。

图2 关节控制器硬件电路原理图框图

图3 D/A转换以及同相比例放大电路

如果驱动和控制器不进行隔离,尖峰将破坏控制器电路中的器件,例如RAM。因此,设计了基于线形光耦HCNR201的隔离电路,如图4所示。

图4 基于线形光耦的隔离电路

线形光耦HCNR201只能起到隔离电流的关系,且输入电流和输出电流呈线性关系。U6B 是图3芯片LM358中的另外一片运算放大器,它将输入0~10 V电压转换成20 mA以内的电流信号,输入线形光耦HCNR201。HCNR201输出电流再经过一个由单电源轨到轨运放AD8519构成的电压跟随器转换成0~10 V电压信号,作为驱动器的模拟信号输入。显然,HCNR201两侧电路应采用不同的电源和地。LM358中的两片运算放大器采用控制器输入的12 V电源供电,而AD8519则采用驱动器输入端提供的10 V电压供电。

1.3 增量式编码器信号处理电路

增量式编码器信号处理电路如图5所示。J8是MR编码器的信号输入接口,采用AM26C32把MR编码器输出三个通道的RS 422差分信号转换成TTL电平,得到A,B,Z三路信号。

图5 增量式编码器信号处理电路

1.4 RS 485总线通信电路

RS 485总线是一种通信总线,TMS320F240 DSP芯片本身不具备RS 485总线接口,采用两个485通信芯片MAX485可以的把TMS320F240的串口RXD和TXD的TTL电平转换为RS 485电平, TMS320F240 DSP的RXD和TXD引脚分别连接到第一片485通信芯片RO和第2片485通信芯片DI的引脚。TMS320F240 DSP的SPISIMO和SPISOMI连接到MAX485的使能引脚RE,用于控制TMS320F240 DSP芯片的数据发送口挂接到总线上或和总线分离,电路如图6所示。

图6 2个MAX485芯片与

TMS320F240 DSP芯片接口电路

2 仿人机器人控制器的软件设计

2.1 关节控制器主程序

主程序的流程见图7。

寄存器初始化操作主要包括:设置CPU CLK为外部晶振的2倍频,即16 MHz;设置串口通信波特率为:38.4 Kb/s;设置定时器/计数器相关寄存器;设置QEP电路单元相关寄存器;设置中断控制寄存器等[10]。

2.2 串口数据接收中断服务程序

串口数据接收中断服务程序流程图见图8。在中断服务程序中,读取数据接收寄存器中的数据,存入数据接收区,而并不做任何进一步分析和处理。数据接收区是内存中暂时存放数据的区域,当存满一条完整指令信息后,由主程序分析和处理。

图7 主程序流程图

图8 串口数据接收中断服务程序流程图

2.3 控制周期定时中断服务服务程序

控制周期2 ms定时中断服务程序的流程见图9。定时器/计数器为位置环和速度环控制周期定时2 ms,每2 ms进入定时中断服务程序1次,读取位置反馈值和速度反馈值,进行积分分离PID运算,最后输出给D/A转换成模拟量。

每一个插补周期(50 ms),主计算机向关节控制器发送1次运动规划后的目标位置。该目标位置是以增量编码器信号四倍频后的脉冲数为单位,以前一次的目标位置作为脉冲计数的零点。因此,关节控制器在读取新的目标位置后,也应该以前一次的目标位置作为新的增量码盘脉冲计数零点,测量实际的电机位置,与新的目标位置比较、运算。主计算机根据需要可以查询当前电机运行的实际位置,关节控制器返回的位置则是关节角的绝对位置,单位是0.1°。

图9 控制周期定时中断服务服务程序流程图

3 结 语

仿人机器人机械臂分布式关节控制器研究与设计,对于提高仿人机器人总体性能与人机交互能力,具有重要科研价值与现实意义。 机械臂分布式控制器的高度实时性、容错性、可靠性、扩充性[11],为仿人机器人系统提供了先进的网络体系结构与通信标准,实践表明应用前景极为广阔。

参考文献

[1]蔡自兴.机器人学[M].北京:清华大学出版社,2000.

[2]孙富春,朱纪洪,刘国栋.机器人学导论分析、系统及应用[M].北京:电子工业出版社,2004.

[3]张V,黄强,李光日.具有7自由度和双球型髋关节的仿人机器人下肢运动分析与规划[J].机器人,2007,29(7):558-568.

[4]赵晓军,黄强,彭朝琴.基于人体运动的仿人型机器人动作的运动学匹配[J].机器人,2005,27(7):358-379.

[5]Jean-Pierre,Thomesse.Fieldbus Technology in Industrial Automation[J].Industrial Electronics,2005,3(6):1 073-1 174.

[6]Christian Diedrich,Rene Simon,Matthias Riedl.Engineering of Distributed Control Systems[J].Advanced Robotics,2000,2(11):661-662.

[7]Dong Qian,Xie Jianying.Fieldbus Network Implementation Based on RS 485[J].IEEE Trans.on Robotics and Automation,2002,4(6):27-28.

[8]汪安民,陈明欣,朱明.TMS320C54xx DSP实用技术[M].北京:清华大学出版社,2007.

[9]刘鹏飞,韩九强,周挺.基于多DSP的六自由度机器人伺服控制系统研究[J].微电子学与计算机,2005,22(8):5-7.

[10]苏小红,陈慧鹏,孙志刚.C语言大学实用教程[M].北京:电子工业出版社,2007.

[11]Zhang Z,Huang Q,Jin Q,et al.Kinematics Analysis of a Humanoid Leg with Redundancy Freedom[A].Proceedings of the IEEE International Conference on Mechatronics and Automation[C].Piscataway,NJ,USA:IEEE,2006:1 080-1 085.

[12]陶龙,张国良,孙大卫.基于PC/104与单片机的仿人机器人控制系统设计[J].现代电子技术,2009,32(2):145-147.