新闻  |   论坛  |   博客  |   在线研讨会
基于DSP的双足机器人运动控制系统设计
hikesoso2010 | 2010-07-23 17:33:45    阅读:731   发布文章

嵌入式/Linux/ARM/DSP/FPGA......推荐资源视频教程,海科资源 http://www.haike-source.com/ 

近年来,仿人机器人一直是自动控制领域研究的热点。在模仿人类进行迈步行走时,由于仿人机器人的重心经常要处于中心线以外的区域,使得它的身体很难保持站姿平衡,能够稳定地实现双足行走是仿人机器人研究的重点也是难点。人类需要大脑和肢体的相互配合来协调动作,机器人需要的则是运动控制器和驱动装置的强大支持,尤其是运动控制器,需要有高效率的芯片为基础,才能最迅速地采集数据、完成计算和发送指令。在本次设计中机器人关节使用的是大功率三相无刷直流电机,控制器采用TMS320F2812芯片,它是TI公司推出的一款针对控制领域做优化配置的数字信号处理器,器件上集成了多种先进的外设,为电机高速度和高精度控制提供了良好的平台。
 
  1 系统概述
  双足机器人每条腿设有5个自由度,这样既可以实现基本的步行功能,又尽可能的简化了控制变量,系统整体结构如图1所示,L1~L5分别对应左腿髋侧向、髋前向、膝前向、踝前向、踝侧向关节电机,R1~R5对应右腿。考虑到成本因素和驱动性能,选用Maxon的EC-max系列三相无刷直流电机来驱动关节活动,其中1号和5号电机选用EC-max35型,其他均为EC-max30型。受安装空间所限,每条腿的运动控制器都为独立的个体,各运动控制器通过主控计算机进行协调控制并可基于运动指令单独完成动作,类似于人类反射弧的原理,减轻主控计算机的工作量,加快反应速度,主控计算机和运动控制器之间通过CAN总线来传递数据。
  机器人双足步行时,主控计算机根据运动周期向底层运动控制器发送运行和停止等指令,完成对行走状态的监控和数据运算。单个运动控制器由DSP处理和电机控制两部分组成:DSP处理电路负责与主控计算机和传感器之间交换各类信息、分析接收到的数据并运算输出相应关节电机的控制信号;电机控制电路根据控制信号驱动相应的电机动作,达到要求的速度和角度,并对光电编码器信号进行处理,将执行结果反馈给DSP形成闭环控制,保证执行的精度。
 
  数据处理器选用的是TMS320F2812,它拥有基于C/C++高效32位DSP内核,提高了运算的精度;时钟频率高达150 MHz,增强了系统的处理能力;集成了128 KB的FLASH存储器、4 KB的引导ROM、数学运算表以及2 KB的OTP ROM,改善了芯片应用的灵活性;两个事件管理器模块为电机及功率变换控制提供了良好的控制功能;16通道高性能12位ADC单元提供了两个采样保持电路,可以实现双通道信号同步采样,适合整个运动控制器的开发需求,其代码和指令与F24x系列完全兼容,更是保证了项目开发和产品设计的可延续性。
 
  2 电机调速原理
  系统用PWM波形给出无刷直流电机的转速信息,即利用电路一周期内的占空比变化,达到平均电压值的改变,以对应电机不同的速度值。
 
  在TMS320F2812中可以通过配置定时周期寄存器的周期值和比较单元的比较值来产生PWM,周期值用于产生PWM波的频率,比较值用于产生PWM波的脉宽,改变比较值可以改变PWM波的占空比,改变周期值可以改变PWM波的频率。以事件管理器A为例,单路PWM信号的产生过程如下:
 
  定时器1作为产生PWM信号的时基,通过控制寄存器T1CON和周期寄存器TlPR设置时钟周期,通过寄存器COMCONA设置比较单元的各个参数,产生出三角波信号,在寄存器CMPRl和ACTRA中分别设置比较值和比较输出方式,设定的比较值实时与三角波信号比较,得到相应占空比的PWM信号。将定时器计数器T1CNT设置为连续增计数方式时,产生非对称PWM波形,设定为连续增减计数方式时,可以得到对称的PWM波形。
 
  图2所示是对称PWM波形产生的原理:若PWM输出为高电平有效,则当三角波的当前值小于比较值时输出为低电平,当三角波的当前值大于比较值时输出为高电平;低电平有效时,则反之。
  如果在寄存器DBTCONx中设置了死区时间值,则相应事件管理器所有PWM输出通道使用同一个死区值。由于加入了死区,PWM波高电平脉冲的宽度减少了一个死区时间,但是周期没有变化,所以高有效和低有效的PWM波形的占空比可分别用式(1)和(2)来计算。
  通过调节占空比,可以调节输出电压,用这种无级连续调节的输出电压可以给出速度信息,因此可以通过调整PWM信号有效电平的宽度达到控制转速的目的。
 
  3 硬件设计
  整个硬件电路包括DSP芯片TMS320F2812、电源、JTAG仿真接口、通讯、RAM、PWM、A/D、I/O扩展、备用端口、电机驱动和光电信号处理等模块,其控制系统结构如图3所示。
  双足机器人总电源采用24 V直流电源,为了满足DSP及外围电路的需要,需将电源转换成5 V,3.3 V和1.8 V。首先使用DC-DC变换器将24 V转换成5 V,再选用TPS767D318电源转换芯片将5 V转换成1.8 V和3.3 V。该芯片专门针对DSP设备提供稳压电源,为双电源输出,每路电源的最大输出电流为1 A,此外该芯片的电压漂移非常低,在最大输出电流为1 A的情况下为350 mV,每路输出还有过热保护、复位和监控输出电压等功能,能满足系统对电源性能的要求。
 
    系统特别留有JTAG接口电路,使控制器可以通过TDS510仿真器连接到计算机,其仿真信号采用JTAG标准IEEEll49.1,使用双列14脚的插座,并将DSP上的EMU0和EMU1上拉连接至Vcc。
 
  TMS320F2812自身集成CAN总线的控制模块,所以在外围电路中加入CAN总线收发器SN65HVD251D即可实现DSP与CAN总线的通信功能。为了确保在CAN总线传输信号的完整性,设计时在CAN总线的两根传输线之间加上150 Ω的电阻进行阻抗匹配,可以提高CAN总线传输信号的精度。
 
  利用XINTF的区域O和区域1扩展一块存储容量为(64K×16)b的RAM存储器IS61LV6416-10T。其数据存取时间为10 ns,能满足高速运行的需要,工作电压为3.3 V,与DSP工作电压一致,无需电平转换电路。
 
  此外,DSP控制系统中的I/0端口电压绝大部分为3.3 V,而外部信号一般为5 V,因此需要将外部5 V信号转换为符合DSP芯片要求的3.3 V信号,系统使用总线驱动器74LVX4245进行电平转换。
 
  电机驱动电路采用全桥驱动三相无刷直流电机的控制方式,由于要独立控制5个电机,系统需按照前面的原理由DSP事件管理器生成PWM,并用其波形占空比给出转速信息,该信息结合转向、制动等信号通过控制电路转换后进行电机的调速,这里使用三相无刷直流电机控制器MC33035。驱动电机时,MC33035的输出信号施加到三相桥功率电路MPM3003上,决定功率开关器件开关频度及换流器换相时机,使其产生出供电机正常运行所需的三相方波,根据速度电压MC33035可改变底部半桥输出脉冲宽度,相当于改变供给绕组的平均电压,从而控制转速。
 
  4 软件设计
  运动控制系统软件设计的关键是接收到主控计算机传来的运动控制指令后,电机是否能够达到要求的速度和角度,考虑到整个系统运行过程中不可避免的误差,特别引入补偿算法,实现速度和位置双闭环PID控制,其具体的控制流程如图4所示。
  主控计算机根据步态规划的数据,发出运动指令,生成下一个运动周期各个电机的转动方向和角度等控制参数,运动控制器接收到新的数据之后,PWM控制根据数据计算出占空比信息并生成相应的PWM波,进而控制电机转动,随后将电机光电编码器传送回的信号转换成关节位置和速度等信息,补偿控制针对速度和位置误差采用PID算法进行调节,计算需要的执行量,调整PWM波形,在每一个运动周期内使电机达到指定的速度,并使运动中的关节电机能够克服机器人重力和外力的影响,保持在设定的角度。图5是CCS仿真调试时,程序运行后在指定的摆动角度下监控到的单关节电机速度跟踪曲线,其响应时间和稳定性基本满足双足步行的要求。
  5 结语
  介绍了一种基于DSP的无刷直流电机运动控制系统,在控制方案的具体实现过程中,根据机器人腿部系统的自身特点,将控制器围绕DSP处理和电机控制电路来分别设计,这样既方便设计和调试,又增强了系统的灵活性和扩展性。电机驱动采用速度和位置双闭环控制,保证运转精度。经测试,系统基本满足运动控制的要求,为双足步行规划提供了试验平台。
嵌入式/Linux/ARM/DSP/FPGA......推荐资源视频教程,海科资源 http://www.haike-source.com/ 

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
嵌入式系统,Linux,WinCE,单片机,ARM,DSP,EDA,FPGA,CPLD,PLC,数电,模电,PCB,硬件设计,软件编程,应用电子技术,视频教程、培训视频、教程资料、学习教程,海量资源下载中心, 海科资源
推荐文章
最近访客