基于STM32的平衡机器人设计

前言:计算机是第三次工业革命的代表,其使得传统工业更加机械化和智能化,极大提升了工业生产效率和降低了生产成本,并随着计算机技术的迅速发展,计算机也越来越小型化和集成化,从最初只能用于大型工业到广泛运用于各个行业领域,其计算能力也得到大幅提升,极大地促进了整个社会往信息化,智能化发展方向发展,甚至完全改变了传统的运作模式(孙增择.RoboCup世界杯与中国机器人大赛.机器人技术与应用2010(4):7-8)。随着品体管的大规模应用以及高度集成化,以计算机技术为核心的嵌入式技术得到迅速发展和应用,其主要特点是:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统(贺龙豹.竞赛用搬运机器人的设计与实现[D].南京:南京财经大学,2013)。正是由于嵌入式技术的特点,结合人工智能在算法上的可行性,最终促进了机器人技术的迅速发展,并在工业、军事、医疗、环境等各行各业有着广泛的发展和应用,如何将嵌入式技术运用于智能机器人也成为了一个热门的研究方向(高正中,龚群英,宋森森.基于STM32的智能平衡车控制系统设计[D].山东科技大学电气与自动化工程学院,山东青岛266590)。

1 两轮平衡机器人简介

从机器人的移动方式分,可以分为固定机器人和移动机器人,固定机器人主要指工业生产中的机械臂,移动机器人又可以分为足式机器人和轮式机器人,足式机器人有着更高要求的控制硬件及其程序算法,一般以轮式机器人居多,而轮式机器人又可以分为多轮机器人,两轮机器人,以及单轮机器人。其中两轮机器人及单轮机器人也被称为平衡机器人(康浩宇,谢天,张辉辉.采用STM32的智能小车开发实现[D].常州工学院计算机信息工程学院,江苏常州213000)。其依靠传感器数据以及平衡算法来进行平衡控制,本文中主要用述的是两轮平衡机器人。由于这种机器人可以自我平衡,扩展了它适应地形变化的能力,运动灵活、行驶速度和倾斜角度可以调节,通过两轮的差动输入可以实现零回转半径的优点,能够适用于空间狭窄且地形复杂的地形。

2 机器人的平衡控制设计

2.1平衡控制原理

平衡机器人设计的核心在于平衡控制算法的实现,由于其平衡控制过程类似于物理现象上的倒立摆平衡原理(STMicroelectronics Ltd.STM32F103xC datashect.Rev5[J/OL]),所以我们以倒立摆物理模型为基础,分析其平衡条件。
基于STM32的平衡机器人设计
如图2-4所示,其中,a为电机产生的加速度,F2为加速度产生

的惯性力,F3和F1为mg产生的反向分力,经过分析,当θ很小时,F1≈mgθ,所以可以得到水平方向的合力F合1

F合1≈F2-F1=ma-mgθ=mk1θ-mgθ

其中,与a呈正比,k为一个常数。

为了使得倒立摆能够尽快稳定,需要增加阻尼,由于阻尼与的导数角速度呈正比,所以分析得到水平方向的合力F合2

F合2=mk1θ+mk2w-mgθ

得到小车加速度:

a=kk1θ+k2w

所以当满足平衡条件a>g时,机器人能够保持平衡。

2.2机器人平衡控制器设计

平衡机器人的基础是嵌入式技术,其包括相关硬件及其软件设计,在本设计中采用stm32fl03作为机器人的主控芯片用于各种数据的处理和实现对电机的控制,数据来源于各种传感器芯片,其核心是mpu60506轴陀螺仪芯片,其能够采集机器人用于实现平衡的核心参数,比如包括水平方向和垂直方向的角度和加速度,采用前面讨论的平衡控制原理就能实现平衡机器人最基本的平衡运动控制。

2.2.1理想电机脉冲平衡控制

由于加速度变量和PWM脉冲占空比呈一定的线性关系,在本设计中对加速度的控制就体现在对PWM信号的控制,其理想控制框图如图2-5所示:
基于STM32的平衡机器人设计
其中,w1表示垂直方向角速度,01为对应的角度,K1为一个常数,PWM1为理想电机脉冲信号。

2.2.2实际电机脉冲平衡控制

由于受到陀螺仪硬件上的缺陷,虽然其计算角度不受震动的影响,但是长时间会出现零漂现象,为了弥补这种缺陷,在实际设计中采用加速度仪作为辅助测量,其特点是计算角度易受震动影响,但是不会出现零漂现象,两者互补实现角度的精准测量,并考虑阻尼因素,得到实际的PWM信号控制框图如图2-6所示。
基于STM32的平衡机器人设计
2.2.3稳定电机脉冲平衡控制

为了获得更好的平衡稳定性,还需要在位移和水平转向角上产生相应的PWM控制分量PWM2和PWM3,与前面所述PWM1分量合成最终平衡控制PWM_Balance共同控制电机转速,控制框图如图2-7、2-8所示:
基于STM32的平衡机器人设计
3 机器人平衡控制结果

依据以上平衡控制原理用C语言对stm32控制器进行编程实现(STMicroelectronics Ltd.STM32F103xC datasheet.Rev5[J/OL];StephenPrata.CPrimer Plus中文版[M].云颠工作室,译.北京:人民邮电出版社(5版),2005),并搭建好机器人硬件体系,根据实际现场情况进行参数微调,即使其受到一定的外部干扰情况下,也能够自主控制平衡,成功实现两轮机器人的稳定平衡控制,实物效果如图3所示。
基于STM32的平衡机器人设计
4 结语

软件设计需要查阅芯片手册合理配置硬件资源进行硬件的初始化准备,比如配置控制器时钟系统,各种定时器以及中断系统,还需要掌握各种通讯协议根据时序图进行接收发送字节功能的实现,比如I2C和USART等,便于进行控制器和外围传感器的通讯。传感器并不能直接获取所需物理数据,在使用之前还需要进行参数的误差校正,正确换算成所需物理量,并且确保数据误差达到合理要求,以便于平衡控制器的实现。

基于STM32的平衡机器人设计-AGV吧
基于STM32的平衡机器人设计
此内容为付费资源,请付费后查看
20积分
付费资源
© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容