基于STM32F4 的12 自由度四足机器人设计与实现
2020-10-28
(新疆大学 信息科学与工程学院,新疆 乌鲁木齐 830046)
近年来机器人在军事、生活、工业领域越来越受社会和国家重视,而能够适应复杂环境地形的足式机器人更是受到广泛关注,足式机器人可以摆脱轮式机器人对复杂环境地形的限制,自由穿梭于森林、河流、山坡、沙漠等严峻的地貌。足式机器人又分为双足、四足、六足,其中四足的应用范围较其他2 种更为广泛[1-3]。美国Shigle 及Baldwin 在20 世纪60 年代开始设计使用凹凸轮的连杆机构来设计机动性较好的步行车,但由于技术限制,步行车的复杂地面车适应性较差,1968 年美国人MOSher 设计出Walking Truck。Walking Truck 虽然在操作过程中并不能实现流畅行走,但是其已经具备有效行走及跨过障碍物的能力,Walking Truck 的出现被视为现代步行机器人发展历程中的伟大突破[4-7]。国内的足式机器人较国外起步较晚,以清华大学、哈尔滨工业大学、国防科技大学、上海交通大学、华中科技大学、浙江大学等高校及单位为代表的团队对于多足机器人技术进行研究的成果颇丰。以浙江大学2017 年研制的“赤兔”四足机器人以及2018 年研制的“绝影”四足机器人为例,具有对于复杂的非结构地面的适应能力,可以实现爬坡、爬楼梯、崎岖路面行走、小跑和奔跑、负重前进的功能[7-9]。
本文提出了一种以STM32F4 芯片为核心,采用对角小跑的步态算法,通过输出12 路PWM 波控制12 个舵机工作,实现了12 自由度四足机器人的原地踏步、直线行走和转弯等功能,并可以通过蓝牙进行无线远程控制。
1 机器人设计
机器人设计部分分为机械模块设计、电路模块设计、算法模块设计。
1.1 机械模块设计
使用SOULUDWORKS软件绘制四足机器人的各部分零件,包括大腿、小腿、舵机、固定连接件、身体等。将绘制完成的各零件拼接绘制成完整的四足机器人工程图,如图1 所示。
图1 四足机器人工程图
1.2 电路模块设计
机器人硬件电路主要分为控制模块、驱动模块与舵机信号隔离模块[10-12],系统硬件框图如图2。
机器人控制模块采用STM32F429 作为主控芯片,包括复位电路、蓝牙模块电路、5 V 供电电路、测试模块电路、晶振电路、程序下载电路、用作PWM 波输出的12 路IO 口,控制模块电路如图3所示。
图2 系统硬件框图
图3 控制电路原理图
机器人驱动模块包括3 个转压电路,转压芯片采用XL4016,输入电压范围为8~40 V,输出电压可在1.25~36 V 之间连续可调,最大输出电流可达8 A,本设计驱动舵机的供电电压有2 种,一种是5 V,一种是7.4 V,因此设计总电源是+12 V 电压供电,通过3 个转压模块转出2 种供电电压,每一个转压模块转出的电压最多给4 个舵机供电以保证每一个舵机的功率充足。转压模块电路内部另设有过压保护、过流保护、过热保护,及输出短路保护,驱动模块原理图如图4 所示。
图4 驱动模块原理图
舵机信号隔离模块采用光耦隔离电路,因为考虑到舵机在转动过程中会在信号线产生回流,影响芯片正常工作,因此在控制模块与舵机之间设计了光耦隔离电路,对二者之间连接的信号线进行物理隔离,消除回流。舵机信号模块原理图如图5 所示。
图5 光耦隔离电路原理图
1.3 算法模块设计
本设计选用舵机作为动力,舵机的控制原理较为简单,需要一个20 ms 的脉冲周期,本项目使用180°舵机,在20 ms 的脉冲周期中配置不同占空比的高低电平,不同的占空比对应不同的角度[13-14],占空比和角度具体对应如表1 所示。
表1 占空比和角度对应表
PWM 波输出使用了STM32F429 中的3 个通用定时器,每个定时器产生4 路PWM 输出。
控制算法模型的建立是以每个足端为独立的原点分别建立空间直角坐标系,根据整体设计,四足机器人各零件尺寸如表2 所示。
表2 四足机器人各零件尺寸
根据大腿小腿和肋骨的固定长度,通过运动学推导出3 个关节的角度关于足端对独立空间直角坐标系(x,y,z)位置的函数,设足端坐标为(x,y,z),机器人高度为RobotH,则肋骨舵机角度由公式(1)算出,小腿舵机角度由公式(2)算出,大腿舵机角度由公式(3)算出[15-16]。
公式中先计算出肋骨舵机角度angle1与小腿舵机角度angle3,再根据小腿舵机角度angle3 计算出大腿舵机angle2 步态采用对角小跑步态,2 个对角的足端做相差1/2 个相位的半周期椭圆函数轨迹运动,设机器人在运动过程中足端抬起高度最大值为ΔH,足端运动轨迹示意图如图6。
图6 足端运动轨迹示意图
机器人足端在半周期椭圆轨迹上取的期望点越多,整体步态越稳定流畅。本设计在半周期椭圆轨迹上取的期望点数为16 个,以保证步态的稳定性。
程序使用C 语言编写,编写环境为Keil5,程序包括系统初始化函数、定时器配置函数、指令函数、蓝牙通信初始化函数、机器人步态算法函数、机器人待机函数、主函数等,程序流程如图7 所示。
图7 程序流程
3 机器人实现
2.1 电路板制作与实现
将绘制完成的电路原理图封装成PCB 图,进行布局和连线,打印电路板实物,将各元件焊接在电路板上,完成电路板的制作,控制电路板实物如图8 所示。
图8 控制电路板实物
驱动模块上有3 个XL4016 转压芯片,分别由3 个滑动变阻器来控制输出电压,转换为2 个7.4 V电压输出和1 个5 V 电压输出,驱动模块电路板实物如图9 所示。
图9 驱动模块电路板实物
2.3 系统实现
对装配好的四足机器人进行测试,包括步行前进和左右转弯。步行转弯是四足机器人稳定性的首选指标,因此测试步行前进和左右转弯是相当重要的。
测试中机器人可以实现稳定前进步行,步行速度约为10 cm/s,步行采用较为稳定的对角步态,机器人步行前进步态测试图如图10,完成了2 个周期对角步态。
图10 机器人前进步态测试图
转弯能力可以协助机器人通过各种复杂地形,因此转弯也是保证四足机器人机动性能的一个重要指标,测试中机器人可以实现稳定的原地左右转弯约为15°/s,左右转弯依旧采用较为稳定的对角步态,顺利通过转弯半径为30 cm 的圆形轨迹,单周期左转弯过程如图11。
4 总结
本文设计与实现的12 自由度四足机器人模型由3D打印件构成,以STM32F4 单片机为控制核心,采用对角小跑的步态算法,通过输出12 路PWM 波控制12 个舵机协调工作,可以实现四足机器人原地踏步、直线行走和转弯等动作。经过实验测试,与较轮式或履带式机器人相比该四足机器人的适应性更强,可应用于复杂和危险环境地形。
图11 单周期左转弯过程图