基于TCP/IP协议的六维力传感器信号采集系统设计
2022-04-25刁子健张寿明
刁子健, 张寿明
(昆明理工大学 信息工程与自动化学院, 云南 昆明 650500)
近几年来,国内外传感器技术得到了迅速发展,机器人的控制操作及数据反馈等工作也越来越依赖传感器技术[1]。传感器已经成为了机器人不可或缺的“感官器官”。机器人在执行高复杂性工作的过程中,对各个环节的协调工作要求比较高,各个环节出现的故障也很难察觉。因此传感器技术的发展越来越受到科技工作者的重视,对传感器信号的采集及数据分析需求也明显增加,但现有的传感器信号采集处理方法检测效率差,实时性不高,是当前行业内亟待解决的问题。
六维力传感器可以同时检测力在空间作用下的全部信息[2],获取X、Y、Z方向的力分量Fx、Fy、Fz和力矩分量Mx、My、Mz,可以有效提升机器人精密作业的能力,在机器人接触操作、装配、打磨及机器人双手协调任务中有着重要应用[3-4]。
从陕西电器研究所研制的一种基于Stewart结构的六维力传感器[5],解决了传统Stewart抗耦合性差的问题及耦合因素对传感器精度的影响,再到吕志鹏等[6]研制的无线式六维力传感器,张韬等[7]对Stewart型六维力传感器的标定研究,六维力传感器的耦合性、线性度及解耦特性[8]有了很大的进步。牛文举等[9]基于FPGA设计了一套微传感器信号采集系统,刘永永等[10]基于STM32设计了一套力传感器信号采集与处理系统,从硬件角度层面解决了对传感器信号的处理及分析。
基于以上背景,本文设计一套六维力传感器信号采集系统。通过数据采集卡,对采集到的传感器信号进行调理与采集,自动把采集到的信号送到上位机中进行处理,得到3个力分量和3个力矩分量的实时变化曲线,从而实时监控机器人在工作过程的状况,以预防因故障问题造成不可控的损失。
1 系统总体设计方案
图1 系统总体设计框图
设计的基于TCP/IP协议的六维力传感器信号采集系统整体可分为硬件模块和软件模块,其中硬件部分由六维力传感器、低噪声放大模块、数据采集卡和上位机等4部分组成;软件部分具有系统设置、数据处理、数据存储及实时曲线显示等功能。系统的组成框图如图1所示。在实际获取传感器的信号时,是先把采集到的力信号转换成电信号,通过低噪声放大模块进行信号调理,然后由数据采集卡把信号通过网线传输的方式,送到上位机进行分析处理,以实现数据的实时曲线显示、数据存储等功能。
1.1 系统硬件设计
1.1.1 低噪声放大与数据采集卡模块
本文低噪声放大和数据采集卡模块选用俊德科技公司的M8128数据采集仪,分别对信号进行调理和采集。该数据采集仪集成了两大模块,可以进行六通道模拟信号输入,同时也支持以太网TCP/IP协议通信、RS232和CAN总线通信。主要参数见表1。
表1 M8128数据采集仪的主要技术参数
图2 M8128数据采集仪工作原理
M8128数据采集仪的工作原理如图2所示,主要包括主控模块、通信模块及电源模块,具有低噪声放大(信号调理)和数据采集两种功能,可以实现对采集系统的简化,并且具备体积较小方便携带、性价比高、精度高且适应各种复杂环境等特点。
在工业场景下,一般对力传感器的信号采集分析处理,主要是运用PLC作为中转,然后传送给计算机进行分析处理。张新聚等[11]就设计出了PLC远程数据采集系统,对传感器信号进行采集。本实验则是以数据采集卡为基础,直接获取六维力传感器信号,无需通过PLC等设备中转,完成系统的硬件配置。
1.1.2 信号采集系统的上位机选择
上位机是指可以直接发出操作、控制的计算机,一般是PC电脑屏幕上显示的各种信号变化,其具体功能是把控制命令传送给下位机,下位机依据上位机的程序命令,解释相应的时序信号用于直接控制相应的设备[12]。
本设计选用一台商用微型计算机,利用所设计的软件控制整个系统,用于数据信号的处理,支持网线通信,体积较小方便携带,可以适应狭小空间的信号处理显示工作,能够处理较大的数据量,可以满足实验要求。
1.2 系统软件设计
1.2.1 系统软件程序分析
信号采集系统主要是对机器人运动过程中各个节点的力信号和力矩信号实时采集,再运用网线通信方式将采集到的数据传输到上位机中进行分析处理。程序基于Visual studio 2019平台开发,用C#语言编写,主要实现了系统设置、数据分析、数据存储及曲线绘制的功能。具体程序流程如图3所示。
图3 程序流程图
图4 Socket通信框架
首先,在程序中系统初始化设置。主要是设置定时器的时间间隔,定义数组结构,初始化力、力矩的实时曲线图,并分别对3个力分量Fx、Fy、Fz和3个力矩分量Mx、My、Mz设置不同曲线显示颜色等,以方便用户在实时曲线图中观察。
在程序运行时,需要对服务器端与客户端的IP和端口进行设置,完成设置后才能够运行程序对采集的信号进行处理。TCP服务器连接成功后,会对采集到的数据进行进制转换,方便处理,最后将经过计算F/M,把F/M的结果实时显示在计算机屏幕上。
关于客户端与服务器端之间的通信,服务器的主要功能是负责网络通信与数据库读写,其中应用服务器按其监听的Socket对象,可分为面向终端设备的Socket通信和面向客户端的Socket通信。本文选用Socket通信方式,两种类型的Socket都基于TCP/IP协议进行通信,所采用TCP服务应用相对UDP服务,比较安全,不易造成数据丢失,其中TCP协议[13]是一个面向流的协议,不用担心最大传输量,而UDP协议[13]主要是用来支持那些需要在计算机之间传输数据的网络应用[14]。整个网络连接可以分为3个部分:服务器监听、客户端请求连接、确定连接[15],其中TCP/IP协议是网络层最重要的协议。有关Socket通信的框架可以用图4简洁表示。
对采集的数据分析处理主要是对采集到的力与力矩信号进行运算,运算公式为
Fxyz(N)=Fxyz×Scale Factor[w1]/CPF,
(1)
Mxyz(N·m)=Mxyz×Scale Factor[w2]/CPT,
(2)
式中w1的取值是0、1、2,w2的取值是3、4、5,分别表示3个力分量和3个力矩分量,然后实时传送出去。
1.2.2 上位机软件设计
图5 软件结构框图
六维力传感器信号采集系统的上位机软件的编写采用的是C#语言。C#语言结构简单,稳定性及安全性较高,被广泛应用在应用程序创建及开发等领域[16]。系统软件结构框架如图5所示。其中上位机软件系统主要分为客户端和服务器端两部分,服务器端是由面向数据采集卡与客户端的通信服务器和数据库组成,通信服务器主要有数据收发、数据存储、数据解析等功能[17]。数据库则是主要负责对通信服务器完成工作之后的数据进行储存,以供客户端访问。
从图5可知,该系统软件具有数据处理、数据存储、实时曲线显示等功能。其中上位机是通过以太网方式进行通信,进行数据的传输,只需要设置IP和端口地址,就可以进行连接,可以实时检测六维力传感器的力与力矩的变化情况。图6所示为上位机软件前面板,为上位机的客户端。客户端应具有简洁、美观的操作界面[18],该客户端可以实现多通道实时曲线显示的功能,在实时曲线中可以直观地看到各个力分量与力矩分量的值,更易于观察机器人的运动状态,判断机器人操作是否正常,并及时对有可能发生的意外做出制止。
图6 软件前面板
2 系统整体验证
本系统采用的俊德科技M8128数据采集仪满足正常的工作需求,比同类型的数据采集仪精度高,且通过国家质量监管,在产品质量、效率方面有着很大的优势。所以在本实验中,只需对设计的上位机软件系统验证及相应的对比测试即可,就能判定所设计的系统是否达到要求。
2.1 软件仿真验证
在对六维力传感器进行验证的时候,无法对六维力传感器的受力情况做评估,所以为了验证设计的上位机软件系统的可行性,在本实验中,采用卓岚调试工具进行服务器端模拟向客户端发送数据,工作模式选择TCP服务器。本次仿真实验,IP地址设置为127.0.0.1,端口号设置为49151。
在启动程序时,需提前设置好服务器端和客户端IP地址和端口号,打开服务器的链接,并对发送、接收的数据进行16进制的转换。在卓岚调试工具中手动输入数据模拟传感器数据,首先发送24字节的转换参数指令(12 34 02 03 00 01 00 1B 1A 12 1A 12 FF 1A 12 1A 12 FF 1A 12 22 22 11 11),然后发送16字节的参数(12 34 FF 1A 12 1A 12 FF 1A 12 1A 12 FF 1A 12 1A),可以得到图7的仿真结果;最后输入16字节的参数(12 34 1A CF 13 1D 15 FF 1C 13 1D 1F FD 1C 12 1B),可以得到图8的仿真结果。
图7 仿真结果(1)
图8 仿真结果(2)
根据力与力矩的计算公式可以分别求得上述两次输入相应的力与力矩,结果如表2所示。计算所得的第1组结果和第2组结果,与其实时曲线图匹配,可以得知图上数值与计算数值相吻合,可得知,设计的软件系统是有效的。
表2 力与力矩计算值
为了进一步验证软件系统的有效性和实时性,不断改变发送指令中F/M的数据值,可以观察到实时曲线也是不断改变的,输入16字节的参数(12 34 1C 1C 12 1C 12 CC 1C 12 1A 14 FF 1F 11 11),可以得到图9的仿真结果。其与表2中的第3组计算结果相匹配,可以说明所设计的系统是有效的,且实时性高。
图9 仿真结果(3)
2.2 对比验证
为了验证所研究的六维力传感器力与力矩信号数据采集系统在采集精度方面的性能,引入一种无线信号采集系统进行对比实验[19-20]。在测试中,两种数据采集系统的精确度结果见图10。从图中可以看出,两者之间的精度都在80%附近,但本实验研究的系统,相对于对比测试的系统表现效果较好,其主要优势表现在稳定性方面;随着实验次数的不断增加,其测试精度的波动范围不是很大,且有着很高的测试精度。
图10 实验采集精度结果
3 结语
本文以C#语言为开发语言,运用数据采集卡,设计了一套六维力传感器信号采集系统。从硬件选择和软件设计两个方面做了简要介绍,并通过模拟验证、对比测试,证实了设计的力信号采集系统的有效性,完善了当前对六维力传感器信号采集方面的不足。与传统的测力表相比,此系统能够实时显示力、力矩的变化曲线,及时反馈给用户,具有价格低廉、操作简单等优点,为后续的机器人故障分析及运动状态分析提供了研究基础。