基于MEMS的水下触觉力传感器及BP网络标定实现
2022-02-06张建军李后生刘群坡李沙沙
张建军,李后生,刘群坡,李 涵,李沙沙
(1.河南理工大学电气工程与自动化学院,河南焦作 454003;2.河南省智能装备直驱技术与控制国际联合实验室(河南理工大学),河南焦作 454003)
0 引言
水下触觉力传感器的设计与研究,对水下机械手智能化操作以及水下信息丰富化采集具有重要的意义。由于水下的特殊环境,水深引起的压强会对触觉力传感器产生干扰[1],如果直接测量触觉力,会出现大水压引起的信号变化造成触觉力测量分辨困难的问题[2-3]。非水下环境的触觉力传感器由于无法克服水压强影响或者无法分辨水压信号与触觉力信号,无法直接用于水下触觉力测量。水下机械手由于缺少力觉感知功能,会造成操作目标的损坏,或者由于视线限制造成抓取不牢引起目标脱落的问题[4]。由于缺少力觉感知,水下机械手在作业过程中针对静止目标或者运动迟缓目标可以很方便地实施抓住抓牢,但是对于运动的物体或者动物,就会由于操作者缺少快速决策性造成抓取困难,或者无法完成抓取任务[5-6]。因此,水下机械手触觉力作为常见的物理量,其深入研究对水下作业能力的提高具有重要的理论意义和使用价值[7-10]。
如果直接用水下触觉力传感器,需要先验知识的评判来估计真实触觉力值,不利于生产实践,必须对触觉力传感器进行标定以及数据融合算法研究。针对此问题首先设计了以硅杯为测量核心差压式结构的触觉力传感器,设计了以STM32微控制器为核心的标定电路板。在上位机上MATLAB环境搭建了BP网络结构,通过获取STM32采集的标定数据训练BP网络,训练好的BP网络发送至标定电路板,完成数据融合要求,通过实验测试触觉力传感器的输出精度。
1 传感器结构及实现原理
该传感器为胶囊式形状,差压式结构,通过硅杯式力敏感元件实现力信号测量,如图1所示。胶囊式触觉力传感器上、下侧有两个柔性触头,柔性触头为半球形。
图1 触觉力传感器原理图
仿造人体皮肤感知外界信息原理,球形触头由橡胶材料构成,其质软并保持半球形,可以很好地将外部压力信息无损失的传递给内部硅油。上部柔性触头将触觉力引起的形变转化为上侧内部硅油压强,同时将外部水压强信息转化为内部上侧硅油压强;下部柔性触头将外部水压强转化为下侧内部硅油压强,通过硅油将上、下侧压强信息导引至力测量单元硅杯的上、下侧,通过矢量叠加使硅杯的应变反映了上部触觉力引起的柔性触头变形信息,实现了在硅杯上表面触觉力测量。
所设计的水下触觉力传感器样机如图2所示。柔性触头质软易产生形变,通过硫化工艺和金属固定连接。传感器芯体上端可以直接测量硅油压强,下端通过圆柱形空心管将硅油导入到硅半导体敏感元件的下端,实现差压式测量。传感器主要零件如图3所示。
图2 触觉力传感器实物图
(a)柔性触头
(b)外壳
(c)传感器芯体
(d)滑环图3 触觉力传感器主要零件图
传感器芯体相当于一个惠斯登电桥,其实质是实现液体压强测量,将外部水压以及触觉力转变为柔性触头的变形,挤压内部硅油产生硅油压强,实现芯体上的触觉力测量。
2 传感器标定系统介绍
水下触觉力传感器实现了触觉力引起的应变变化转换为电信号,为了实现标准力信号输出,需要进行传感器标定。扩散硅压阻式传感器[11-12]容易受到温度影响产生温度漂移,由于制作工艺问题,所设计触觉力传感器还无法完全消除水压影响,必须通过数据融合算法消除温度及水深带来的非目标信号影响问题。设计触觉力传感器的标定系统介绍如下。
2.1 整体结构图
触觉力信号的输出受到所加载触觉力、水深、水温的影响,为了通过数据融合实现真实触觉力值输出,需要通过STM32F103微控制器采集触觉力信号、温度信号以及水深信号,经过BP网络算法计算实现标准力值计算,通过串口通讯以及D/A转换实现标准信号输出。采集不同水深以及不同水温下加载一定规律序列的标准触觉力,实现触觉力传感器的输出值测量,分析由水温及水深带来交叉灵敏的规律。
针对水下触觉力传感器实现数据融合示意图如图4所示。触觉力传感器的触觉力信号、温度信号以及深度传感器输出的深度信号通过信号调理后供STM32微控制器采集,STM32微控制器通过A/D转换后实现数据获取后,通过内部BP网络形式的数据结构的计算,获取标准力值。其中信号调理电路实现信号的放大与滤波功能,微控制器内部BP网络为在上位机训练好的权值及阈值已知的神经网络,实质为实现触觉力、温度、水深到标准触觉力映射关系的标定函数。BP网络为实现正确的映射关系,必须通过采集数据和标准触觉力数据的训练,训练过程在上位机MATLAB神经网络工具箱实现。通过串口通信实现上位机对STM32的触觉力、温度、水深三维信号的采集,记录所加载标准力值。构成BP网络训练的数据序列,在MATLAB上BP网络训练获取BP网络的权值与阈值,通过串口通讯发送到STM32单片机实现在线标定。STM32单片机根据通讯协议利用串口同步通信实现BP网络权值与阈值的接收,保证BP网络在线标定实现。
图4 触觉力传感器数据融合示意图
首先建立硬件电路,需要对传感器作用环境的温度、水深信息采集,以及触觉力信号的采集,建立三路信号的调理电路。信号调理电路主要包括信号的放大与滤波功能,然后将信号输入至微控制器实现BP网络的数据融合。BP网络为离线训练好的权值及阈值已知的神经网络。微控制器经过对三路信号的处理实现数据拟合功能,将真实的触觉力信号通过D/A转换以及串口通讯实现标准的触觉力值输出。硬件电路还包括对各部分模块的供电电路。通过串口通讯将力、温度、深度信号按照一定格式发送,并且可以通过一定的通讯格式实现对自身BP网络权值与阈值替换。
2.2 传感器测量原理
实现触觉力测量的传感器实质为实现液体压强测量的硅杯式压阻传感器芯体,通过光刻、离子注入、腐蚀、键合等工艺形成惠斯登全桥形式,输出电压与应变呈现线性关系,具有线性度好、灵敏度高、输出稳定等特点。惠斯登电桥测压与测温电路如图5所示,电桥加载电压,得到电桥应变信号输出电压[13-14]。由于硅杯式半导体材料对温度敏感,所以惠斯登电桥可以等效为一个温度灵敏电阻,通过串联对温度影响较小的精密电阻,测量电压实现传感器温度测量。深度测量采用液位变送器,可以实现标准的1~5 V电压信号输出,通过STM32采集电压信号。
图5 惠斯登电桥测压与测温原理图
3 基于BP网络数据拟合
利用STM32微控制器实现BP网络数据融合,BP网络在STM32实现过程中包括在线标定过程以及训练好的网络数据融合过程。标定过程利用BP网络进行数据融合需要对构建的BP网络进行离线训练,训练过程在上位机上进行。上位机与STM32微控制器通过串口通讯连接。STM32微控制器将采集到的触觉力信号、温度信号、深度信号按照一定的通讯协议发送给上位机,上位机软件接收数据并记录此时加载的真实触觉力值。当接收完标定数据后,建立BP网络进行训练,当满足逼近误差后通过测试样本进行测试,如果满足一定的精度要求后表明BP网络训练完毕。通过串口通讯将训练好的BP网络的权值、阈值等数据按照一定协议发送给STM32微控制器,完成在线标定。完成在线标定后STM32微控制器程序转入训练好的网络数据融合过程,实时采集触觉力信号、温度信号、深度信号,通过训练好的网络数据融合后实现真实触觉力值输出。
3.1 传感器输出测量
将水下触觉力传感器置于标定装置内,标定装置位于盛水容器内,深度传感器置于标定装置上,将供电线引出到水面上连接到信号测量与控制电路板上,信号电路板通过串口通讯与测试计算机相连。在对神经网络的训练样本及检测样本采集过程中,微控制器完成上电初始化,定时中断实现对温度、触觉力信号A/D转换方式测量,通过串口通讯实现深度信号采集,将三路采集数据通过串口通讯按照一定的协议发送给测试计算机。为了利用BP网络完成数据拟合,需要分析水深、水温对输出触觉力信号产生的输出影响。针对此问题完成了传感器零点深度漂移、温度漂移下的传感器触觉力信号输出。
3.1.1 零点漂移测量
为了保证传感器的可靠性以及稳定性,首先进行了不同水深下的传感器零点测试。将传感器置于0~6 m不同的水深下,传感器不加触觉力时,并且加上5 V电压供电测量惠斯登电桥桥路输出。不同深度下传感器的零点输出电压图如图6所示。
图6 传感器零点输出图
传感器输出零点由83 mV变化至89 mV左右。虽然理想条件差压式结构消除了水压强影响,然而在实际测试中发现未完全消除水压强影响,形成了固定漂移的现象。主要的原因是加工工艺以及传感器问题,还无法保证上下侧硅油体积相等,随着外部水压强变化导致硅油对硅杯底部上侧与下侧的压强存在变化。随着深度的增加,在柔性触头外部与内部的压强差值增大,引起了柔性触头的位移及体积压缩。由于水下触觉力传感器上下腔体充油体积不同,柔性触头的变形引起腔体内硅油运动及位移不同,故引起了传感器的零点漂移。
3.1.2 温度漂移测试
为了实现传感器的可靠性以及稳定性,保证在水下5~35 ℃温度范围内应用,对传感器做了温度测试试验。将传感器置于1 m水深的环境下,在水温5、15、25、35 ℃的环境下,测量不同触觉力施加下的触觉力传感器输出值,不同温度下传感器输出图如图7所示。传感器受温度影响产生了温度漂移,在施加相同触觉力时温度的影响使输出值不同。其中温度漂移最大值发生在零点处。但是在每一个固定的温度点上传感器依然保持很好的线性度,可以通过温度补偿消除温度影响。
图7 不同温度下触觉力传感器输出图
3.1.3 恒温定深度输出测量
为了实现触觉力传感器的任意深度下的触觉力测量,将传感器置于0~6 m水深环境,每增加1 m测量传感器标准力加载条件下的信号输出。其中水深0 m表示在水面外。不同深度下触觉力输出图如图8所示。
图8 不同深度下触觉力输出信号
由图8可知,将传感器置于0、2、4、6 m的水深条件下,触觉力传感器在受力端加上标准触觉力信号,触觉力传感器依然保证近似线性的关系,触觉力传感器非线性误差为0.21%。由于制造工艺以及传感器内部上下2个腔体的体积不同,水深增加造成了传感器的零点漂移。零点漂移引起了触觉力传感器的差压信号受到干扰影响,出现了线性偏移,但是依然满足一定的精度要求。所以传感器避免了水深产生的压强影响,直接测量了触觉力的信号,柔性触头保证了力信号的施加以及传感器上下侧的水压平衡。
3.2 BP网络数据拟合
由图6~图8可知,水下触觉力传感器输出不但由所加载触觉力决定,而且受到水深、水温的影响,形成交叉灵敏度的问题。输出零点由0 m水深的83 mV漂移至6 m水深时的89 mV,满量程力加载下时由0 m水深的16.2 mV漂移至6 m水深时的16.8 mV。不同温度时刻,同水深条件下的触觉力输出有规律漂移现象,所以要进行温度、深度数据补偿。为了更好地进行BP网络参数的调整,加快BP网络收敛速度[15-16],需要对原测量数据进行归一化处理,输入数据及输出数据的归一化处理如式(1)、式(2)所示。
(1)
(2)
(3)
采用BP网络数据融合算法实现对温度、深度带来的交叉灵敏度进行补偿。通过建立触觉力测量值、温度测量值、水深度测量值信号三维变量作为BP网络输入,标准触觉力值作为BP网络输出,建立多隐含层神经网络结构,通过BP网络的自组织、自推理能力离线训练实现由输入到输出信号的非线性映射,获取基于BP网络权值与阈值的数据拟合函数。
打开MATLAB nntool 神经网络工具箱[19-20],创建一个4层的网络。第1层为输入层,为3个神经元,表示温度、深度、标准力加载下传感器输出采样值,输入为3个变量的归一化数值。第1隐含层为10个神经元,第2隐含层为8个神经元,输出层为1个神经元,映射为加载标准力的归一化值。输入层、隐含层、输出层各层的激励函数均为tansig函数。
选择0、2、4、6 m水深作为水深度数据,选择温度为5、10、15、20、25、30、35 ℃作为温度数据,选择0、3、6、9、12、15、18、21、24、27、30 N的力加载下的传感器输出值作为力信号,因此BP网络目标值为0、3、6、9、12、15、18、21、24、27、30 N,所以BP网络输入为InputData∈R3×308,目标值为TargetData∈R1×308。
选择3 m水深提供15、20 ℃的水温环境,传感器加载触觉力值为0、3、6、9、12、15、18、21、24、27、30 N,测量传感器输出值等数据作为BP网络的检测样本,设检测变量输入为TestData∈R3×22。
针对创建好的BP网络,设置训练参数。其中逼近误差选择1×10-12,目标选择0,训练次数选择100 000,动量因子选择默认值0.1,将归一化之后的训练样本输入到工具箱后开始训练网络,如果训练次数达到最大仍然没有使逼近误差最小,仍然继续训练;当达到训练误差不再减少时停止训练,此时的逼近误差为3.225×10-9,训练次数达到28 996次。利用检测样本来测试训练好的神经网络,检测样本仿真误差小于0.01,满足数据拟合要求,停止训练。记录此时的神经网络权值与阈值,发送权值与阈值到STM32单片机。
3.3 数据融合验证
将在MATLAB神经网络工具箱训练好的权值和阈值发送给STM32单片机后,需要再次验证传感器的数据融合效果。在恒定的水温下不同的水深环境加载标准的触觉力,记录传感器拟合后的输出曲线;在恒定的水深下不同的水温环境记录传感器的拟合后的输出曲线。
由图9可知,同一温度且不同的水深下,加载相同的力条件下触觉力传感器输出经BP网络数据融合值保持恒定;同一水深且不同温度条件下,加载相同的力条件下触觉力传感器输出经BP网络数据融合值保持恒定。BP网络数据融合消除了水深、水温对触觉力传感器输出的影响,具有很好的数据拟合效果。触觉力传感器经BP网络数据拟合后的输出精度为5%。
图9 恒定水温不同深度下传感器输出值
由图10可知,在某一固定的水深下,变化的水温条件下触觉力信号经BP网络数据融合后输出值保持恒定。在传感器加载同一个触觉力,在不同的水深并且不同的温度条件下,其输出值基本保持恒定。经过BP网络的数据融合,消除了水深、水温对触觉力传感器带来的输出影响,具有很好的数据拟合效果。触觉力传感器经BP网络数据拟合后的输出精度为5%。
图10 恒定水深不同水温下传感器输出值
4 结束语
水下触觉力测量在受到水压强影响下会产生交叉灵敏度,造成触觉力信号分辨困难的问题。随着水压强增加外部干扰变得更大,弱小的触觉力信号更加分辨困难且难以提取。针对此问题设计了基于MEMS的差压式结构的水下触觉力传感器。该触觉力传感器呈胶囊外形,上侧感知水压强与触觉力信息,下侧感知水压强信息,通过上下侧矢量叠加在硅杯表面实现真实触觉力测量。为了实现真实触觉力输出,设计了基于STM32的传感器数据采集信号及BP网络数据融合算法对触觉力传感器进行标定,实验测得传感器标定后的数据融合精度为5%。