基于STM32的全方位移动平台控制系统设计
2021-04-13赵锦芝朱春义
肖 进,赵锦芝,王 伟,朱春义
(南京工程学院机械工程学院, 江苏 南京 211167)
全方位移动机器人因其灵活的特性、强大的自适应性,越来越多地应用到狭小复杂仓储场所的运输作业中.全方位移动机器人具有在平面内实现前后作业移动及绕机器人中心旋转的特征,其中以2个前轮作为驱动、后轮作为万向轮的移动机器人较为常见[1].全方位移动平台采用全驱动方式,具有较强的实用性[2-3].目前应用广泛的全方面移动方式分为Mecanum轮式全方位移动机器人、全轮偏转式全方位移动机器人和球轮式全方位移动机器人[4-5].
本文采用由三个全向轮组成的全方位移动平台,设计一种基于STM32的全方位移动控制系统.通过运动分解方法对移动机器人平台进行运动分析,在运动过程中可以通过STM32主控芯片将移动的目标速度解算成每个电机的独立速度,从而达到全方位自主移动的目的.
1 全方位移动平台运动学分析
全方位移动平台主要由三个成120°的全向轮、低压直流电机以及减速装置组成,可以通过自身的运动机构并借助控制系统来到达某一指定的目标点.图1为全方位移动平台运动学模型,假设:
1) 全向轮与地面之间不打滑;
2) 移动平台的中心就是三个全向轮轴线的中心;
3) 全向轮之间的安装角度为120°;
4) 机器人运动坐标系水平方向为X轴正方向、竖直方向为Y轴正方向、顺时针方向为Z轴正方向.
图1 全方位移动平台运动学模型
假设全方位移动平台广义速度为[VX,VY,ω]T,各轮的线速度为[VA,VB,VC]T,电机A、电机B、电机C的运动速度分别为VA、VB、VC,移动平台X轴和Y轴的速度分别为VX和VY,移动平台的运动中心即为移动平台的原点O,L为电机与运动中心O的距离,ω为移动平台Z轴方向的旋转速度.
对全方位移动平台在三个方向上的速度进行分解,平移X方向时,VX≠0,VY=0,ω=0,可以得到:
VA=1×VX,VB=-cos 60°×VX,
VC=-cos 60°×VX
(1)
平移Y方向时,VX=0,VY≠0,ω=0,可以得到:
VA=0×VY,VB=sin 60°×VY,
VC=-sin 60°×VY
(2)
沿着Z轴方向旋转时,VX=0,VY=0,ω≠0,可以得到:
VA=ω×L,VB=ω×L,VC=ω×L
(3)
将式(1)、式(2)和式(3)相加可以得到:
(4)
将式(4)转化为矩阵形式得:
(5)
对式(5)求逆解可以得到正运动学方程为:
(6)
由式(1)可知,通过调节三个全向轮电机的转速及转向,就能达到改变整个全方位移动平台运动状态的目的,这是进行软、硬件设计的理论基础.
将移动平台的运动规律分解,然后将指定的线速度和角速度根据公式依次分配到每个电机上,即可完成机器人的运动控制.
2 全方位移动平台控制系统硬件设计
2.1 控制系统硬件结构设计
图2为基于单片机系统设计的全方位移动平台控制系统的结构框图,处理器为MCU单片机处理器;信号输入模块(包括蓝牙、按键和串口模块)将运动信号输入到MCU中,MCU直接对驱动器输出不同位移的信息;传感器模块包括电机尾部的光电码盘、MPU6050惯导模块以及A/D转换模块,光电码盘通过光电切割来计算移动平台位移的速度和距离,MPU6050惯导模块用来计算移动平台移动的加速度和旋转的角度,A/D模块将电源的模拟量转化为数字,OLED显示屏显示MCU通过传感器采集的信息;运动模块由驱动芯片和低压直流电机组成,信号输入模块输入控制信号,MCU根据运动分解结果分配对应的电压信号到驱动芯片,驱动芯片驱动直流电机按照指定路径运动.
图2 全方位移动平台控制系统
2.2 控制系统芯片选择
设计控制系统时,从控制系统的稳定性和性能多方面综合考虑,拟采用STM32F103作为控制系统的主控芯片.
STM32F103是ST(意法半导体)公司推出的32位单片机,具有64 kB SRAM、512 kB FLASH、8个定时器、3个ADC以及2个IIC,是高可靠、低消耗、抗干扰的高性能单片机[6],具有48个GPIO接口,完全符合全方位移动平台GPIO接口的需求.
2.3 电机驱动模块设计
全方位移动平台采用的驱动器WSDC2412D是一款12 A/24 V双直流有刷电机驱动器,是专门为低压直流电机设计的,其主要特点是:工作电压低,工作电压只需24 V;输出电流大,可高达12 A;可驱动最高290 W功率的直流电机,内置过电压、欠电压、过热保护电路,支持满占空比输入,双通道驱动.全方位移动平台有三组电机,采用两组驱动器即可满足驱动的要求.使用定时器输出三路PWM波,驱动时序如表1所示.以一路电机为例,其驱动器信号输入为:INA置低,INB置高,输入PWM波,则功率输出MA为PWM波,MB置低,电机根据输入的PWM波,按照给定速度正转;反之,INA置高,INB置低,输入PWM波,则功率输出MB为PWM波,MA置低,电机根据给定速度反转.表1中H为高电平;L为低电平;X为与电平无关;Z为高阻抗;PWM为输入的变占空比不变频率的脉宽调制信号.
表1 WSDC2412D驱动时序
驱动器的主要功能就是根据MCU发出的控制指令,通过驱动器的控制协议,输出对应的PWM波驱动电机运动.全方位移动平台配有三台电机,用两组驱动器对其进行控制,电机A和电机B分别接入驱动器1的电机通道1与2,电机C接入驱动器2的电机通道1.以电机B为例,驱动器与电机、控制器、反馈元件的连接简图如图3所示.
图3 控制系统接线图
2.4 控制器的引脚分配
全方位移动平台控制系统的GPIO引脚分配如表2所示.
3 全方位移动平台控制系统软件设计
3.1 软件控制流程
软件的总体控制流程如图4所示,首先初始化片内资源,启动接收任务,等待外部的指令,外部指令可以通过串口模块或者蓝牙模块传递,接收到指令后解析该指令,并将解析后的内容发送给电机模块,根据运动分解和PID算法,完成电机速度的运算,同时不断地读取电机的状态和速度,反馈给MCU,并启动OLED显示模块,监控移动平台的状态及各个电机的位置和速度.该控制系统所采用的芯片STM32F103单片机最高晶振为72 MHz,利用定时器的输出比较模式产生占空比可变的PWM波来控制电机的速度,同时通过运动分解将目标速度分配到每个电机上.在状态反馈方面,MCU通过定时器的编码器功能来获取移动平台运动的速度与位移,通过IIC接口连接MPU6050访问其内部的数据寄存器获取移动平台的角度与加速度信息.
3.2 PID速度环模型
增量式PID算法定义为:
(7)
式中:ei为第i次采样输入偏差值;Ti为比例时间;Td为微分时间.
电机控制速度环原理图如图5所示,电机采用速度控制,MCU接收串口模块输入的指令,将机器人的目标速度作为入口参数,通过式(1)至式(6)进行运动学分析,计算出每个电机的目标速度,并通过速度PID控制器,驱动直流电机,直流电机尾部的编码器捕获电机的速度,将速度反馈给PID控制器,PID控制器调节PWM波的输出量,从而达到闭环控制.
图5 电机控制速度环原理图
4 调试试验与分析
在搭建的全方位移动平台上选择X轴方向作为误差基准,通过多次测量X轴方向的数据求取整个系统的平均误差,全方位移动平台如图6所示.
图6 平台调试图
通过Python测试脚本,测量位置为10 m、角度为0°时的位姿,共采集7组数据,如表3所示,并对数据进行分析,可以得出误差统计图如图7所示.
表3 试验数据
图7 误差统计图
从图7可以看出,除了第二组数据偏差较大外,其他数据的位置误差均保持在0.5 m之内,角度误差保持在0.3°之内,试验表明移动平台的精度较高.
5 结语
本文设计了一种全方位移动平台的运动控制系统,该系统充分利用了全向轮的全驱动特性,能够根据输入的指令和MCU的运动分解来完成运动目标任务,通过光电传感器、MPU6050等传感器可以清晰地反馈移动平台的旋转角度和位移距离,控制更加灵活,满足了移动平台对于控制系统的要求;同时以STM32作为控制核心,通过与传感器之间的通信,能够实时了解移动平台自身的状态,实现了良好的通讯;通过驱动芯片WSDC2412D实现对低压直流电机的精确控制;最后通过试验测量本移动平台的定位精度,验证了移动平台具有较高的定位精度,为后续的移动机器人上层的继续搭建提供了良好的平台.