基于DSP仿人机器人关节控制器设计
扫描二维码
随时随地手机看文章
仿人机器人具有可移动性,具有很多的自由度,包括双臂、颈部、腰部、双腿等,可以完成更复杂的任务,这些关节要连接在一起,进行统一的协调控制,就对控制系统的可靠性、实时性提出了更高的要求,以往采用的集中控制系统,控制功能高度集中。局部的故障就可能造成系统的整体失效,降低了系统的可靠性和稳定性,因此考虑采用分布式的控制系统来实现系统的控制功能。
考虑到机械臂控制系统控制算法的计算量以及多轴协调控制等问题,采用基于RS 485总线的分布式控制的体系结构,见图1所示。运动规划算法由主计算机来实现,同时主计算机还将通过RS 485总线与各关节控制器通信,负责各关节控制器的协调工作。每个关节控制器和一台电机、驱动器、检测反馈装置等构成一个位置伺服系统,负责机械臂某一个关节变量的具体控制任务。
1 仿人机器人分布式控制器的硬件设计
1.1 关节控制器硬件电路设计
该设计选用TI公司的2000系列DSPTMS320F240作为控制单元。其时钟频率可达20 MHz,具有高速的处理能力,片内资源丰富,特别是它特有的内置事件管理器模块,使其在电机控制领域具有非常广泛的应用。该芯片本身尺寸很小,需要外扩的资源不多,节省了电路板的空间。关节控制器硬件电路原理图框图如图2所示。
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倍。
如果驱动和控制器不进行隔离,尖峰将破坏控制器电路中的器件,例如RAM。因此,设计了基于线形光耦HCNR201的隔离电路,如图4所示。
线形光耦HCNR201只能起到隔离电流的关系,且输入电流和输出电流呈线性关系。U6B是图3芯片LM358中的另外一片运算放大器,它将输入0~10 V电压转换成20 mA以内的电流信号,输入线形光耦HC-NR201。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三路信号。
1.4 RS 485总线通信电路
RS 485总线是一种通信总线,TMS320F240 DSP芯片本身不具备RS 485总线接口,采用两个485通信芯片MAX485可以的把TMS320F240的串口RXD和TXD的TTL电平转换为RS 485电平,TMS320F240DSP的RXD和TXD引脚分别连接到第一片485通信芯片RO和第2片485通信芯片DI的引脚。TMS320F240 DSP 的SPISIMO和SPISOMI连接到MAX485的使能引脚RE,用于控制TMS320F240 DSP芯片的数据发送口挂接到总线上或和总线分离,电路如图6所示。
2 仿人机器人控制器的软件设计
2.1 关节控制器主程序
主程序的流程见图7。
寄存器初始化操作主要包括:设置CPU CLK为外部晶振的2倍频,即16 MHz;设置串口通信波特率为:38.4 Kb/s;设置定时器/计数器相关寄存器;设置QEP电路单元相关寄存器;设置中断控制寄存器等。
2.2 串口数据接收中断服务程序
串口数据接收中断服务程序流程图见图8。在中断服务程序中,读取数据接收寄存器中的数据,存入数据接收区,而并不做任何进一步分析和处理。数据接收区是内存中暂时存放数据的区域,当存满一条完整指令信息后,由主程序分析和处理。
2.3 控制周期定时中断服务服务程序
控制周期2 ms定时中断服务程序的流程见图9。定时器/计数器为位置环和速度环控制周期定时2 ms,每2 ms进入定时中断服务程序1次,读取位置反馈值和速度反馈值,进行积分分离PID运算,最后输出给D/A转换成模拟量。
每一个插补周期(50 ms),主计算机向关节控制器发送1次运动规划后的目标位置。该目标位置是以增量编码器信号四倍频后的脉冲数为单位,以前一次的目标位置作为脉冲计数的零点。因此,关节控制器在读取新的目标位置后,也应该以前一次的目标位置作为新的增量码盘脉冲计数零点,测量实际的电机位置,与新的目标位置比较、运算。主计算机根据需要可以查询当前电机运行的实际位置,关节控制器返回的位置则是关节角的绝对位置,单位是0.1°。
3 结 语
仿人机器人机械臂分布式关节控制器研究与设计,对于提高仿人机器人总体性能与人机交互能力,具有重要科研价值与现实意义。机械臂分布式控制器的高度实时性、容错性、可靠性、扩充性,为仿人机器人系统提供了先进的网络体系结构与通信标准,实践表明应用前景极为广阔。