基于RC伺服马达控制系统的步行机器人开发及应用

2018-08-23 09:29谢邦晋
时代农机 2018年6期
关键词:脉波讯号计时器

谢邦晋

(闽江师范高等专科学校机电工程系,福建 福州 350018)

由于机器人的应用逐渐广泛,除了工业机器人,越来越多种类的机器人开始进入人类的社会,一般机器人移动的方式分为轮型、足型,使用轮型移动机器人优点是移动速度快与稳定性高,但是适应地形与跨越障碍上,还是以足型机器人较占优势,开发像人类一样以双足移动的机器人,是让机器人更加拟人化的条件之一。

为了使机器人能够步行移动,机器人在机构上,需要有灵活的足部机构,而当机器人在步行时,由于同一时间内只有一只脚接触地面,为了让机器人能够平衡,机器人的重心分配非常重要,控制机器人步态,需要控制与机构的研究,才能使机器人的步行移动更接近人类。

1970年代开始日本研究者开发出许多具有步行功能的机器人,至今几十年来对于机器人的步行控制,世界上许多专家学者已提出相当多的论文与研究报告。机器人步行控制的研究中,在1968年由南斯拉夫学者M.Vukobratovic提出了零力矩点(ZMP)这个理念,经由零力矩点(ZMP)的计算,只要机器人的零力矩点在安全范围以内,机器人即可保持平衡,80年代日本早稻田大学的加藤一郎实验室便依据此理论制作了WL系列机器人,还有Honda制作的Asimo也同样是利用零力矩点来达到机器人稳定的步行,零力矩点提出至今已50年,仍是机器人步行控制的主要方法之一。

另外有部分研究者提出以演算法来计算机器人步态,如模糊控制、类精神网络、基因演算法等方法,上述各种控制方法都是希望能够稳定机器人的步态,但是透过演算法控制的方法,在处理器的计算上需要发费一些时间,所以机器人移动的速度还是偏慢。

文章将以使用STM32晶片来制作伺服马达控制板,透过控制板来控制双足机器人的动作,双足机器人由RC伺服马达与结合模块组成。

1 硬件架构

本论文设计中的硬件架构分成三部分,由RC伺服马达控制板、机器人结构、电源供应组成如图一所示。RC伺服马达控制板由主控核心(MCU),伺服马达控制电路、降压电路所组成,机器人结构由RC伺服马达与结合模块组成,电源供应部分来源为锂电池并搭配稳压器对机器人与控制板供电。

图1 硬件构架图

2 主控核心

主控核心意法半导体(STMicroelectronis)公司生产的STM32F103系列增强型微控制器,该系列微控制器的特点为内核使用了Cortex-M3核心,Cortex-M3是ARM公司开发的处理器,该处理器实现了低成本、缩减接触脚数量,并同时具有低功耗、高执行速度、先进的中断系统响应、支持多种通讯等功能。

RC伺服马达控制芯片的选用,依据需要选择中等容量的STM32F103Cx系列,完整型号为STM32F103C8T6,拥有64KFlash、4组计时器、37个IO脚与LQFP48封装形式,芯片外观与封装脚位如图2所示。

3 机器人机构的架构

机器人的硬件部分,由RC伺服马达搭配结合模块制作成高自由度的双足机器人,机器人的灵活度取决于该机器人自由度的多少,自由度的意思为机构上可独立运动的数目,为了让机器人的步行更接近人类,所以设计了12个自由度的双足机器人机构,机器人关节为RC伺服马达,骨架部分则由结合模块组成,双足机器人机构如图3所示。

图2 芯片外观与封装脚位

图3 双足机器人机构

4 系统软件的架构

双足机器人的控制方式架构图如图4所示,RC伺服马达控制板由三组计时器输出PWM脉波讯号,由此PWM讯号控制RC伺服马达的转动,另外配合STM32F103C8T6的系统应答计时器产生计时中断,由此计时中断来达到RC伺服马达的控制。RC马达的控制是由产生一周期20 ms的PWM讯号来控制,由PWM讯号的脉波宽度来控制马达角度,由增加脉波宽度的方式就可以控制RC伺服马达的速度,以RC伺服马达从0度(0.5ms)旋转到180度(2.5ms)为例,假设每20ms周期的增加0.1ms的宽度。脉波宽度由0.5ms增加至2.5ms,每20ms增加0.1ms的宽度,RC伺服马达转动时间计算公式如:

