
人形机器人是具备人类的外形特征和行动能力的智能机器人,可以采用双腿行走,通过手臂和身体的协调完成一些简单的动作,以及通过简单的语言和人类进行交流。与传统的机器人相比,人形机器人具有很大的优势,广泛应用于工业、农业、军事、医疗等领域。随着机构学、控制学、传感技术、人工智能技术的发展,人形机器人技术的发展越来越快,除了具备了人工智能外,还可以根据人类的声音、手势等从事相应动作,并具有基本的记忆和辨识能力。本文采用STM32芯片设计出了一款小型仿人机器人控制系统,应用于自主开发的小型仿人机器人,能够实现机器人的平稳行走,自主避障,开发周期短,成本低。 " |9 L( h7 ]9 Q+ r7 s, l+ X; @ : R$ k! U6 } R, J9 z4 } 1 小型仿人机器人的结构简介 小型仿人机器人虚拟样机模型如图1所示。该小型仿人机器人具有10个自由度,每条腿具有3个自由度,每条胳膊具有2个自由度。该小型仿人机器人实物如图2所示,小型仿人机器人高25厘米,重350g,小型仿人机器人的10个舵机分布在机器人的各个关节,控制板安装在机器人的背后,电池装在机器人胸部之内,红外测距传感器安装在机器人的胸部前方,无线模块NRF24L01和姿态传感器随控制板安装在机器人的背后。 ![]() 图1 小型仿人机器人虚拟样机 ![]() 图2 小型仿人机器人实物结构 & q% T0 y) A, A/ h0 d2 F 为了给该小型仿人机器人提供足够的动力、有效的控制力矩和一定的续航能力,该小型仿人机器人各个部件选型如1表所示: + O6 Q& j5 ?/ O 表1 小型仿人机器人部件一览表
2 小型仿人机器人控制系统设计 小型仿人机器人控制系统的硬件组成如图3所示,包括主控系统和遥控系统两大部分,它们通过遥控器通过NRF24L01发出的2.4GHZ无线信号进行通讯。 总体来说,小型仿人机器人控制系统的硬件部分主要有8个模块,包括主控芯片模块、电源模块、通讯模块、PWM多路输出模块、红外传感器模块、姿态传感器模块、SD卡模块、遥控器等,其硬件系统模块如图3所示。主控芯片模块是机器人的大脑,控制机器人的运动和处理各种数据;姿态传感器用来检测机器人的姿态,以便实现其姿态测量;SD卡模块是记录姿态数据,以便后续处理。 # A! u3 g% i4 l$ p6 Q5 i![]() 图3 小型仿人机器人控制系统硬件组成框图 ; x9 A. }- x( `0 Y/ ^) y' U" t 2.1小型仿人机器人控制电路总体设计 控制系统硬件电路采用自顶向下的方式设计,总体设计图如4所示。 4 G7 ~. Z' Z6 W1 [0 w: o* U![]() 图4 STM32总体电路 2.2主控芯片外围电路设计 STM32作为整个控制系统的核心,具有十分重要的作用,为了保证系统稳定工作,必须设计好STM32外围电路,尽量减少或避免外界干扰[3]。主控芯片采用STM32F103RET6,封装为LQFP64,主频72MHz,具有ADC、DMA、SDIO等功能,其外围电路设计如图5。 ![]() 图5主控芯片STM32外围电路 ( h7 z$ V" d7 G; S+ U 2.3供电电路设计 控制系统由放电倍率大的航模电池供电,输出3.7V电压,一路直接给舵机、红外测距传感器供电,另一路通过降压芯片AMS1117-3.3把电压降到3.3V给STM32芯片、MPU6050、NRF24L01供电。为了保障电池充电方便,本电路板采用TP4056芯片通过USB接口给电池充电,充电时7管脚输出低电平,红灯D2亮,6管脚输出高阻,绿灯D1灭;充满时7管脚输出高阻,红灯灭D2,7管脚输出低电平,绿灯D1亮。控制器的电源部分如图6所示。 ![]() 图6供电电路 & B- N# ^ E( @7 O9 Y( r* [5 L 2.4姿态传感器电路设计 MPU6050是INVENSENCE公司推出的一款传感器,具有低成本、低能耗和高性能的特点。该芯片首次集成了三轴陀螺仪和三轴加速度计,拥有数字运动处理单元(DMP),可直接融合陀螺仪和加速度计数据。陀螺仪最大能检测±2000°/s,加速度计能最大检测±16g,最大能够承受10000g的外部冲击。MPU6050采用IIC协议与主控芯片STM32进行通讯,电路设计如下图7示。 6 }7 z" O0 ] B" N/ o![]() 图7 MPU6050电路 + F$ C( V! ~3 [" Z: r 2.5无线模块NRF24L01电路设计 本控制系统和遥控器之间采取NRF24L01模块进行通讯,NRF24L01是一款工作在2.4~2.5GHz世界通用ISM频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型SchockBurstTM模式控制器、功率放大器、晶体振荡器、调制器、解调器。输出功率、频道选择和协议的设置可以通过SPI接口进行设置,电路图设计如图8。 ![]() 图8 无线模块NRF24L01 2.6 SD卡模块电路设计 为了便于准确分析实验数据,我们设计了机器人控制系统的存储单元,主控单元可以将采集的姿态信息、遥控信息直接存储在SD卡中。SD卡的电路设计如图9所示,采用SDIO的通讯协议,速度高达10M/S。 ![]() 图9 SD卡模块电路 2.7 PCB电路设计 完成原理图设计后,进行了双层PCB电路板的设计,实物控制器的PCB板如下图10所示。整体PCB控制板尺寸为50mm×70mm,利用四个铜柱将控制器竖直安装在小型仿人机器人的背部,PCB实物如图10。 ![]() 图10 PCB板实物 $ U8 T& g: i, r9 ^) G5 g# q 2.8遥控器设计 本文设计的仿人机器人有两种运行模式,自动模式与手动模式。在自动模式下,机器人由编写的程序控制直接完成一连串预设的动作。而在手动模式下,可以通过遥控器实时控制机器人动作。因此为了实现远程操控机器人完成动作,同时设计了基于STM32F103C8T6芯片的遥控器手柄,原理图如图11。 ![]() 图11 遥控器原理图 该遥控器手柄通过NRF24L01无线模块与主控芯片进行通信,两个摇杆均可向前后左右下5个方向按动,可实现仿人机器人的前进、转弯、鞠躬和起立等动作。 * X4 G k$ Z. }9 | 3 小型仿人机器人控制软件设计 3.1 整体设计流程 小型仿人机器人通电后,各个舵机进行初始化,让机器人保持站立。通过姿态传感器MPU6050读取机器人的姿态,若姿态偏移则进行校正,使之保持站立姿势,然后机器人通过接受指令工作,软件流程框图如图12。 ![]() 图12 软件流程框图 3.2舵机控制的插补法 仿人机器人的控制算法主要包含两种,一种是速度控制算法,另一种是多个关节的联动控制算法[4-6]。本系统采用“插补法”速度控制算法控制机器人舵机运动。 舵机本身是不能进行速度控制的,我们必须要通过软件实现,想要实现速度控制,必须要给定舵机的初始位置和终点位置,然后给定从初始位置到终点位置的时间,把时间和角度分别细化,并一一对应。这样就可以从宏观上对舵机实现速度控制。时间细分的越密集,舵机的转动也越流畅,但是受舵机自身条件的限制,不可能无限的细分下去[7]。插补法过程如下。 采用定时器中断来实现时间的细化,一个周期为 T 的时间里,定时器中断 N 次,这样时间的细化单位如式(1)所示。 ![]() “差补法”的软件设计如图13所示。 0 G& V! q* b& j3 u7 z4 \+ _3 ` ![]() 图13 差补法速度调节流程图 4 小型仿人机器人试验 完成小型仿人机器人的编程后,对机器人进行了蹲下起立、摆臂、鞠躬、摆腿、步行前进、倒地后起立、避障等试验,结果如下。 0 o8 ]5 F$ X6 I" A. z9 R# [ 4.1 蹲下起立 通过踝关节和膝关节舵机的协调,再配合上肩部动作,机器人做出了上下起伏的蹲下起立动作。 ![]() 图14 蹲下起立图 / k# V) F' V$ U 0 P f: T# }( U# Z# D* M# { 4.2 摆腿 将机器人头朝下放倒后,分别做出前后摆腿和左右摆腿的动作。 ![]() 图15 前后摆腿图(上)和左右摆腿图(下) 1 p! P" k5 K. q1 L! a0 ] 4.3步行前进 通过髋关节与膝关节舵机的协调配合,机器人以小碎步的形式稳步前进,肩关节舵机的摆动则为机器人提供平衡作用。 ![]() 图16 步行前进图 4.4倒地后起立 机器人在倒立的初始状态下,通过肩关节、肘关节、髋关节和膝关节舵机的联动,实现自行起立。 2 S* X4 Z% x# x! {$ L+ u![]() 图17 倒地后起立图 ( z. p; g) u' u3 C+ } 5 E. B* K' N' O, B' }5 a3 n- a
4.5 红外传感器智能避障 机器人通过红外测距传感器检测到前方有障碍物时,通过腿部舵机的配合,自动向左转绕开障碍物。 ![]() 图18 智能避障图 5 结论 本文基于STM32F103芯片设计了一款通用的小型仿人机器人控制系统,该系统能够控制10自由度(最多18自由度)的小型仿人机器人。经过试验,10自由度小型仿人机器人在该控制系统的控制下,能够实现稳定行走和自主避障,能够完成各种预期动作,并能通过姿态传感器MPU6050实现机器人的姿态测量。本文还重点研究了多路舵机的联合控制方法,实现了机器人各关节协调运动。本人研究的控制系统具有很强的通用性,为后续研究提供参考与借鉴。 1 X; Y, l( X+ K# t3 I* n& K |
很强的动手能力和理论基础棒棒 |
很赞啊 |
非常好的设计方案。 |
不错,谢谢分享! |