1. 引言
随着人民环保意识的提高,可回收垃圾分类问题得到广泛关注,垃圾分类机器人能够有效的提高垃圾处理效率。如今垃圾分类机器人正处于发展初期阶段,在垃圾分类和垃圾处理方面存在一些问题和挑战。其中包括:机器人识别垃圾的准确性、受限于实际工作环境的复杂性、且可回收垃圾种类繁多,难以通过视觉方法进行材质分类。本文针对以上问题,提出了一种基于神经网络 [1] 的取放一体平衡机器人 [2] 。(1) 通过设计机械夹爪,通过深度学习在位姿估计等领域的优越性能,为机械夹爪提供准确的位姿信息,提高了垃圾分类任务准确性;(2) 设置定位轮,实现机器人全自动定位,通过定位轮使用两个坐标系二分法精准位置解算使得机器人能稳定到达目的地,并通过摄像头避障,实现时刻勘探周围环境,使其在复杂的环境下仍能安全作业;(3) 提出基于卷积神经网络 [3] 的垃圾图像分类算法(Garbage Classification Net, GCNet),在网络结构中融合了注意力机制模块与特征融合模块,提高了模型在垃圾分类任务上的准确性与鲁棒性,解决其难以分类的问题。
2. 系统设计
2.1. 系统框架
本机器人的运动控制系统采用STM32F429IGT6作为主控。STM32F429IGT6具有高性能的ARM Cortex-M4处理器,可以高效地执行各种指令,处理复杂的算法和任务。该处理器还具有安全性如存储器保护单元和执行保护,有助于保护机器人系统免受恶意攻击。此外,它还提供丰富的外设功能包括,通信接口、如UART、SPI、I2C、CAN)、模拟/数字转换器(ADC/DAC)、定时器、PWM控制。可以依此实现机器人系统的多样化复杂功能。此外,STM32F429IGT6还具有低功耗特性,同时成本优势突出,易于获取开发工具,这使得它们适用于成本敏感的应用。机器人的视觉识别系统采用Jetson TX2。Jetson TX2是一款高性能的嵌入式计算模块,特别设计用于机器学习、计算机视觉、自动驾驶和人工智能等应用。可提供超过1TFLOPS的高性能计算能力,并支持多种编程模型,包括神经网络、图像处理和流媒体编码等,还支持多种传感器、控制器和执行器的连接,并配备了丰富的开发工具和样例,方便开发人员对机器人应用进行复杂开发。Jetson TX2拥有庞大的开发社区和生态系统,可获得大量的文档、示例代码和支持资源,帮助我们快速上手该垃圾分类机器人的设计。由此可知,它的高性能、低功耗和丰富的功能使其在本机器人设计研发中起到了重大作用。
2.2. 具体步骤
首先机器人开电启动,摄像头采集环境图像,随后将其传递给图像处理模块(TX2),该模块对图像进行处理后将处理后的数据传递给运动控制模块。在数据处理过程中,运动控制模块运用PID [4] 控制算法实现实时控制机器人的运动状态 [5] 。最终,在运动控制模块的规划和控制下,机器人将到达目标位置,并利用机械夹爪拾取目标垃圾并将其存储。
控制流程如图1所示。
2.3. 系统模块
2.3.1. 感知模块
以神经网络进行图像的识别和处理,环境感知以及目标检测,使机器人更精确,更复杂地理解环境,处理各种垃圾。采用了Jetson TX2。
2.3.2. 运动控制模块
使用STM32F427IGT6作为主控,通过CAN通信方式获得各部分电机数据,以PID算法实现控制,机器人可以根据目标轨迹和当前位置的误差,动态地调整控制参数,以达到预期的控制轨迹,多重闭环可来控制电机,YAW轴电机与PITCH轴电机。
2.3.3. 定位模块
加入定位轮,实现机器人全自动定位,通过定位轮使用两个坐标系二分法精准位置解算使得机器人能稳定到达目的地,并通过摄像头避障,实现时刻勘探周围环境,保证线路的安全。
3. 硬件设计
硬件选型
1. Jetson TX2用于处理视觉系统采集到的物体图片,并输出检测结果:Jetson TX2是用于机器人的高性能计算平台,特别适用于视觉处理和深度学习任务。它可以接收来自摄像头等感知设备的图像数据,使用内置的神经网络和图像处理功能,进行垃圾检测、识别和分析。然后,它可以输出检测到的垃圾的位置、类别等信息,为机器人的决策和控制提供关键数据。
2. STM32F429IGT6用于底盘主控及云台底盘信息传递:STM32F429IT6是一款嵌入式微控制器,用于底盘主控和云台底盘信息传递。它负责控制底盘上的电机,包括轮组电机、YAW轴电机和PITCH轴电机。此外,它还通过CAN通信协议与云台上的其他电机和控制系统交互,确保底盘和云台之间的协同工作。
3. 陀螺仪选用单片机内置的BMI088:BMI088是一款高性能的陀螺仪传感器,通常用于测量机器人的姿态和运动。在这个系统中,它似乎与单片机内置的陀螺仪一起使用,以提供精确的姿态信息,以支持机器人的稳定性和导航。
4. 大疆M3508电机:YAW轴选用了大疆的M3508电机,具有有感FOC (Field-Oriented Control)控制,可提供出色的扭矩和稳定性。它们用于驱动轮组和YAW轴,确保机器人在不同速度和负载下保持平稳的动力响应。
5. 大疆M2006电机:根据需求,PITCH轴选择了大疆的M2006电机,这些电机具有高精度的控制、强大的输出功率和小巧的体积,用于为机械夹爪提供动力支持。
6. 云台和底盘:云台上不仅部署Jetson TX2以外,而且还有控制机械臂的PITCH轴电机、YAW轴电机和轮组电机。底盘安装了STM32主控以及定位轮,便于精准定位机器人位置。
硬件连接图如图2。
4. 软件设计
4.1. 软件架构
在这个项目中,我们选择了NVIDIA的Jetson TX2作为嵌入式计算平台,并在其上配置了Ubuntu 16.04操作系统以及OpenCV 3.4,CUDA等关键软件,以构建高性能的计算环境,训练神经网络,机器人利用TX2平台进行垃圾图像的采集和处理,并将处理后的图像输入神经网络模型中进行分类。这个计算平台的主要任务是处理从摄像头获取的图像数据,并将处理结果通过UART串口通信传输给STM32单片机。
利用摄像头和Jetson TX2,我们能够捕获空间图像信息,并使用像素级评估技术进行深度图像分析。同时,我们还能够构建目标物体的三维模型,并提取其关键特征点。这使得我们能够在TX2上进行复杂的图像解算,以准确测量机器人和垃圾之间的距离。
此外,项目还在Jetson TX2平台上建立了一个强大的机器视觉开发环境,利用OpenCV等技术,与神经网络学习框架集成,以实现神经网络模型的训练与部署。且实现了本地端图形方式的信息传递功能。这意味着我们能够更加直观地与机器人的感知和决策系统交互,从而更好地控制机器人执行任务。
4.2. 平衡控制算法
为了生成程序骨架并得到垂直方向上的平衡控制,可以使用STM32CubeMX工具并添加相关库和驱动程序,需要添加与平衡控制相关的库和驱动程序。这包括陀螺仪传感器的库,CAN总线通信的库,以及PID控制算法的库。并读取陀螺仪每个时刻的测量值,来实现控制的平衡。在平衡控制中,PID控制算法起着关键作用。PID控制器由比例(P)、积分(I)和微分(D)三个部分组成。P系数决定了系统的响应速度和稳定性,I系数用于消除静态误差,D系数有助于减小震荡。选择合适的PID系数值至关重要。这些系数的选择可以通过实验和仿真来进行优化,以实现更为稳定的平衡控制。通常,需要不断调整PID系数,直到达到满意的平衡性能。在程序中,我们将根据PID控制器的输出来控制电机的速度或位置等参数,以实现平衡控制。为了防止电机失控,通常要为PID加限幅。最后需要对系统进行全面的测试,以测试系统的性能和可靠性。
4.3. 软件总体实现
在这个嵌入式系统中,我们采用了一种基于HAL库(Hardware Abstraction Layer)和freeRTOS (Real-Time Operating System)的任务分配架构。通过这个架构,我们将不同的功能模块分配给不同的任务,以实现系统的多任务执行。
Chassis Task (底盘任务):Chassis Task任务专门负责获取和处理底盘控制相关的信息。这可能包括底盘的速度、位置和方向等数据。底盘任务的主要责任是确保底盘的稳定运行和控制。
Gimbal Task (云台任务):Gimbal Task任务专注于获取和处理与云台控制相关的信息。这包括云台的方向、俯仰和偏航等数据。云台任务负责确保云台的准确定位和控制。
Imu Task (陀螺仪任务):Imu Task任务的主要任务是解算板载陀螺仪的数据。陀螺仪通常用于测量系统的角速度和角度变化。这些数据对于导航和姿态控制非常重要。
Annex Task (附件任务):Annex Task任务负责控制一些附加设备或附件,例如舵机等。这些设备可能用于执行各种任务,如摄像头控制、传感器操作等。
System Inform Task (系统信息任务):System Inform Task任务充当系统的数据协调者和交互中心。它负责更新系统数据、处理交互请求以及加载必要的数据。这个任务确保系统各部分之间的协调和信息传递。
软件实现图如图3。

