小型仿人机器人电机控制系统的设计与实现
摘要: 仿人机器人是工程上少有的高阶、非线性、非完整约束的多自由度系统。小型仿人机器人的机构与运动控制系统设计对尺寸、重量、控制、协调、实时性等方面的要求很高,其相关研究一直是该领域的热点之一。
1 概述
仿人机器人是工程上少有的高阶、非线性、非完整约束的多自由度系统。小型仿人机器人的机构与运动控制系统设计对尺寸、重量、控制、协调、实时性等方面的要求很高,其相关研究一直是该领域的热点之一。
目前,仿人机器人多采用分布式控制系统,例如,本田公司的双足步行机器人ASIMO 采用4 个处理器的智能系统,控制计算机分别放在相应的腿臂关节上,以控制关节运动,上位机只负责完成整体控制规划。清华大学的THBIP-I 机器人的分布式控制单元分为顶层和底层控制,顶层控制由2 个PC104 嵌入式计算机分别负责机器人的上肢和下肢控制,底层由11 个PID 伺服控制单元组成。现有控制系统存在以下不足:(1)系统移植性差,控制系统大多是开发者基于各自独立的结构,采用专用计算机、机器人语言、操作系统和微处理器开发的,限制了系统开放性;(2)体积和重量大,系统通常采用成品化的电机控制器和驱动器,控制电机的数目有限,导致占用空间大、体积臃肿,该矛盾在小型仿人机器人上尤为突出;(3)难于实现关节间耦合,由于机器人关节间存在强耦合关系,需要多电机协调运动,即必须依赖控制器间的大量通信,因此增加了系统连线复杂度,降低了可靠性和通信带宽,且增加了控制环节的延时。本文提出的仿人机器人电机控制系统具有以下优点:(1)单个控制器控制的关节自由度数量较大,控制系统结构更紧凑;(2)容易实现关节间运动的耦合控制;(3)适合对多种电机的控制,系统通用性强。
2 系统方案
采用分布式结构构建机器人运动控制系统,见图1。
协同运动处理模块用于产生机器人关节运动序列。数据通信模块负责信息传输。四肢运动控制模块负责底层关节控制,模块内包括电机控制器、电动驱动器、电机及若干传感器。运动模块接收到顶层控制指令后,产生PWM 信号以驱动关节电机;同时采集编码器和传感器信息,上传至协同运动处理模块,以实现关节轨迹在线调整。一个完善的控制系统应满足:(1)控制较多的关节自由度,并具有一定通用性;(2)结构紧凑,硬件数量和连线少,规模简洁;(3)具有良好的动态响应、轨迹跟随和较小的稳态误差等动静态品质;(4)容错性好、可靠性高、抗干扰能力强。
3 硬件设计
3.1 核心处理器当前电动机控制系统的实现方法主要有模拟电路硬接线、微控制器、通用计算机软件实现、专用芯片、FPGA/CPLD等可编程逻辑器件和可编程DSP 控制器[3]。模拟系统元器件多,可靠性低,且难以修改。以单片机为代表的微处理器集成度较低,速度有限。通用计算机体积过大,难以应用于工业现场,实时性较差。专用控制芯片的软件算法一旦固化,用户便无法进行修改,灵活性差。可编程逻辑器件在实现复杂算法时,需要大量昂贵的晶体管单元。而DSP 集成了高性能的运算单元、大容量的片上存储器和丰富的外设电路,保持了传统微处理器可编程、灵敏活性好、升级方便等优点,同时又提供了更高的运算速度、精度和数据处理能力,因此,是最佳选择。
3.2 电机驱动
仿人机器人关节强耦合、多约束的特点要求控制系统复杂度尽量减小,电机控制器数目应适量减少。控制器数目越多,需要协调和通信的数据越复杂,导致系统性能降低。而控制器数目越少,集中程度越高,则处理器负荷重,导致局部故障可能造成系统整体失效,使可靠性和稳定性降低。对于一般的仿人机器人,要实现基本的行走功能,通常每条腿配置6 个自由度(3 个髋关节、1 个膝关节、2 个踝关节),且自由度间紧密耦合。实现基本的上肢动作时,每条胳膊的自由度一般不多于6 个(不包括手指关节自由度),因此,从功能配置及空间限制2 个方面考虑,使单个电机控制器控制6 个关节自由度。在电机驱动方面,机器人的功能和应用场合决定了其电机驱动电路的要求,即体积小、重量轻、控制功能复杂、精度高、工作可靠耐用,关节电机通常采用中小功率的电动机,如直流电动机、无刷直流电动机、步进电动机等。常用电机控制专用集成电路可以分为2 类:(1)包括功率驱动、控制、接口、自保护等单元的控制-驱动器集成电路,受输出能力的限制,适用于小功率电动机驱动;(2)不包含功率驱动单元的专用控制器集成电路,在应用时需要外加功率器件,但增加了灵活性,可以用于大功率电动机控制[4]。为了适应仿人机器人全身各类关节控制, 本文选用后一种集成电路( 如MC33035, UC3625)配合功率开关器件,实现多种电机的开环驱动、起停、方向控制等功能。[#page#]
3.3 位置反馈
在机器人的运动过程中,各关节负载不断变化,且关节间耦合紧密,很难建立完备的运动学和动力学模型,必须依靠规划数据和外界传感器信息实时调整控制策略。为了使机器人实现双足直立行走,必须使机构在行走时保持动态平衡,并保持一定行进速度,这对关节电机的控制精度和速度提出了很高要求。仿人机器人多采用高精度驱动电机,配以高精度的速度/位置检测元件(编码器、霍尔传感器等),从而构成完善的闭环伺服系统。其中,反馈信号由电机输出轴上的检测元件获得,电机每转过一周,编码器会产生若干正交编码脉冲,该正交编码脉冲由2 个具有1/4 个周期(90°)的固定相移的脉冲序列组成。电机转角由脉冲计数值得到。电机当前转向通过检测2 列脉冲的相位先后关系确定。该解码过程可以通过软件和硬件 2 种方式实现。前者由CPU 对脉冲边沿进行检测,并即时进入中断服务子程序更新计数值。在高速运动情况下,编码器返回脉冲频率极高,同时处理多路反馈信号时,高速频繁地开关中断会破坏正常的流水线,给CPU 造成很大负担,严重时会导致计数值不准造成控制精度下降。硬件解码方式通过正交编码脉冲(QuadratureEncoded Pulses, QEP)电路实现。用于运动控制和数字控制的DSP 通常已集成1 个~2 个QEP 单元,但无法同时满足机器人单个运动控制模块内所有通道编码器的反馈要求。因此,采用正交解码芯片来解决该矛盾,其内部原理与DSP 内的QEP 单元类似,除对正交脉冲信号进行解码外,还集成了总线接口。结合正交解码芯片与组合逻辑电路,可以根据实际需要扩展期望数量的正交编码脉冲接口。由于译码和计数均由硬件电路实现,因此最大程度地保护了指令的流水线,减轻了CPU 负担,改善了控制的实时性,保证多路电机测量的准确高效。
3.4 电机控制器和电机驱动器
小型仿人机器人电机控制系统的硬件组成如图2 所示。基于系统移植性和功能分工考虑,系统分为电机控制器和电机驱动器。电机控制器用于处理控制信号,从数据通信模块获得关节运动序列数据,并转换成相应关节的角度和速度,发送给关节驱动器。经由GPIO 口、串口和ADC 读取传感器信息,滤波转换后送至协同运动处理模块。电机驱动器实现功率变换,驱动电机绕组动作,并返回反馈信息。包括电源模块、频率-电压转换模块、电压-电压转换模块、PWM 控制模块、MOSFET功率放大模块、正交编码测速模块、电路保护模块、电流监控模块等。该结构的优点在于其较好的通用性,配合扩展电路,电机控制器易于实现通信、采集、信号处理等任务,且便于与其他嵌入式处理器协同工作和系统扩展升级。
4 软件设计
4.1 程序实现
控制系统程序主要实现通信和电机控制功能。主程序开始后,进行初始化配置、开中断并等待触发。如图3(a)所示,DSP 每次从总线接收到一个数据包,便触发一次通信中断。根据传输码字的状态位,对数据包进行相应处理。如图3(b)所示,每个采样周期末触发电机控制中断。由位置检测模块对电机编码器信号进行处理,得到电机转轴的位置。若已达期望位置,则令电机停转,否则执行PID 算法,计算需要的执行量,再利用速度估计模块得到的转速值,进行速度误差调节,最后经PWM 模块生成脉冲信号,驱动电机。
[#page#]
4.2 电机控制策略
机器人电机控制系统可以视为典型的闭环控制系统,DSP 控制器用于实现控制算法,电机及其减速箱为执行元件,霍尔元件及编码器用于采集反馈信号。完整的关节控制周期包括位置检测、参考值输入、速度测量、误差调节、PWM 信号产生。误差调节采用数字PI 控制器,即
其中,Ts为采样周期; Kp 为比例增益;
Ti分时间常数。
由于电机输出力矩存在非线性限幅环节,使得调速系统具有饱和特性,引起积分饱和现象,严重时会导致系统性能恶化,因此,需要加入抗积分饱和环节。本文采用的策略为:当控制器输出达到电机轴驱动极限时,切除积分作用(I),保留比例作用(P),构成PI-P 控制器。在偏差减小时,控制器输出能更快脱离上限或下限。
5 实验
5.1 实验平台
以上海交通大学智能机器人研究中心自行设计的小型仿人机器人MIH-I(Mini Intelligent Humanoid Robot-I)为实验平台。该机器人高798 mm,左右肩宽为385 mm,身体前后纵深距离为208 mm,共有25 个自由度。颈部具有2 个自由度,负责头部的俯仰和回转。手臂有5 个自由度,其中,肩部3 个;肘部1 个;腕部1 个。腰部1 个自由度,实现腰部俯仰。腿部6 个自由度。采用Maxon 公司的EC-MAX 系列大功率直流无刷电动机作为关节驱动,并配有光电编码器。
选用德州仪器公司的 TMS320F2812 作为DSP 控制器,安森美公司的高性能无刷直流电机控制器MC33035 以及安捷伦公司的双路正交解码/计数接口芯片HCTL-2032。系统规格为168 mm×128 mm×30 mm,每组控制器控制位置相邻、功能相近的6 个自由度,通过5 组控制器可以实现对全身所有关节的控制。与现有成品化电机控制器(如Maxon EPOS2的尺寸为105 mm×83 mm×24 mm,只适于单个电机控制)相比,本文系统具有体积紧凑的优点,符合小型仿人机器人的安装要求。
5.2 实验结果
本文设计实现了多关节协同控制实验测试电机控制系统对关节电机的控制能力,实验环境如图4 所示。
用电机控制板和驱动板控制左腿的 6 个关节自由度。从主控计算机通过CAN 总线发送6 个电机的期望转角,分别为+90°, +45°, -45°, +90°, +45°, -45°。转化为Q15 格式,依次为0x1FFF, 0x0FFF, 0xF000,即8 191, 4 095, -4 095。设定比例、积分和微分参数,令Kp=5, Ki=0, Kd=5,采样频率为2 kHz,实时记录电机编码器的位置反馈值。前3 个电机的位置控制响应数据如表1 所示。其动态部分响应速度较快,稳态误差在0.1°以内。后3 个电机的响应类似,可以达到很高的控制精度。
6 结束语
本文电机控制系统可以用于无刷直流电机、有刷直流电机和舵机,适用于小型仿人机器人等安装空间有限的场合。实验结果表明,该系统可靠性较高。
本文由大比特收集整理www.big-bit.com
暂无评论