一种基于STM32的四足机器人设计与仿真分析
扫描二维码
随时随地手机看文章
引言
目前国内外都非常重视煤矿救援机器人的研究与开发,国外进行相关研究的起步较早,技术也较为成熟。国外救援机器人已经具有建立巷道三维模型的功能(比如美国卡内基梅隆大学研制的机器人Groundhog),国内外机器人的移动方式都以轮式和履带式为主,而控制方面都是采用远程遥控方式,目前也都还没有在巷道中实现完全自主导航完成救援的报道。
伴随着传感器、智能控制等技术领域的发展,相比于矿井机器人(发生灾害后环境复杂且充满危险),移动机器人在自主导航方面已经有了长足的进步,尤其是室内机器人自主导航技术已经相对成熟,而室外如汽车自动驾驶模式的发展也十分迅速。
本文主要探究一种可以在矿井内部自动行走的四足机器人,目的是可以传输影像、探查音源等,用于矿井发生事故时进行井下救援,防止二次事故对救援人员造成伤害。本文主要介绍了第一阶段的研究内容,即控制四足机器人自动行走。
目前,机器人的移动方式主要包括履带式、轮式和足式。
履带式机器人能更好地适应松软的地形,例如沙地、泥地,履带与地面接触面积大,较平稳,缺点是对高低落差较大的地形无能为力。
轮式机器人更适合平坦的路面,特别是马路,且能高速移动,但容易打滑,不平稳,且对复杂地形无能为力。
四足机器人步行腿具有多个自由度,落足点是离散的,故能在足尖点可达域范围内灵活调整行走姿态,并合理选择支撑点,具有更高的避障和越障能力。为此,四足机器人的研究已成为机器人学中一个引人注目的领域,而运动学的研究是步行机器人各项研究的基础。
本文首先根据四足动物的身体结构,提出一种四足机器人结构设计方案,然后对该机器人进行结构分析,并采用Solidworks软件建立四足机器人的虚拟样机,最后对分析结果进行仿真验证。
1四足机器人本体结构设计
1.1自由度确定
四足机器人在行走过程中,腿部主要有两种状态:摆动态、支撑态。摆动态时步行腿相当于连杆串联起来的空间开链式结构,步行腿的自由度数等于关节数。支撑态时基体是并联机构的中央构件,地面可作为并联机构的机架,步行足与地面接触存在摩擦,不打滑,可看作是与地面组成的球关节。
如图1所示,该腿部机构构件数为4,包含5个低副(其中包含1个复合较链),不含高副。
设任意时刻处于支撑相的腿数为n(n≤4),则此时模型为具有n个分支的空间多环并联机构,其自由度数M可由式(1)计算:
式中:F为自由度:n为构件个数:P1为低副个数:Ph为高副个数。
将n=4,P1=5,Ph=0代入式(1),得单腿的自由度F=2,故机械的总自由度等于8。由此可知,无论该机器人采用何种步态,躯体在一定范围内均可实现任意位置和姿态,同时也验证了本文所建立的简化结构能够满足机器人在空间的基本运动要求。
1.2机构模型的建立和简化
该四足机器人的机械结构参考了哺乳类动物的生理结构,由五部分组成。腿部与躯干由5个关节连接,每个关节的自由度有1~3个。考虑到机械的灵活性与复杂性的关系,对机械结构进行一定的简化。简化后结构如图2所示,由五部分组成。4条腿的参数、结构相同,并且呈中心对称分布。
由图3可以看出,该机器人结构相对简单,每条腿配有2台电机,分别控制腿部的前半部和后半部,共配有8台电机,其与4条机械腿以及上下2块金属盖板共同组成了该四足机器人。
2运动设计及仿真
2.1四足机器人足端轨迹规划
令起点位置Ps=(xs,ys,zs),期望落脚点的位置为Pd=(xd,yd,zd),则每次跨腿的长度为Tx=xd-xs,每次抬腿高度为Tz=zd-zs。
足端轨迹规划采用Raibert提出的算法,具体地,令T为步态周期,h为支撑相占空比,则摆线轨迹为:
2.2仿真验证结果
下面采用MATLAB软件对四足机器人的足端轨迹进行模拟仿真。
以四足机器人为坐标原点,建立坐标系,先进行x方向(即平行于地面方向)上的仿真,如图4所示。
然后进行:方向(即垂直于地面方向)上的仿真,如图5所示。
最后进行四足机器人在二维空间上的仿真,如图6所示。
由图4、图5、图6可得到四足机器人的足端轨迹,同时也验证了四足机器人结构和运动设计的合理性。
3控制系统分析
3.1控制元件分析(PlD调节器)
PID控制即为对偏差进行比例、积分和微分的控制。P与响应快慢有关,I与静态误差有关,D与振荡有关。在微处理器里,使用离散的差分方程替代连续的微分方程,这样它只需要根据采样时刻的偏差值计算控制量即可。
下列各式中,kp、ki、kd为设定的PID初始参数:ek为本次误差:ek-1为上一次误差:Ⅹei为累加和:pwm为输出:α为电机加速度:θ为偏离平衡位置的角度:α为角度变化率。
(1)位置闭环控制算法(根据编码器的脉冲累加测量电机的位置信息):
(2)速度闭环控制算法(根据单位时间获取的脉冲数测量电机的速度信息):
(3)直立控制算法(平衡控制):
直立控制算法流程如图7所示。
(4)串级PID控制算法(对电机直接操作,控制直立和速度):
式(6)速度闭环控制算法可以改为式(8):
合并式(7)和式(8)得到式(9)):
串级控制系统如图8所示,注意此时系统中,速度控制是负反馈。
(5)转向控制)使用Z轴陀螺仪的数据作为转向速度偏差进行P控制,保持转向速度为设定值,这样做,算法简单,容易实现,避免了打滑漂移无法检测的问题。
3.2控制程序分析
3.2.1机器人电机的控制流程图
其控制原理是通过改变机器人的目标速度实现控制。目标速度经过运动学函数得出电机的实际输出,最后通过PID速度控制函数来实现电机的速度控制。具体实现过程如图9所示。
3.2.2 STM32程序控制结构流程图
RTOS任务为每个任务赋予一个优先级,以此来决定各个任务执行顺序。RTOS任务调度器根据任务的优先级决定任务的执行顺序,每个任务执行的时间很短,因此几乎等效于所有任务同时执行,在此期间如果发生中断则去响应中断。串口2中断用于App蓝牙控制,串口3中断用于接收ROS传过来的信息。Car_Mode决定PWM输出控制电机的极性,一般在出厂前已经设置好,用户无须更改。
具体实现过程如图10所示。
3.2.3电机控制输入函数(四足八电机)
此函数设定了几种四足上电及运行的情况:
(1)开始上电的时候,四足静止不动:
(2)站立,此时代表解锁状态,刚解锁时,四足站立:
(3)踏步/行走,代表四足开始运动,可以调节跨步的大小:
(4)四足关机。
函数流程具体如图11所示。
4结语
本文首先通过对四足机器人进行机械结构分析,确定了该类型四足机器人的运动形态:然后做出了四足机器人足端轨迹,确定了四足机器人的行进方式:最后基于STM32单片机对四足机器人发出行走指令,完成了自行走四足机器人的初步研究。