Figure 3. Software implementation diagram
图3. 软件实现图
5. 神经网络算法设计
5.1. 模型结构
本文建立的GCNet模型包括特征提取器和分类器两个部分 [6] ,总体结构如图1所描述。在该图中,特征提取器采用了ResNet101作为主干部分,共包括5个瓶颈层,并在不同的瓶颈层之后加入了关注力机制模块。同时,它还对不同模块提取的特征进行了特征融合,如图4中的虚线所示,以从输入中提取图像的特征信息。
其中,Me表示特征提取器。F1∙yi分类器由两层全连接层和一个Softmax分类器组成,对提取到的特征信息进行分类,以得到图像在每个类别下的最终得分:
其中mc表示分类器。

Figure 4. GCNet network structure diagram
图4. GCNet网络结构图
5.2. 注意力机制
注意力机制是受人类视觉研究启发而来的,因为人类会根据实际需要选择视网膜内的特定区域进行集中关注,这样可以将有限的处理资源分配到最重要的部分。由于相同类别的垃圾可能在特征表示上存在较大的差异,这可能会妨碍正确分类图像,因此需要准确关注图像中的显著区域。受到这一思想的启发,通过构建注意力机制模块,我们能够使网络模型集中注意力于有利于分类的特征区域,以实现更出色的特征提取功能。该模块的具体结构如图5所展示。

