基于MATLAB及STM32的双足机器人步态规划研究与实现

2023-04-07 02:25王宇洋
中国新技术新产品 2023年1期
关键词:双足舵机步态

朱 丹 王宇洋 陆 扬

(南京理工大学紫金学院,江苏 南京 210023)

0 引言

双足步行机器人与轮式机器人不同,在地势较复杂的情况下,双足步行机器人的灵活性更高,不仅具有更广阔的应用场景,而且还可以更协调地完成任务。同时,其跨越多个学科,有深厚的研究基础,因此双足机器人发展速度极快[1]。该文通过建立双足机器人的模型、列写D-H 参数进行MATLAB 仿真,对双足机器人的步态稳定性进行分析、算法调试,最终制造实物并对实物进行验证。

1 双足机器人系统的设计流程

设计目标是制造一个双足步行机器人。首先,研究成年人身体的具体数据,找出合适的构建机器人腿的D-H 参数。其次,通过MATLAB 软件的机器人工具箱建模,并为其规划适合步行的轨迹并进行仿真,获得合适的行走数据。最后,通过STM32 单片机设计系统的硬件电路,编写相应的C 语言程序,使实物具备相应的功能。

2 双足机器人系统的设计原理及仿真

从运动学的角度来看,机器人的腿更像是机械臂,对简单的双足机器人来说,2 个旋转关节的串联机械臂就可以满足相关需求。但是要确定其D-H 参数也是一个很复杂的过程,要制造一个机器人,其尺寸最好与人的尺寸比例一致。通过研究静态尺寸来研究人体构造尺寸及人体部分肢体长度。根据《中国成年人人体尺寸(GB 10000—1988)》的要求,具体计算和取值见表1[2]。

表1 机器人主要设计尺寸

3 双足机器人模型建立及仿真

3.1 单腿构造

根据上文的数据、D-H 参数和机器人正运动学的相关理论内容构造1条机器人单腿。其模型如图1 所示,列写的D-H 参数见表2。

表2 机器人单腿的连杆参数

图1 双足机器人机构模型

3.2 单足运动

人体步行的姿态为2条腿交替前行,因此可以根据单足的运动分析推导双足运动的规律。因为在笛卡尔空间的轨迹规划要求大量逆解,换算到关节空间还有可能出现部分轨迹不在工作空间的情况,所以要在关节空间进行轨迹规划。主要考虑步行过程中单腿的运动分为几个状态以及每个状态的角度[3]。

首先,在关节空间中进行单腿路径规划,通过观察人走路的情况可以分析人在行走时胯关节、膝关节和踝关节的运动情况。将机器人单腿行走的关节空间变化情况分为8 种状态:1) 向前抬左脚。2) 左脚向前着地。3) 重心落在左脚,右脚微抬。4) 右脚抬起,两腿平行。5) 向前抬右脚。6) 右脚向前着地。7) 重心落在右脚,左脚微抬。8) 左脚抬起,两腿平行。用q1~q8分别表示8 种状态的关节角度。其次,规定每个动作的持续时间,用100 Hz 的频率对末端路径轨迹坐标值进行采样。最后,通过动画观察腿部运动,以验证它是否按照一般行走的姿势完成所有动作。

3.3 双足运动

通过复制上文生成的串联连杆对象(leg)就可以创建多条腿的机器人。但是需要提供不同的基座转换,从而将腿连接到机体不同的点上,得到的结果是1 个包括多个串联连杆(SerialLink)对象的向量[4]。

由于腿的轨迹是一个周期运动,因此可以通过使每个腿的运动轨迹有一个相位偏移来实现按顺序复位的目标,该相位偏移时间为总循环周期的1/2。由于总周期有180 个点,因此每条腿的相移为90 个点。使用模运算来模拟每条腿的循环步态,其结果如图2 所示[5]。

图2 MATLAB 仿真双足运动的2 个状态

4 双足机器人控制系统的硬件设计

在完成MATLAB 软件仿真并获得机器人双足步行的关节变换的基本数据后,就可以设计基于STM32 的双足机器人系统,将舵机运行的参数转换成MATLAB 中仿真的数据。

4.1 双足机器人的机械部分

双足机器人系统中设计的机器人结构尺寸比例是将人体下半身按照比例缩放得到的,其核心部分是6 个转动关节,分别为2 个髋关节、2 个膝关节和2 个踝关节。在制造前参考大量仿真试验、人体下半身的主要数据以及国家标准,最终确定各个零部件的形状,通过打孔、加工装订等工序,最终完成整个机器人的机械结构设计和装配工作。

4.2 双足机器人系统的控制电路设计

4.2.1 总体电路