每个周期增加的脉波宽度越大,RC伺服马达的转动速度就越快,除了调整脉波宽度的方式以外,还可以调整周期的方式来控制速度,但要注意RC伺服马达的规格。

图4 控制方式构架

5 程序开发流程

控制RC伺服马达的PWM控制讯号,由微控制器内部的3组计时器提供,机器人的动作与速度由计时器产生的周期性中断来做控制,中断程序内将当前PWM讯号的宽度与机器人动作信息数据进行比较,若数据大于当前PWM讯号宽度值,执行PWM讯号宽度做加运算,反之做减运算,流程图如图5所示。

图5 流程图

当机器人要执行动作时,先执行初始化,将各轴的RC伺服马达的角度都设定为置中(脉波宽度1.5ms),此时机器人呈现站立姿态,载入机器人执行动作的数据阵列。

Intdata={{2500,2000,2200,2100,2400,1900,1900,1900,1900,2000,2300,2200},{1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500}};

阵列中为一个第一维度为2,第二维度为12的二维阵列,第一维度代表机器人的动作数,第二维度代表12个RC伺服马达的脉波宽度,阵列中值的大小为500~2500,500代表0.5ms的脉波宽度;1500代表1.5ms的脉波宽度,2500代表2.5ms的脉波宽度,机器人在执行动作时,微控制器中断程序会将各轴的脉波宽度与数据阵列库的值做比较,当发现某个RC伺服马达的值与数据阵列比较不相符时,则对该RC马达的脉波宽度进行加减。由周期性的中断程序,可同时对每个RC伺服马达的脉波宽度做调整,当RC伺服马达达到动作所需的角度后,会维持该角度并等待其他RC伺服马达到达设定的角度,等全部RC伺服马达都到达设定的角度时,便会开始执行动作数据阵列的下一列。

6 实验结果

人在步行时,可视为一种周期性的反复运动模式,依据这种周期性的运动模式,可以规划出步行的轨迹,人走路时,双手会自然地摆动,而且跟两腿走动的方向相反,这种互相协调的动作,是为了保持整个身体的平衡,但是双足机器人却没有这种调节平衡的动作,所以在设计双足机器人的动作时为了使 稳定,必须要考虑到机器人重心的分配,机器人的重心在抬脚移动的同时会跟着改变,如果机器人的重心没有调节好,那么机器人必定会跌倒,因此重心的调整对机器人的动作非常重要。

因此本次研究在机器人的动作设计上,不采用运算的方式算出机器人稳定的步伐,而是使用控制伺服马达角度的方式,来设计机器人的动作,这种机器人的行进动作属于静态平衡,所以机器人的步行状态可分为单脚支撑与双脚支撑,当机器人以单脚支撑时,为了保持机器人的平衡,重心必须落在支撑的脚掌内,在双脚支撑时,机器人的重心要落在双脚之间,只要注意重心的落点,就可以让机器人在步行时保持平衡,图6为双足机器人各轴的伺服马达编号。

机器人在动作前,为了使机器人站立,会先设定机器人的直立的动作,由伺服马达控制板对各轴送出宽度为1.5ms脉波,由于机器人在组装上会存在一些误差,所以还需对各轴做校正,各轴误差的角度如表1所示:

表1 机器人各轴误差角度

图6 伺服马达编号对照

7 结语

RC伺服马达控制板的主控核心是使用STM32微处理器,其功能为输出12通道PWM信号,可控制多颗RC伺服马达,为了使RC伺服马达的控制更加的稳定与迅速,12组PWM信号由STM32芯片内部3组计时器产生,最高可扩展至16通道输出,在PWM信号宽度的控制上,开启预先装载功能可同时控制多组PWM信号的脉波宽度,在电源供应部分使用一种稳压器,供应RC伺服马达所需要的高电流,并配合系统滴答计时器来做RC伺服马达的速度控制。若能在伺服马达控制器上增加传感器如:陀螺仪、加速度计、姿态感应器等各种传感器,通过这些传感器使控制板在控制机器人的时候,能够对各种状况做出应对。

猜你喜欢
脉波讯号计时器
利用并联供电特点增加城轨交通整流脉波数的探讨
松鼠的计时器
地铁牵引供电整流机组建模仿真及谐波分析
超高精度计时器——原子钟
GB 10810.3和QB 2457标准中交通讯号识别的差异性分析
故乡
我们的探险计划
轴向双分裂12脉波整流变压器在盾构上的应用
抗缪勒氏管激素:卵巢功能的计时器!
城市轨道24脉波整流机组研究分析