Figure 5. Schematic diagram of attention mechanism
图5. 注意力机制示意图
将每个bottleneck提取的特征用Fi表示,利用格拉姆矩阵构建局部注意力机制模块,将Fi与其转置矩阵
相乘,以此得到局部特征
:
这一步骤有助于减小特征图中每个元素与自身的相关性数据,将原本数值较大的元素突显出来,同时抑制了对判断没有帮助的特征。这样可以使每个局部区域的重要性更加显著,有助于更明确地确定类别,同时抑制了对分类判断产生负面影响的特征。
对Fi进行全局平均池化操作(GAP),可以保留特征Fi获取到的空间、语义信息,并获得全局特征
。
在
中表现了特征Fi中最显著的特征,这也符合所定义的全局注意力机制。
最后,将局部特征
与全局特征
相乘,从而获得包含局部和全局信息的总体特征
。
5.3. 特征融合机制
在垃圾分类任务中,同一类别的垃圾通常在外观上存在较大差异,例如可回收物类别包括纸板箱和玻璃杯,尽管它们在外观上有显著不同,但它们属于相同的类别,这会增加分类器的挑战。此外,随着网络层数的增加,单一图像特征可能会失去某些区域的信息,导致模型的分类性能下降。为了解决这个问题,通常采用多尺度的特征融合模块,通过不同卷积核的池化操作来构建,但这会增加模型的计算负担,同时也增加了模型训练的难度。
由于我们的特征提取器中包含了不同的池化操作,因此只需提取不同瓶颈层下的特征即可获得不同尺寸的特征。基于这一基础,本文提出了改进的特征融合机制,以弥补不同尺度特征之间的差异,减少信息损失,提高模型的分类性能,而不需要引入额外的计算负担如图1中虚线所示,将每个bottleneck经过注意力机制提取后的特征融合:
其中wc为卷积核,bc为偏置,Concat为融合操作,该操作旨在利用不同尺度特征信息,有效避免了信息丢失,提高了系统鲁棒性。
6. 测试与分析
6.1. 神经网络算法实验及结果分析
本实验采用大量标注类别的数据集,包括厨余垃圾、可回收物、其他垃圾、和有害垃圾等四个大类。在实验中,采用4:1的比例划分数据集,80%作为训练数据,20%作为测试数据。此外,为了增强模型的泛化能力和鲁棒性,还对训练样本进行了数据增强处理,包括随机反转,局部翻折、随机裁剪等。
6.2. 测试结果

