仿人型机器人控制系统设计的几个问题
扫描二维码
随时随地手机看文章
1 引言
仿人型机器人由于具有类人的基本外形,在实际的生活中,能够代替人完成很多工作,因此对仿人型机器人的研究具有实用价值,各国都在投入巨大的人力物力进行研发。仿人型机器人具有多自由度的机械结构要求,因此需要对机器人的各个关节通过电机来完成转动动作。这对于电机驱动控制提出了很高的性能要求。本文提出了一种基于STM32单片机的仿人型机器人控制系统方案,可以同时对机器人关节所需的16路舵机进行驱动控制。
2 硬件解决方案
本控制系统的硬件部分共分为5个模块,其硬件系统模块图如图1所示。
图1 硬件系统模块框图
主控制器采用STM32F103xB增强型系列单片机,该系列单片机使用了高性能的ARM CortexTM-M3 32位的RISC内核,工作频率为72MHz,内置高速存储器(128K字节的闪存和20K字节的SRAM),增强型I/O端口[2]。这些性能使得 STM32F103系列微控制器非常适合应用于小型仿人型机器人的控制系统。由于仿人型机器人的体型限定,因此我们在设计舵机控制板时采用了 STM32F103系列的小型贴片封装型号STM32F103CBT6。以得到体积较小的舵机控制电路板,如图2所示。
图2 舵机控制板实物图
图3 舵机控制示意图
为了实现对多自由度复杂结构的仿人型机器人进行动作控制,需要较多控制路数的舵机控制板。由于舵机的角度控制是采用PWM波形输出,当单片机IO口的输出脉冲宽度变化时,舵机舵盘角度发生改变,如图3所示[3],因此在舵机控制板电路设计中,充分利用了STM32单片机的IO口数量多且具有PWM输出的技术优势[4]。共设计了16路舵机控制口,可以保证16个机器人关节同时动作。舵机驱动IO接口分布在PCB板的两侧,便于插拔。
在舵机的控制中,有一个容易出现的问题就是舵机抖舵问题。这种问题一般发生在采用普通电池做为机器人系统的主电源的情况下,如采用多节AA型镍镉或镍氢电池串联组成机器人供电主电源。原因是这些电池由于容量和放电能力的局限,无法在其额定电压下提供长时间稳定持续的大电流。在仿人型机器人的多路舵机同时工作时,采用普通电源输出的电压会迅速降低,从而导致舵机的供电不足,最终出现舵盘异常抖动,造成机器人在执行动作时的抖舵现象。
图4 控制信号5V供电电源原理图
图5 6V舵机驱动电源原理图
因此我们设计的仿人型机器人控制电路中采用了型号为格氏25C放电倍率,容量为2200mAh,额定电压为11.1V的锂聚合物航模电池作为主电源。分为 5V控制信号电源和6V舵机驱动电源,如图4所示。为了保证多路舵机同时工作时所需要的大电流,利用锂聚合物电池具有很强的持续放电能力,选用了型号为 120W 12A大功率降压模块[5],将机器人的供电电源稳压在+6V,放电电流峰值为12A,如图5所示。利用光电耦合器隔离单片机IO口控制信号和舵机驱动信号,提高控制信号的抗干扰能力。舵机的IO口电路设计原理图如图6所示。这样解决了多路舵机由于同时工作时,电源电源被拉低引起的舵盘异常抖动问题。
图6 舵机IO口电路原理图
舵机控制板在初始上电时,所有IO口会同时通入无序的PWM信号,造成瞬间出现巨大的电流消耗。经实验测得舵机控制板上电时,单个IO口的峰值电流可以达到1.5A以上。因此在16个舵机同时初始上电通入PWM信号时,其总电流将达到24A以上,这就大大超出了大容量直流降压模块的极限供电电流,导致电源电路进入过流保护,整个舵机控制电路将无法进入正常的工作状态。为了解决这个问题,我们在STM32单片机上电初始化时,首先只让IO口1和2输出PWM 信号,然后同时再让IO口3和4输出初始化PWM信号,以此顺序最后让IO口15和16输出PWM信号。这样就保证IO口初始化时,最多只有两路PWM信号同时通入。在机器人正常动作时,同时动作的舵机数量不超过6个,即6个IO同时输出的峰值电流为9A,低于大功率降压模块的最大输出电流12A,因此整个电路在工作期间的极限电流均小于12A。最终达到了舵机控制板稳定工作的硬件要求。
3 软件部分的设计
仿人型机器人控制系统的软件分为两种模式:调试模式和正常模式。
调试模式:机器人上电默认静止,以响应上位机信号为主。在该模式下,上位机通过RS232串口对机器人进行在线控制,可以对单个舵机的角度进行精确调整,编排好的流程动作单次执行,流程动作的全部执行等,并显示当前机器人对代码解析值。调试模式的工作界面如图7所示。
正常模式:机器人上电即开始执行调试完毕的全套程序动作。
图7 上位机调试模式工作界面
为了实行软件控制,采用了多任务模块的定时轮换机制[6]。共建立了3个模块任务:任务0用来解析送入该任务的软件代码值到PWM输出的转换。任务1用来调用每套动作编码,连续的将得到的软件值发送给任务0。任务2为串口处理任务,通过分析串口发来的数据进行模式的转换和响应。其程序流程图如图8所示。
图8 程序流程图
4 系统调试效果
设计该仿人型机器人的走步步态时,主要考虑了机器人的自重为2.53Kg,身高为42cm,因此机器人的脚和手臂的舵机输出幅度不能太大,否则会导致机器人走步时的重心偏移太大,造成机器人翻倒。因此在设计机器人的脚掌时,适当增大了与地面的接触面积,脚掌的尺寸为8.5&TImes;15cm,同时加快了脚步移动的频率,并在脚部增加了额外的配重,以增强机器人在走步过程中的稳定性,其走步的步态如图9所示。该型机器人的走步步态协调一致,在2012年中国机器人大赛仿人竞速比赛项目中获得二等奖。
图9 12自由度的仿人型机器人
走步动作正面
5 结束语
文中基于STM32微控制器的仿人型机器人控制系统,能够灵活地控制16路大扭力舵机,通过大功率降压电源模块,可以得到16路舵机同时动作时所需要的直流电压,实现了仿人型机器人的走步动作,可作为高校学生进行机器人技术创新时的参考。