0 引言
双足机器人样机是研究双足行走的实验对象,为了研究的顺利进行,必须对机器人的自由度、驱动方式、重量、高度等进行合适的配置;这就需要自由度的分配简单合理、驱动方案可靠易用以及机械结构轻便结实。为了得到可靠高效的控制系统,首先要选择合适的主控芯片,然后针对实时控制中所需要的各种姿态信息,选择可靠性高且方便和主控芯片连接的传感器。
双足步行机器人是一个多自由度、非线性、具有复杂动力学特性的多体系统,本田公司、索尼公司以及北京理工大学等相继推出了各自研制的双足机器人样机,其中以本田公司的ASIM0制作水平最高。本文在参考国内外相关研究的基础上,从便于实现的角度出发,设计研制了样机,以TI公司的DSP TMS320F2812为核心设计了机器人驱动、控制电路,分别采用了触力传感器FSSl500NST、微机械陀螺仪ADXRSl50来检测足底接触力信息和躯干角速度,并成功实现了机器人的稳定行走。
1 机械设计
为了实现机器人前后行走、上下台阶及爬斜坡等功能,机器人每条腿至少应有三个俯仰自由度;要实现质心在左右脚之间转移的功能,每条腿至少应有一个滚转自由度。基于实现预期功能而又尽量降低成本,精简机构的原则,我们设计的双足机器人共有十个自由度,每条腿各有五个自由度,其中髋关节两个(俯仰和滚转),膝关节一个(俯仰),踝关节两个(俯仰和滚转)。这个十自由度的双足机器人可以实现左右方向和前后方向上的多种运动。
考虑到驱动负载以及稳定性等因素,在设计时将腿长取为28cm,其中大腿有效长度(髋部俯仰方向舵机输出轴到膝盖舵机输出轴的距离)为15cm,小腿有效长度(膝盖舵机输出轴到踝部俯仰方向舵机输出轴的距离)13cm,每个脚底板宽8cm,长12cm,材料为2mm厚的电路板,上面安装了四个触力传感器,每个角上一个,用于检测机器人行走时支撑脚和地面之间的压力;电路板上还有四个传感器的信号调理电路。大腿和小腿都由轻质铝合金板加工而成;两条腿最上面的舵机通过u型件连在一根角铝上,用螺栓螺母拧紧后,就构成了机器人的骨盆,在骨盆中央竖直方向上固定一根硬铝板条,作为机器人的脊柱;电路板和为整个系统供电的锂电池可以放在一个特制的盒子里,将盒子固连在竖直板条上,就构成了机器人的胸腹。
2 驱动方案与控制系统设计
基于处理能力等多方面的考虑,我们选用TI公司的高性能数字信号处理器TMS320F2812为机器人控制系统的核心,来完成信号采集、处理、控制和驱动等功能。
F2812是一种低功耗的32位定点数字信号处理器,在数字控制领域应用广泛,采用哈佛总线结构,具有强大的计算能力、迅速的中断响应和处理以及统一的寄存器编程模式。
2.1 驱动方案
考虑到驱动力大小以及可控性能,本机器人的关节采用汉库HGl4舵机进行驱动,该舵机采用闭环反馈位置控制,其部分技术指标如表1所示:
减速齿轮组由马达驱动,其终端(输出端)带动一个线性的比例电位器进行位置检测,该电位器把转角坐标转换为一比例电压反馈给控制单元,控制单元将其与输入的控制脉冲信号比较,产生纠正脉冲,并驱动马达正向或反向地转动,使齿轮组的输出位置与期望值相符,从而达到舵机精确定位的目的。
舵机的控制信号是脉冲位置调制(PPM)信号,是一种宽度可调的周期性方波脉冲信号,周期一般为20ms,当方波的脉冲宽度改变时,舵机转轴的角度发生变化,角度变化与脉冲宽度的变化成正比。一般舵机的输出轴转角与输入信号的脉冲宽度之间的关系可用图1表示。
由于制作工艺等多方面的原因,舵机的输出轴转角并不是准确地遵循与控制信号的脉冲宽度对应的关系,但一般和控制信号脉冲宽度成比例关系。为了减小误差,我们事先测出在额定脉宽下舵机的实际转角,然后计算出和额定转角的比例系数,在软件中对控制信号脉宽予以调整,这样可以将转角误差减小到0.5°以内。
2.2 控制系统设计
TMS320F2812具有较高的处理速度,可以满足双足机器人步态规划以及控制的算法的实现,另外还有着集成丰富的外设,可满足多个传感器的信号采集的需要。为了避免每次改写程序都重新对片内FLASH进行烧写,我们采用如下方案:由DSP通过JZ864微功率无线数据传输模块将由传感器得到的机器人姿态信息送到上位机,然后上位机根据这些信息和动作时序计算相应的控制指令,通过无线数传模块将指令发送回DSP,再由DSP的定时器生成相应的信号来控制舵机(如图2所示)。这样调试时只要在上位机里改写程序即可,动作调试好以后再将相应的程序烧写到DSP芯片的FLASH中。
十个舵机的控制信号由F2812的通用I/0引脚A0到A9产生,这个过程由通用定时器l和通用定时器2的中断服务程序来完成。
双足机器人的实时控制系统需要实时测量机器人的一些信息,为此我们在每个足底安装了四个霍尼韦尔触力传感器FSSl500NST,用于实时检测双足机器人脚面触地情况,计算双足机器人脚面压力中心位置。这种触力传感器具使用专门设计的精制压敏电阻硅传感元件。硅压阻元件在受到外力而发生弯曲变形的时候,电阻会相应增大。触力传感器通过不锈钢柱塞,将所受外力直接传递到硅感应元件上,元件阻值就随着所受外力同比例增加。这种电阻值的变化将最终通过电桥电路以mv级电平输出,灵敏度为0.12mY/g,直接接入DSP的模数转换电路会导致测量精度不高,需要设计如图3所示的信号调理电路。
在经过调理电路放大以后,传感器的电平输出被放大到0—3V之间,可直接连到F2812的A/D转换电路。
躯干的角速度包括滚转、俯仰和偏航三个方向的分量,一般需要关注的是滚转和俯仰方向的分量,即机器人是否会朝前后或左右方向摔倒。我们选择ADI公司的微机械陀螺仪ADXRSl50,其参数如表3所示。
陀螺仪ADXRSl50具有Z一轴响应、工作频带宽、小而轻等特点,能够满足机器人双足行走过程中检测躯干实时角速度的要求。
为了方便地控制机器人动作,我们选用了红外线遥控方式。选用集红外线接收和放大于一体的HS0038芯片作为红外线接收器,其中载波频率为38kHz;电路中将HS0038芯片的输出信号接到F2812事件管理器EVB的捕获引脚上,通过捕获中断服务子程序来对遥控器的信号进行接收和解码,然后查表来确定相应的按键,执行相应的动作。
3 行走试验
通过在主控芯片中的步态规划,双足机器人在行走过程中的重心投影一直在支撑区域以内,试验在平整地面上进行,用7.4V的锂电池给双足机器人提供动力,机器人独立于上位机,用红外遥控器控制他的行为。在行走实验中,机器人收到指令后执行的一系列动作如下:
(1)双腿弯曲,降低重心到一定高度;
(2)身体左倾,重心投影移到左脚,抬右腿;
(3)右腿前伸,沿设定轨迹着地;
(4)身体右倾,将重心投影转移到右脚;
(5)检测最近收到的指令,若为停止命令,则以右腿为支撑腿,收左腿,回到直立状态,否则执行下一个的动作;
(6)左腿前伸,沿设定轨迹着地;
(7)身体左倾,将重心投影转移到左脚上;
(8)检测最近收到的指令,若为停止命令,则以左腿为支撑腿,收右腿,回到立正状态,否则执行第3个的动作。
行走时各杆件运动的速度和加速度不能太大,运动速度会比较慢。经过多次试验和研究发现,如果摆动腿移动得太慢,会增加单腿支撑的时间,若摆动腿移动得过快,会增加对身体的作用力,使机器人稳定性变差,比较容易摔倒;在双腿支撑期,质心投影由一只脚上转移到另一只脚上,为了不让两脚相对地面滑动,必须较好地保持两脚的相对位置和相对姿态不变,因此在这一过程中各个关节也不能转得太快,而且摆动脚着地时会受到地面的冲击力,使机器人的身体有些晃动,双腿支撑期稍微长一些能起到缓冲作用。经过多次调整和试验,发现在取双腿支撑期2.5s、单腿支撑期1.5s时,可以得到比较稳定的前向行走。
4 结束语
本文根据研究双足机器人行走的需要,选择大扭矩舵机作为各关节的驱动电机,设计实现了十自由度的小型双足机器人:以TI公司TMS320F2812 DSP作为主控芯片,为方便程序的调试,采用了JZ864微功率无线数据传输模块来传递上位机与机器人之间的信息。选择触力传感器FSSl500NST、微机械陀螺仪ADXRSl50来分别测量脚底板和地面接触信息以及躯干的角速度,采用了红外遥控的方式来控制机器人的行为,最后设计出机器人的整体控制系统并实现了稳定行走。