Figure 7. Loss function iteration curve
图7. 损失函数迭代曲线
在训练过程中,对GCNet模型通过消融实验以分别验证注意力机制和特征融合机制的功能,实验1为含有注意力机制和特征融合机制的模型,实验2为只含有注意力机制的模型,实验3为只含有特征融合机制的模型,实验4为不含有注意力机制和特征融合机制的模型。各个实验的训练过程迭代曲线如图6,图7所示。
从图6中可以观察到,实验1 (Expt1)的准确率提升和损失值下降速度明显快于其他三个实验,这表明训练过程更快地收敛。实验2 (Expt2)和实验3 (Expt3)的训练速度几乎相近,而实验4 (Expt4)的训练速度最慢。为了进一步验证上述训练的准确性,进行了相应的测试集测试。实验结果如表1所示。实验1包含了注意力机制模块和特征融合模块,取得了97.06%的最佳准确率,同时在各个子类别上都取得了最高的准确率。这说明所构建的模型在泛化能力方面表现出色。在类内差异较大的“其他垃圾”这一类别中,注意力机制和特征融合机制均能够显著提高模型的准确性。

Table 1. Accuracy of GCNet model ablation experiment (unit: %)
表1. GCNet模型消融实验准确率(单位:%)
本文模型与其它模型对比如表2所示,由此可见本文构建的GCNet模型平均准确率最高,在各个类别中也取得了最高准确率,说明本文构建的注意力机制和特征融合机制充分提取了有利于垃圾分类的特征,使其结果准确。

Table 2. Comparison of accuracy of different model experiments
表2. 不同模型实验准确率对比
6.3. 测试结果分析
本网络通过注意力机制和特征融合机制能有效提取图像特征、降低类别差异性带来的影响,并在相关数据集上取得了97.06%的平均准确率,相比较于现有的分类算法提高了约4%的准确率,满足了要求,具有良好前景。
7. 结束语
本文介绍了一种基于神经网络的垃圾分类平衡机器人,该机器人基于卷积神经网络视觉识别技术实现垃圾分类,现有的图形分类算法在垃圾处理领域的应用较少,且存在准确率不足、泛化性能差、处理效率低的缺点。这是一个前沿的研究方向。通过训练神经网络来识别四类垃圾,并与现有图像分类算法作对比,针对现有方法的不足,通过特征融合机制和注意力机制,具有很大的创新性和可研发性。相比于TrashNet和CaffeNet算法提高了4%的准确率。
运用PID控制算法并使用,能够实时获取各种传感器数据,对周边环境实时得到信息反馈。该机器人采用了两轮平衡车的设计,实现了优秀的自平衡和控制功能。这种设计不仅可以应用于垃圾分类机器人,还可以应用于其他类型的机器人控制,如移动机器人、机械臂等。这种设计可以帮助机器人在不平坦的地面上保持平衡,提高了机器人的运动性能。总之,该平衡机器人的设计和实现为机器人技术的发展提供了新的思路和方向,推动智能制造发展,运用许多现代科技,包括神经网络、PID控制和计算机视觉等等,推动了智能制造技术的发展。提高垃圾的处理效率,使得废弃物更容易被回收和处理,且减轻人工负担,帮助人们更方便的垃圾分类。
基金项目
本论文由辽宁科技大学大学生创新创业训练计划项目经费支持(编号:S202310146061)。