双足机器人的控制部分通过程序下载完成步态规划,控制器稳定电压供给(电源模块为控制器和舵机提供稳定的电压供给),通过LED 灯显示机器处于不同状态,蜂鸣器鸣响表示电压过低(需要充电)。因此,根据上面的各种功能,电路主要由以下7 个部分组成,分别是主控芯片STM32F103RBT6、串口驱动模块、显示模块、蜂鸣器模块、按键模块、FLASH 模块和舵机系统。具体系统框图如图3 所示。

图3 双足机器人控制部分系统框图

各部分的具体设计如下:1) 电源模块。电源模块主要由滤波电容、AMS1117-3 芯片构成。舵机系统和CPU 共用1 个电源,其供电电压为5.0 V~8.4 V,电源的功率一般可以根据舵机数量自行搭配,例如当使用5~6 个舵机、使用15~16 个舵机时,所需要的额定电流是不同的,前者要达到3 A 及以上,而后者达到8 A 及以上。一般不是每个舵机都会同时工作,因此随着舵机数量增加,电流的增长速度可以适当变慢。2) 串口驱动模块。CPU 的额定电压为3.3 V,而RS232 串口通信逻辑1 为-3 V~-15 V 的电压;逻辑0 为3 V~15 V 的电压。两者是不匹配的,因此需要通过转接芯片来完成两者的电压转接工作,该转换芯片就是CH340。通过串口驱动电路也可以下载程序,还可以实现控制器和PC 机的双向通信。3) 显示电路。显示电路主要由2 个LED发光二极管构成。通过限流电阻接在CPU 的I/O 口上,从而显示不同模式下的状态。4) 蜂鸣器模块。使用源的蜂鸣器通过三极管输入电平就可以驱动鸣响。当电源电压不符合要求时,启动蜂鸣器,提醒用户充电。5) 舵机系统。采用串行总线舵机,该控制系统可以控制6 个串口总线舵机,还可以控制髋、膝以及踝关节运动,使机器人完成各种动作。6) 按键模块。通过按键可以控制当前机器人的模式运行。7) Flash 模块。将机器人要执行的动作编写成动作组程序存入Flash 中,开启控制器后可以根据模式选择执行动作组或者单独动作。

4.2.2 舵机系统

该设计采用的舵机为串行总线数字舵机,型号为LX-824,控制板可以同时控制6 个串行总线舵机,在没有使用弹性连接件和无线传感器的条件下,舵机的控制效果良好。在使用舵机前要先用舵机调试控制板对舵机的偏差调零。

5 双足机器人控制系统的软件设计

将双足机器人的硬件电路装配好后,就编写软件程序,以控制双足机器人运动。考虑7 种机器人的运动模式,分别为立正、前进、后退、左转、右转、向前翻滚以及向后翻滚。采集人体各个关节的动作数据,首先,进行MATLAB 仿真,通过动画观察双足机器人的运动效果。其次,基于相关的数据编写C 语言程序,以控制舵机完成各种运动,使其达到预定状态。其主程序流程如图4所示。该程序最核心的部分是控制单个舵机在一定时间内转动一定角度,通过串口发送指令来完成任务,将MATLAB 中仿真的各个关节数据作为函数参数进行传递后,再根据ZMP 的步态规划算法进行预判和调整。

图4 系统流程图

6 系统调试

对机器人进行调试的方法分为2 个步骤:1) 在MATLAB软件中获取各动作的关节旋转角度,将该数据输入设计好的上位机界面的动作中,再将若干个动作组成动作组,从而完成一系列动作。2) 编写基于STM32 的C 语言程序,以完成动作组脱机任务。在双足机器人的运动过程中,采用基于ZMP 的步态规划算法对机器人的步行轨迹进行预判,以保证机器人行走的稳定性。

以前进为例,分析从人体采集的运动数据和机器人运行数据的试验结果。如图5 所示,机器人和人体前进步伐一致。

图5 机器人和真人的步态对比

7 结语

首先,该文根据人体数据得出双足机器人的D-H 参数,通过MATLAB 动画仿真机器人的运动情况,以验证数据的实用性。其次,设计、制造双足机器人实体编写相关程序,试验结果验证了该双足机器人的正确性。在STM32 单片机的控制下结合多种模块,实现了机器人前进、后退、前后翻滚、左右转动以及模拟步态行走的一系列动作且各个动作相对稳定。尽管在行走的过程中机器人会发生偏移,但是在试验和调试后,实现了机器人正常行走的目标。

猜你喜欢
双足舵机步态
步态异常,老年人应警惕这些疾病
Anti-N-methyl-D-aspartate-receptor antibody encephalitis combined with syphilis:A case report
含齿隙弹载舵机的全局反步模糊自适应控制
基于面部和步态识别的儿童走失寻回系统
基于Kinect的学步期幼儿自然步态提取
基于dsPIC单片机的飞艇舵机控制实现
基于高速同步485总线通信的多通道舵机控制器设计
基于云模型的舵机同步控制
便宜假肢能模仿正常步态