邓三星,杨蒙蒙,李克强,韩鑫龙,肖翔宇
(黄河交通学院 河南省智能制造技术与装备工程技术研究中心,河南焦作,454950)
2022 年8 月12 日,科技部、教育部、工业和信息化部、交通运输部、农业农村部、国家卫生健康委发布《关于加快场景创新以人工智能高水平应用促进经济高质量发展的指导意见》[1],8 月15 日,科技部发布《关于支持建设新一代人工智能示范应用场景的通知》[2],还与财政部联合发布《企业技术创新能力提升行动方案(2022—2023 年)》[3],国家对人工智能领域科学研究支持力度高。目前,仿人机器人在诸多领域应用广泛,如地震救援、医疗服务等[4~6],本文以STM32 单片机为控制核心,设计一种仿人机器人,可实现直立行走、转弯、翻滚功能,并对系统进行步态测试。
仿人机器人的步态行走设计系统由意法半导体公司的STM32F103RBT6 单片机主控芯片、舵机控制板、舵机与电源四大部分构成[7]。为节约设计成本,未使用弹性连接件和无线传感器。
仿人机器人的控制原理是在整个电路通电后,对单片机的复位引脚施加一个电平信号,以此完成单片机复位;然后将Keil 软件中编译好的操作程序下载到STM32 单片机中,并通过STM32 单片机向开源舵机控制器发出控制信号;最后由开源舵机控制器控制相应的舵机动作,完成预先设计的动作,实现步态行走。
仿人机器人的步态行走设计采用的核心部件为STM-32F103RBT6 单片机,最小系统由上电复位电路、电源供电电路与时钟电路三部分构成,其中电源电路中有5 个数字电源正极;主时钟晶振频率为8MHz,晶振电路为单片机提供定时计数功能;NRET 引脚正常工作时接3.3V 高电平,同时并联一个按钮开关,按钮开关接地,在需要进行初始化操作时,按下开关复位引脚被赋予低电平即可。
STM32F103RBT6 单片机的核心是 ARM®的Cortex ™-M3,并且内置有闪存和SRAM,ARM 的Cortex-M3 处理器是新一代的嵌入式ARM 处理器,它为实现MCU 的需要提供了低成本的平台、缩减了引脚数目、降低了系统功耗,同时提供卓越的计算性能和先进的中断系统响应。
仿人机器人的步态行走设计采用的是开源舵机控制器,该控制器拥有多种给外设模块提供电源的接口,供给遥控的手柄接收器接口,以及总线舵机的接口与PWM 舵机的接口,脱机运行按键等强大的功能与多种多样的外部接口。
由于本设计采用的是总线舵机,所以需用舵机线连接舵机与总线舵机的接口,上电调试后,就可烧录程序给单片机经开源舵机控制器后就可控制舵机的精准运动。
开源舵机控制器结构图如图1 所示。
图1 开源舵机控制器结构图
开源舵机控制器的具体功能参数如表1 所示。
表1 开源舵机控制器功能参数表
舵机是一种位置(角度)伺服的驱动器,适用于角度不断变化并可以保持的控制系统,在高档遥控玩具,如飞机、潜艇模型、遥控机器人中已经得到了普遍应用。采用总线舵机控制方案,具有在线调试、下载程序模块、离线程序执行功能特点[8]。
舵机的内部结构如图2 所示,由一组变速齿轮组、一个微小的直流马达、一个提供反馈并可调电位器及一块电子控制板组成。其中,高转速的直流马达提供了原始动力,带动减速齿轮组,使之产生高扭力的输出。
图2 舵机结构示意图
舵机是一个经典的闭环反馈系统,原动力由电机提供,进而带动齿轮箱,承担终端位置检测反馈任务的为电位器,线性电位器以比例电压的形式将转角坐标反馈给控制电路板,控制电路板将该信号与输入的控制信号相比较,然后发生修正脉冲信号,同时驱动电机正向或反方向的转动。
电源模块最核心元件为电池,所选用的电池应满足安全、电池容量大、电池可循环次数多、重量小、体积小等条件,还要根据单片机所需供电电压等级,设计电压等级转换电路。锂离子电池同等体积下,其电池容量及放电电压要优于其他电池,本设计采用1500mAh 锂电池组,电压转换电路采用AMS1117 稳压器芯片[9]。接通电源开关后,7.4V 电压通过两个不同输出电压的AMS1117 稳压器芯片,一路电压变为3.3V,供给STM32 单片机使用,另一路电压输出为5V。电源模块如图3 所示。
图3 电源模块电路
当系统通电后,初始化程序运行,STM32 单片机为总处理单元,舵机反馈位置、电压、温度等信号,通过开源舵机控制器处理经过AD 转换后,传输至单片机处理,若舵机没有复位,则需要先进行复位操作,复位后即可运行机器人动作组程序。系统主程序流程图如图4 所示。
图4 系统主程序流程图
本设计采用的为开源双足机器人上位机软件,该上位机软件界面清晰,软件主界面如图5 所示。
图5 上位机软件主界面图
仿人机器人上位机软件的操作界面为三个区域,左方六个蓝色图标为舵机控制区域,每个图标对应一个舵机,图标上方有舵机的标号,方便区分,图标下方有白色滑轨和滑块,用以改变舵机的位置,因为使用的是滑块调节,故可实现无级调节。
右方靠上位置的方框为动作编辑详情列表,可以显示设定动作的舵机位置,动作执行时间与修改动作执行顺序等,最多可输入1020 个动作。
右方靠下位置的区域为按键区域,实现动作组功能设置,动作编辑完成后可以执行保存、修改、更新等操作。
使用上位机软件时,用USB 数据连接PC 端和仿人机器人,打开电脑的设备管理器,找到连接的仿人机器人设备,记下COM 端标号,打开串口,指示灯变绿,即可进行机器人动作的编辑。每设置好一个动作,点击添加动作按钮设定动作的数值,将编辑好的动作组文件下载到STM32 单片机中,下载完成后关闭串口并断开连接线,按下控制按键即可运行动作。
根据设计要求,选配系统元器件。主要有六个舵机、舵机之间连接的金属件、开源舵机控制器、STM32 单片机与亚克力板等。组装后机器人如图6 所示。
图6 仿人机器人整体效果图
由于组装时可能对舵机进行转动,上电后机器人不是处于直立状态,因而需要通过舵机调试板连接舵机与调试软件分别对舵机的ID、中位进行设置,使得机器人处于直立状态。
将仿人机器人主控芯片与USB 口连接,打开KEIL 软件,将编写好的主程序烧录至单片机中,图7 为电脑与仿人机器人连接调试效果图。
图7 电脑与仿人机器人连接调试效果图
打开上位机软件,将上位机与机器人连接成功后,就可通过调整上位机软件的舵机控制区来操控舵机转动。
测试一:行走
首先测试机器人的行走,直立状态下,行走的第一步首先要改变机器人的重心分布,从而使机器人单脚站立,此时控制另一只腿上的舵机,向前迈步,迈步后调整好落地角度,注意与另一只腿部舵机的配合,实现平稳落地。行走动作组舵机各数值如表2 所示。
表2 行走动作组舵机数值表
测试二:转弯
由于本设计每个关节只有两个自由度,转弯动作需要机器人单脚站立并保持较大的倾斜角度,另一条腿向前迈步,落地的同时,两条腿上的舵机同时复位,在舵机扭矩的作用下,机器人即可向单脚倾斜的方向完成转弯。如图8 所示。
图8 转弯测试效果图
转弯动作组舵机数值如表3 所示。
表3 转弯动作组舵机数值表
测试三:翻滚
翻滚时需要两条腿上的舵机同步转动,第一步需要完成机器人的头部和脚部同时着地,第二步用头部支撑,抬起腿部,使机器人呈现出倒立的形态,第三步将机器人腿部执行第一、第二步机器人头部动作,即可完成翻转操作。
翻滚动作组舵机数值如表4 所示。
表4 翻滚动作组舵机数值表
首先需将测试完毕的动作文件保存,将动作组文件命名并保存,方便后续修改,保存完毕后,点击动作组序号,选择“100”,因为机器人默认设置 100 号动作组为脱机起始动作组号码,而其余动作组号码则不能作为脱机动作组起始号码,下载完成后,如图9 所示。
图9 脱机调试图
此时点击关闭串口按钮,断开机器人的连接,将其放在较为平整的地面上,按下控制器上的按键,机器人就能脱机运行编辑的动作组文件。
仿人机器人的步态行走设计,利用STM32 单片机来控制开源舵机控制器,进而操作舵机,完成仿人机器人的行走、转弯、翻滚动作,可实现在线调试与脱机运行,动作相对稳定、姿态标准。仿人机器人脱机调试时,能够做到断开与上位机的连接后,脱机自动运行编写好的动作组文件,各模块配合运行平稳,舵机角度可无级调节、扭矩大,能胜任一些较复杂动作,动作运行流畅,但是也存在一些问题,例如受限于电池包的重量体积等,故机器人续航时间较短,不能连续长时间运行,这些都需要在后期的改进中逐步优化,本设计为国内外相关仿人机器人的研究提供了一些借鉴。