基于FPGA的材质识别同步采集设计实现方法*
2022-12-05广东人工智能与先进计算研究院吴昌隆卢进柳建鑫
广东人工智能与先进计算研究院 吴昌隆 卢进 柳建鑫
针对多模感知领域的材质识别系统,提出了一种基于FPGA 的材质识别同步采集设计实现方法,通过对多片不同类别传感器的同步采集,实现了纳秒级别的精确同步,得到可靠的传感器融合数据,实现了对待测物品的材质识别和划分。该方法具有采样率高、数据处理速度快、同步精度高、传输速率快等优点,并且通过实践,实现了对多种不同材质物品的识别分类,证明了该方法的有效性。
材质识别是纹理图像分类研究领域的典型问题[1]。材质识别的目标是从图像中提取主要材质对象的纹理特征,根据纹理特征判断对象所属材料类别,如木制、玻璃、塑料、金属和纤维等[2]。目前基于机器视觉进行的材质识别已较为完备,但依旧存在很大应用难题[3]。比如机器视觉拍摄图像的视角、光照条件以及物体表面的非刚性形变等因素可能会给物体的纹理外观带来较大的视觉影响[4];不同材质实际的外观形态具有不同程度的相似性,也称为类间相似性[5]。这些困难使材质识别任务极具挑战性。
基于机器听觉进行的材质识别虽然也取得了一些阶段性的成就和进展,但对应用环境的要求也极为苛刻。对采集声音数据的环境必须在安静或者封闭的室内,以最大程度减少噪声的干扰[6]。
基于多模感知实现机械手对物体的材质识别是一种重要的方法。具有研究物体范围更广、识别精度更高、受环境因素影响较小等优点。通过机械手触摸物体的表面,感知物体表面的粗糙程度,进而识别出该物体的材质,对于我们建立机器人材质识别的模型极具意义[7]。
本文提出的基于FPGA 的材质识别同步采集设计实现方法,是针对多模感知系统领域,对集成在机械手上的不同传感器进行驱动,同步采集传感器数据,传输传感器数据,最终实现对物体材质的识别。
1 基于FPGA 的同步采集系统设计
1.1 系统整体架构设计
本采集系统设计是基于FPGA 上实现的,采用的是ZYNQ 系列的FPGA 芯片。如图1所示,主要分为两大部分的设计。(1)硬件设计部分,包括传感器阵列选择与设计,FPGA 与传感器之间的互联设计等。(2)软件部分设计,主要包括在PL 端实现对传感器的上电配置,同步采集以及数据传输等。
图1 采集系统整体架构设计Fig.1 The overall architecture design of the acquisition system
1.2 硬件设计
1.2.1 传感器的选择
基于多模感知系统实现对物体材质识别的分析,主要测量压力和加速度这两个物理量。
(1)测量压力数据,采用的“正压力传感器+ADC采集芯片”的硬件设计方案。正压力传感器选用的是HSFPAR303A,该正压力传感器具有精度高、体积小、易于集成的优点,有利于我们安装集成在机械手指上,形成稳定有效的传感器阵列。
其中ADC 芯片,选用了ADS1298,该芯片为一款功能较为强大的ADC 采集芯片,具有高采样率,多通道的数据采集[8]。特别的是该芯片支持菊花链的硬件设计,支持16K,8K,4K,1K 的采样率选择切换。该芯片具有十分稳定的采样率。
(2)测量加速度数据,采用了FIS2108 这款芯片。FIS2108 为一款6 轴的MEMS 传感器,里面融合了加速度计和陀螺仪传感器,具有较高的1K 的采样率。该芯片上电配置较为简单,体积小,容易安装在机械手上。特别的是该芯片拥有Trigger 和Level 两种工作模式。
1.2.2 传感器的分布设计
如图2所示,ADS1298 采用菊花链设计,采用两条菊花链,一共可采集512 个正压力传感器的数据。将512个正压力传感器均匀分布在机械手的各个重要关节,形成一个传感器矩阵。
图2 传感器的硬件分布式设计框图Fig.2 The hardware distributed design block diagram of the sensor
本设计同步采集系统硬件设计有一片FIS2108 用以采集加速度数据,安装在机械手背。通过一组SPI 接口与FPGA 相连接。
1.3 软件设计
1.3.1 上电配置模块
上电配置模块的主要功能是在系统上电后,FPGA对传感器进行初始化配置,驱动传感器正常工作。如图3所示,为软件设计系统框图。
图3 软件系统框图Fig.3 Software system block diagram
系统上电后,FPGA 不断地通过SPI 接口,读写ADS1298 的配置寄存器。将ADS1298 配置为菊花链模式;采样率为1K,为实现FIS2108 和ADS1298 的同步采集。
如图4所示,FPGA 上电后对FIS2108 的加速度采样率设置为1K,以匹配上ADS1298 的采样率,达到不同传感器同步采集的效果;FIS2108 的工作模式设置为Level 模式。
图4 ADS1298 上电配置流程图Fig.4 ADS1298 power-up configuration flow chart
1.3.2 同步采集模块
同步采集模块的主要功能是在传感器初始化配置后,FPGA 同步地采集正压力传感器数据和加速度数据。
经过测试ADS1298 具有十分稳定的1kHz 采样率,但FIS2108 的采样率极其不稳定,这就会导致ADS1298完成一次采样时,FIS2108 完成了两次采样,或者没有采样,无法实现数据的同步采集。本同步采集模块通过设置FIS2108 为Level 的工作模式,以ADS1298 采样率为标准,实现两者数据的同步采集。
由于ADS1298 的DRDY 信号稳定可靠,如图5所示,FPGA 根据ADS1298 的DRDY 信号的下降沿,一方面,读取ADS1298 的数据,完成正压力传感器数据的采集;另一方面,读取FIS2108 的状态寄存器0,导致FIS2108 会更新锁存一次数据,随即FPGA 在FIS2108的DRDY 信号低电平读取传感器数据,完成加速度计数据的采集。到此,FPGA 完成了一次ADS1298 和FIS2108 的数据采集。由于ADS1298 的采样率为稳定的1K,所以FPGA 能够以稳定1kHz 的速率,正确读取到两个传感器的数据,完成了两个传感器数据的同步采集,并且同步精确度保持在10ns 以下。
图5 FPGA 一次同步采集流程图Fig.5 FPGA one-time synchronization acquisition flow chart
1.3.3 数据传输模块
如图6所示,数据传输模块的主要功能是将PL 端采集到的同步数据传输到PS 端,再由PS 端完成向上位机的传输。
图6 PL 和PS 传输框图Fig.6 PL and PS transmission block diagram
由于传感器的采样率高,数量多,因此需要带宽较大的数据传输接口。HP 接口(High-performance Purpose)为FPGA 的高性能接口,常用于PL 和PS 之间的高速数据传输[9]。
设计出两条基于HP 的高速数据链路,其中HP0 用来传输正压力传感器数据,而HP3 用来传输加速度数据。通过GP 端口设计出一条状态信息链路,用于PL 和PS 交互传感器数据状态信息。
2 同步采集系统测试与验证
本章节主要对采样系统进行测试和验证,包括对传感器测试验证,以及在实验中的数据采集。如图7所示,为机械手进行数据采集实物图。
图7 机械手数据采集实物图Fig.7 Physical map of manipulator data collection
2.1 正压力传感器数据测试
正压力传感器数据的测试,主要是验证FPGA 能否正常驱动ADS1298 去采集正压力传感器的数据。如图8所示,对压力传感器进行定量分析,先后往正压力传感器施加100g,100g 的砝码,FPGA 通过ADS1298进行数据的采集。经过换算,采集到地压力数据分别为1.126N 和1.091N,与实际施加砝码的重力一致。
图8 正压力数据图Fig.8 Positive pressure data graph
2.2 加速度数据测试
加速度数据的测试,主要是为了验证FPGA 正常驱动FIS2108 正常工作,并且正确地采集到加速度的三轴数据。
针对FIS2108 的测试验证,采用绕着加速度计的X 轴做了旋转360°的运动。如图9所示,加速度的X,Y,Z三轴的初始数值和运动曲线正确反映出了上述运动过程。
图9 加速度3 轴数据图Fig.9 Acceleration 3-axis data graph
2.3 传感器同步性验证
加速度数据的测试,传感器同步性验证主要是为了FPGA 是否实现了对正压力传感器和加速度传感器数据的同步采集。验证方式是在固定时间段内,FPGA 采集到的正压力数据量与加速度数据量是否一致。如图10所示,正压力数据量与加速度数据量均为21541 个数据,采样率一致。
图10 压力数据量和加速度数据量对比图Fig.10 Comparison of pressure data volume and acceleration data volume
2.4 不同材质下的数据验证
不同材质下的数据验证,主要是机械手在实际触摸不同材质物体时,采集到的正压力数据与加速度数据。
本次实验机械手的运动轨迹,从原点开始按压物体,滑动一小段距离,再回到原点,再进行一次按压物体,滑动一小段距离,最终再回到原点。本次实验机械手的运动轨迹包含了两次对物体表面滑动的过程。
其中机械手对铝制物体表面滑动两次时,FPGA 采集到的正压力数据和加速度三轴数据,如图11所示。
图11 铝制物体表面滑动数据图Fig.11 Sliding data graph of the surface of an aluminum object
机械手对人造皮肤表面滑动两次时,FPGA 采集到的正压力数据和加速度三轴数据,如图12所示。
图12 人造皮肤表面滑动数据图Fig.12 Sliding data graph of artificial skin surface
机械手对竹制物体表面滑动两次时,ZYNQ 采集到的正压力数据和加速度三轴数据,如图13所示。
图13 竹制物体表面滑动数据图Fig.13 Sliding data map of the surface of bamboo objects
通过基于FPGA 实现的同步采集系统,对不同材质物体进行数据采集,使用加速度X 轴和Z 轴数据,对加速度Y 轴数据和正压力数据进行修正,融合和建模,完成了对铝制物体、人造皮肤、竹制物体、高密度泡沫等的识别,实现了对物体的材质识别。
3 结论
在如今人工智能快速发展的条件下,随着机器人面对的环境越来越复杂,这就要求机器人外部感知能力愈来愈强,单靠某一方面的感知是十分片面和狭隘的,需要多种将视觉、听觉和触觉等感知能力融合起来,准确地感知到所处的环境状态信息等,才能做出合理和正确的判断。多模感知,多模融合分析,是机器人发展的趋势。本文基于FPGA 的材质识别同步采集设计实现方法,准确并且同步地采集到了正压力传感器数据和加速度数据,并且快速完成对传感器数据的处理和上传,提供给上位机进行分析研究。将采集到的正压力传感器数据和加速度数据,经过算法进行融合分析识别等一系列验证,准确识别出了铝制物体、人造皮肤、竹制物体、高密度泡沫等材质的物体,实现了基于多模感知领域的机械手材质识别分类的功能,证明了方法的有效性、实用性。