基于STM32的夹爪式蛇形机器人控制系统设计
2022-11-02甄富帅宋光明毛巨正刘盛松宋爱国
甄富帅,宋光明,毛巨正,刘盛松,宋爱国
(1.东南大学仪器科学与工程学院,江苏南京 210096;2.国网江苏省电力有限公司,江苏南京 210024)
0 引言
在复杂多样的自然界环境中,生物蛇的运动表现出良好的灵活性和环境适应性。与传统的轮式机器人相比,通过仿照生物蛇的骨骼结构和运动形式所设计的蛇形机器人更具操作性,是仿生机器人领域中的研究热点,其实际应用包括科学探险、空间检测、灾难搜查等[1-3]。
目前,大多数蛇形机器人主要用来执行探索任务,但该类机器人只能被动性地适应环境,缺乏自主作业能力,其在探索方面的应用受到了限制[4]。此外,蛇形机器人是一种具有多个关节的串联机器人,过多的自由度使得其运动控制器的实现过程过于复杂[5]。
针对以上问题,本文设计了一种基于STM32的夹爪式蛇形机器人控制系统。该系统具有集成度高、操作简单的特点。系统中机器人具有5种运动模式,具备抓取与搬运功能,能够在复杂环境中实现信息采集任务,有效提高了蛇形机器人的自主作业能力与环境探索能力。
1 系统总体设计
蛇形机器人控制系统的整体结构如图1所示,主要包括计算机控制终端、机器人运动系统和检测系统3部分。计算机控制终端主要用于机器人的步态切换控制与状态监控。机器人运动系统由RA8-U35总线型直流伺服电机组成,通过关节间的相互配合与约束来实现不同的运动步态,此外,在机器人的头部关节安装机械夹爪以提高机器人的主动作业能力和可操作性[6]。检测系统以STM32控制板为核心,通过挂载多种传感器采集不同的环境信息,具有良好的可扩展性[7]。在远程操控机器人夹爪关节抓取物体时,操作人员常常使夹爪电机过度工作[8],从而导致电机不正常发热甚至损坏电机,因此在夹爪关节处安装FSR402压力传感器用于判断是否已完成抓取任务。
图1 蛇形机器人系统框图
首先,控制计算机产生步态控制指令,通过串口有线通信的方式将控制指令发送给STM32控制板,然后STM32对控制指令进行解析,将指令信息通过转换电路传递给总线型直流电机,电机根据指令信息执行相应的动作,并将角度信息返回给STM32控制板。此外STM32通过AD采样模块和串口通信模块收集不同的传感器采集到的环境信息,将其与电机反馈角度一同传递给计算机监控端。
2 基于STM32的底层控制板硬件设计
2.1 底层控制板整体结构
机器人底层控制器芯片选用STM32F407VET6单片机,该芯片采用Cortex-M4内核,168 MHz工作频率,具有丰富的片上外设资源和通用I/O接口,具有较强的运算能力、较低的功耗和较好的扩展能力[9]。本系统中底层功能模块主要包括电机信号转换模块、线性电压转换模块和CH340有线通信模块,还包括ADC采样模块、串口通信模块、稳压电路模块等常见模块。基于STM32的底层控制器整体结构如图2所示。
2.2 电机信号转换电路设计
由于本系统中选用的RA8-U35总线型直流伺服电机属于3线接口总线电机,信号线DATA的TX和RX端分时复用一根TTL电平线,因此需要将其转换成STM32能够识别的双线TTL接口。电机信号转换电路如图3所示,采用74HC126D四缓冲器芯片和SN74LVC1G04反相器芯片连接而成。在DATA信号输入端、74HC126D芯片的13号引脚和SN74LVC1G04芯片的2号引脚分别接入上拉电阻,保证TX信号与DATA端的信号总是同步的,TX工作时RX电平不发生变化,即不会导致串口自发自收。最终的结果为TX发送数据时不让RX检测到数据,TX空闲时RX接收其他节点的数据不受影响。
图3 电机信号转换电路图
2.3 线性电压转换电路设计
为保护夹爪电机,本系统中采用FSR402压力传感器读取夹爪抓取目标物体时的受力情况,压力越大,电阻越小。其特点是无需获取精确的压力值,只测试夹爪受力是否超过某一阈值,即可判断是否完成抓取任务。为方便STM32采集数据,需将电阻值转换成电压值,因此设计电阻线性电压转换电路如图4所示。图中,R0为传感器可变电阻,采用LM324四运算放大器与电阻组成转换电路。其中,U4A为电压跟随器,起到缓冲、隔离、阻抗匹配的作用。U4B为恒流控制电路,保证了流过传感器电阻的电流不变。U4C为差分比例运算电路,作用是获取电阻值对应的电压值,并做适当比例调整。最终可得输出电压公式为式(1):
图4 线性电压转换电路图
(1)
2.4 CH340通信电路设计
目前系统采用计算机控制终端与STM32有线通信方式,通过CH340N芯片实现TTL串口信号与USB信号之间的转换。CH340N是一种专为USB总线设计的转接芯片,内置时钟,无需外部晶振,其通信电路原理图如图5所示。在芯片电源输入端外接退耦电容,起到滤波作用。
图5 CH340通信电路图
3 运动控制系统软件设计
本文设计的运动控制系统程序分为计算机控制终端的上位机程序和蛇形机器人底层STM32控制程序,程序结构如图6所示。上位机程序的主要功能包括蛇形机器人运动模式远程控制和系统状态监控。STM32控制程序主要功能包括传感器数据采集和蛇形机器人运动控制。
图6 运动控制系统程序结构图
3.1 上位机人机交互软件
上位机人机交互软件界面如图7所示。操作人员可以通过该软件远程控制蛇形机器人执行相应的运动指令或是执行抓取动作。除此之外,上位机程序会对蛇形机器人采集到的环境信息和状态信息进行收集和展示,如果出现错误情况,如夹爪电机上的压力传感器受力超过阈值,会在界面上显示相应的报警信息。
图7 上位机人机交互界面
3.2 多运动模式控制器设计
3.2.1 控制器选型
目前对蛇形机器人的运动控制主要分为三种方法[10]:
(1)基于蛇形曲线的控制方法,将蛇形曲线作为蛇形机器人的控制曲线,一般用于实现二维蜿蜒运动步态;
(2)基于数学模型的控制方法,能够实现机器人复杂、精确的运动控制,但对机器人的自适应控制较差,且实现过程过于复杂;
(3)基于CPG的控制方法,相比于前两种方法,CPG通过模拟生物体神经中枢系统对整个机体发送控制命令,自发地产生周期性控制信号,更适合实现高冗余度、多关节机器人的控制。
因此,为简化控制复杂度,本文采用CPG的方式来控制蛇形机器人。常见的CPG网络可分为基于神经元的CPG网络和基于非线性振荡器的CPG网络。其中前者结构十分贴合生物模型,但构建过程复杂,输出信号并不完全平滑,会降低机器人的运动效率;而后者结构简单,通常情况下具有更少的控制参数。常见的非线性振荡器有Hopf振荡器、Kuramoto振荡器和Matsuoka振荡器等。此外,研究表明生物的CPG机制应该是具有分层结构的,这种结构能够有效降低机器人的控制复杂度[11]。
本文在运动控制器中引入基于Hopf振荡器的CPG方法,将运动过程分为2层处理,第1层用于生成基本运动信号,第2层用于信号去耦合,优化控制曲线。其优势在于,可以使机器人实现更多的运动步态,并且可将部分计算过程进行封装,简化操作过程。
3.2.2 基于Hopf振荡器的双层CPG运动控制器
根据调研,第1层Hopf振荡器输出信号[10]可表示为式(2):
(2)
式中:xi(t)和yi(t)分别为振荡器产生的2种输出信号曲线;θxi和θyi为输出角度信号,可任选其中一个作为蛇形机器人水平关节电机的控制信号,另一个作为蛇形机器人竖直关节电机的控制信号,用来实现机器人三维空间的运动。
第1层控制器的两种输出信号相互耦合,具有恒定的相位差,因此很适合用来控制具有2种关节类型的蛇形机器人,但缺点是2种输出信号在某些情况下具有相同的变化趋势,不利于信号动态调节,因此在式(2)的基础上引入第2层控制模型,其表达式如式(3):
(3)
式中:(1+e-τ(t-Δt-σ))-1为文献[11]中提到的Sigmoid屏蔽函数,作用是过滤掉Hopf振荡器初始阶段的不稳定信号,使蛇形机器人能够执行软启;kx和ky分别为2个输出信号的幅值系数;Δθ为水平关节的偏移角度,用于实现转弯运动;Δt为信号θyi沿时间轴的偏移量,用于调节两种关节的相位关系以及关节运动的执行时机;p(t)是信号θxi的平滑过渡函数,其动态特性如式(4):
(4)
式中:t1和t2分别为关节输出信号平滑切换的开始时间与结束时间;y0为切换后的信号幅值变化系数。
本文所设计的双层运动控制器能够驱动蛇形机器人完成蜿蜒、侧移、侧滚、蠕动和转弯运动5种基本运动步态。设第1层控制器的振荡频率为2π,信号幅值为1,第2层控制器的Sigmoid屏蔽函数为1-e-5t,则其不同步态的控制参数如表1所示,对应的信号曲线如图8所示,其中,转弯运动需要改变式(3)的Δθ参数,其他参数与蜿蜒运动相同。
表1 蛇形机器人不同运动步态的控制参数
(a)侧滚运动
(b)蠕动运动
(c)蜿蜒运动切换转弯运动
(d)蜿蜒运动切换侧移运动图8 蛇形机器人不同运动步态的控制信号
4 运动控制系统实验验证
4.1 基本运动实验
基本运动实验主要测试蛇形机器人的运动性能,根据时间和运动距离计算平均运动速度。测试过程中,蛇形机器人夹爪不夹取物体,即只测试空载情况下的运动性能。经过多次实验,可测得蛇形机器人的运动性能如表2所示。该蛇形机器人能够顺利实现5种运动步态,其中蜿蜒运动的切向运动效率最高,侧滚运动的法向运动效率最高,侧移运动是一种三维运动,可实现斜向运动,蠕动运动通常用于狭窄环境或摩擦力较低的管道,转弯运动是带偏转角度的蜿蜒运动,运动更加灵活。多种运动模式有效提高了蛇形机器人的环境探索能力。
表2 蛇形机器人运动性能
4.2 自主作业实验
自主作业实验主要测试蛇形机器人抓取和搬运物体的能力,蛇形机器人实物图如图9所示。测试过程中,操作人员可根据机器人所处环境的不同切换不同的运动步态,并且能够随时从上位机获取机器人采集到的各项环境指标。可测得蛇形机器人的抓取、搬运能力数据表如表3所示,该控制系统有效提高了蛇形机器人的自主作业能力。
(a)抓取目标物体
(b)光滑管道中搬运物体
(c)运送物体图9 蛇形机器人实物图
表3 蛇形机器人抓取、搬运能力
5 结束语
本文设计了一种基于STM32的夹爪式蛇形机器人控制系统,完成了机器人底层控制器的硬件电路设计与搭建。该系统可根据需要挂载多种传感器,能够采集温湿度、烟雾气体等多种环境指标。机器人头部关节安装了夹爪用于实现目标物体抓取与搬运任务,提高了机器人的可操作性。引入一种基于Hopf振荡器的双层CPG控制方法,简化了蛇形机器人的控制过程,使其能够实现蜿蜒、侧移、侧滚、蠕动和转弯运动5种运动步态。最后通过实验表明该控制系统有效提高了蛇形机器人的自主作业能力和环境探索能力。