基于深度学习的草地垃圾拾取机器人

基于深度学习的机器人用于在草地上自动拾取垃圾

摘要

本文介绍了一种新型的在草地上作业的垃圾捡拾机器人。该机器人利用深度神经网络进行垃圾识别,能够准确地自主检测垃圾。此外,通过使用深度神经网络进行地面分割,提出了一种新颖的导航策略以引导机器人移动。凭借垃圾识别和自动导航功能,该机器人能够在公园或学校等场所高效且自主地清理地面上的垃圾。实验结果表明,垃圾识别准确率可高达95%,即使没有路径规划,该导航策略也能达到与传统方法几乎相同的清洁效率。因此,所提出的机器人可以作为良好的辅助工具,减轻清洁工在垃圾清理任务中的体力劳动负担。

索引词

深度学习,垃圾清理,机器人导航,地面分割。

一、引言

人工垃圾捡拾和清洁是一项繁琐、乏味且重复性高的任务[1],而自主机器人可能是该应用的潜在候选方案。多年来,自主地面清洁[2]、水域清洁[3][4]、墙面清洁[5]和垃圾收集[6]机器人已经得到开发,但由于缺乏垃圾识别能力,能够在草地上作业的自主清洁机器人仍然是一个具有挑战性的任务。

受在海滩上工作的垃圾收集机器人启发[7],本文旨在开发一种能够自动识别并捡拾垃圾的机器人。作为此类机器人的关键组件,已有研究提出使用超声波传感器的自动垃圾检测算法[8],然而,由于超声波传感器感知能力有限,可能会将障碍物误认为是垃圾。相比之下,网络摄像头可以成为目标检测的更优传感器,因为它提供的信息远多于超声波传感器。此外,深度神经网络(例如深度卷积网络)已成功应用于图像中物体的检测、分割和识别[9]。因此,我们采用一种卷积神经网络(CNN)来识别和定位机器人所搭载的网络摄像头拍摄的图像中的垃圾。此外,该网络还可用于检测和分割地面,这对于避障非常有用。

为了清理草地上较大的垃圾(例如玻璃瓶、塑料和废纸),采用机械臂作为清洁装置,而不是使用大多数现有商用地板清洁机器人所采用的吸尘器或滚刷,因为后者可能会损坏草地或清理不必要的杂物(例如灰尘、树叶)。具体而言,使用基于视觉的抓取控制器[10]来指挥机械臂进行垃圾拾取。

除了这些关键组件外,本文提出的机器人还提供路径规划、避障、定位、环境感知等基本功能。所有这些模块构成了一种新型的自主垃圾清理(确切地说是拾取)机器人,可用于在公园或学校的草地上拾取相对较大的垃圾。

此类任务的一个挑战是导航目标(即垃圾)事先未知。传统的基于地图的视觉导航方法[11]在此类任务中将失效,因为它必须预先知道导航目标的精确位置。最近,基于强化学习的视觉导航方法[12]可以在室内环境中以最少的步数引导机器人朝向视觉目标。然而,该方法需要在模拟环境中进行训练阶段,耗时较长。此外,该方法在未经训练的真实环境中可能失败。而且,选择导航目标时需要区分垃圾与非垃圾(视为障碍物),这使得任务更具挑战性。

因此,本文提出一种基于地面分割的新型导航策略,以实现在线自主目标选择并同时避开非垃圾(障碍物)。据我们所知,这是首个能够在如此复杂场景中执行此类任务的原型(见图1)。

本文的其余部分组织如下。第二节介绍了所提出的机器人系统的概述,包括硬件配置和系统架构。第三节介绍了新型垃圾清理机器人的关键技术方法,包括感知、目标跟踪、导航等。第四节展示了一些实验结果,并证明了所提出的机器人系统的有效性。第五节得出了结论。

示意图0

II. 所提出的机器人的概述

本节描述了所提出的机器人系统的硬件配置和系统架构。

A. 硬件配置

如图2所示,该机器人的完整系统包括五个主要部分:(1)用于环境感知的传感器,(2)机器人底盘,(3)控制器,(4)机械臂,以及(5)垃圾箱。

使用低成本惯性传感器(包括三轴陀螺仪、三轴加速度计和三轴磁力计)、车载里程计和GPS(全球定位系统)接收器来生成连续且准确的位置信息。采用网络摄像头检测和识别垃圾,并检测障碍物。由于仅靠摄像头无法准确检测障碍物(如过曝或运动模糊)[13],因此融合超声波测距仪以更可靠地检测障碍物。

机器人底盘是机器人的主体,配备了所有传感器、控制器、机械臂和垃圾箱。机器人底盘的尺寸为400×320×160毫米(长×宽×高),可承载超过40公斤的重量。机器人底盘有两个驱动轮和一个随动轮,通过差速驱动实现左转或右转。

机器人的控制器类似于人脑,包含中央处理器(CPU)、图形处理器(GPU)和电机驱动器。所有算法,如定位、避障、图像预处理和路径规划等,都在中央处理器上执行。垃圾识别和分割算法在GPU上执行。GPU具有并行结构,使其在图像处理和深度学习计算方面比通用中央处理器更高效。机器人旋转、前进或后退平移由电机驱动器控制,电机驱动器采用广泛且成熟的比例积分微分(Proportion Integration Differentiation)算法[14]。

使用机械臂拾取垃圾,并将其放回垃圾箱。该机械臂包含四个关节,具有五个自由度。前端的夹爪能够抓取重量不超过1Kg、直径在10 cm范围内的物体。

垃圾箱用于收集垃圾,通过卡槽式结构固定在机器人底盘上,便于快速组装和拆卸。

示意图1

B. 系统架构

所提出的机器人的系统架构包括定位模块、导航模块、感知模块、驱动模块和地图模块,如图3所示。

1) 定位模块

惯性测量单元(IMU)和里程计被集成到基于GPS的自主导航系统[15]中,以实现对机器人的鲁棒定位。IMU和里程计为系统提供了航位推算能力,从而在诸如因茂密树林遮挡导致GPS信号质量较差的公园等场所仍能保证可靠的定位。而当GPS信号质量良好时,可有效限制航位推算估计误差的漂移。通过使用扩展卡尔曼滤波器(EKF)算法[16]融合这些传感器数据,可以确定机器人位姿。机器人位姿包括相对于世界坐标系(即地图)的二维平面坐标及其角方向(由于机器人在草地上运行,可合理认为其工作在平面环境中)。

2) 导航模块

常见的导航模块包括路径规划、路径跟踪和避障。给定一个环境地图,路径规划器应生成一条轨迹,使机器人能够以最优性能代价遍历整个区域,例如最短路径或最小重复覆盖。文献[17]中提出的路径规划器可以生成类人路径,该路径最小化路径长度和角度变化总和,并延长电池运行时间。因此,它被用于规划覆盖整个清洁区域的路径。

路径跟踪器确保机器人尽可能精确地跟随规划的路径是可能的。同时,需要一个避障模块来防止机器人与任何障碍物发生碰撞。我们采用与[18]中提出的类似策略,以同时解决路径跟踪和避障问题。需要注意的是,此处的避障以地面分割结果和超声波测距仪测量数据作为输入。详细的避障算法在第三节.C中描述。

此外,提出了一种目标跟踪器用于跟踪已检测到的物体。一旦感知模块在图像中检测到物体,通用导航模块将被暂停,目标跟踪器将指挥机器人逐步接近该特定物体。当机器人到达适合拾取物体的位置时,机器人将停止移动并开始判断该物体是否为垃圾。如果是,机械臂将拾取该物体;否则,避障模块将控制机器人绕过该物体。随后,通用导航模块将恢复对机器人的控制,继续沿规划路径执行清洁任务。

3) 感知模块

感知模块包括地面分割、垃圾识别和定位。地面分割用于检测物体和地面。垃圾识别确定所检测到的物体是否为垃圾(见第三节.A)。如果该物体是垃圾,垃圾定位将提供垃圾在图像中的坐标。

4) 驱动模块

机器人速度和机械臂的动作均由该模块驱动。电机驱动技术已是现成方案,市场上许多低成本的电机驱动器均可用于此机器人。

5) 地图模块

该模块仅在早期阶段用于构建环境地图,以指导机器人执行清洁任务。它在运行期间不会消耗额外的计算开销。地图由占据栅格[19]表示,其为环境中位置连续空间上的细粒度栅格。地图构建仅需要清洁区域的边界,该边界可从GPS数据中获取并投影到地图上。

示意图2

III. 关键技术方法

A. 感知

随着深度学习的发展,卷积神经网络通过学习更具区分性和更丰富的特征来提升图像理解能力。所提出的机器人应具备识别图像中的垃圾和其他障碍物(即确定可通行区域)的能力。通过SegNet生成的像素级语义标签[20],可以将地面与其他区域或物体区分开来。然而,由于场景仅被粗略分割,地面上的物体无法被准确识别,因此需要一个图像分类网络。ResNet[21]凭借其残差学习框架,可以很好地用于物体分类和定位。如图4所示,首先将图像输入基于SegNet的地面分割模块,然后获得分割后的图像。该分割后的图像(见图5)可提供地面区域以及地面上的物体信息。如果检测到地面上存在物体(见图5(a)),目标跟踪器(见第三节.B)将控制机器人接近该物体。此外,地面轮廓内可能存在多个物体(见图5(b)),此时将选择最近的一个进行跟踪。随后获取近距离图像并用于目标识别。图6展示了识别结果的一个示例。若该物体被识别为垃圾,则机械臂会将其拾取;否则,机器人将视其为障碍物并规划避让路径。

示意图3

示意图4

示意图5

B. 目标跟踪器

一旦SegNet检测或分割出草地上的物体,机器人将通过所提出的目标跟踪器控制接近该物体,以便更清晰地识别并适当地拾取。目标跟踪可以通过以下步骤实现:

首先,可以通过分割后的图像获得图像中物体的边界(图5中的红色矩形)坐标,并表示为 $[u_{tl}, v_{tl}, u_{br}, v_{br}]$,其中 $(u_{tl}, v_{tl})$ 表示左上角的像素坐标,$(u_{br}, v_{br})$ 表示右下角的像素坐标。因此,物体中心的坐标为 $(u_c^O, v_c^O)$,表达式为:
$$
u_c^O = \frac{u_{tl} + u_{br}}{2}, \quad v_c^O = \frac{v_{tl} + v_{br}}{2}
$$
图像的底部中心坐标可以用常数值表示(如果图像分辨率为640×480,则 $(u_c^I, v_c^I) = (319, 479)$)。

其次,计算物体与图像底边中心之间的差值,其由以下公式给出:
$$
\Delta u = u_c^I - u_c^O, \quad \Delta v = v_c^I - v_c^O
$$

第三,根据以下公式计算机器人速度:
$$
v =
\begin{cases}
v_m & \text{if } |\Delta v| > 10 \
0 & \text{else}
\end{cases}
$$
$$
\omega =
\begin{cases}
\omega_m / 2 & \text{if } |\Delta u| > 5 \
0 & \text{else}
\end{cases}
$$
其中,平移速度和角速度分别为 $v, \omega$;最大平移速度和最大角速度分别为 $v_m, \omega_m$;高度和宽度分别为图像的像素值 $h, w$。

上述三个步骤持续进行,当物体大致位于图像底部中央时,机器人停止并识别物体,然后确定是否拾取该物体。

C. 导航

现有的大多数扫路车或真空清洁机器人在执行清洁任务时,会沿着预定义路径[17]清理垃圾,而无法区分垃圾与其他物体。当在草地上作业时,如图7所示,这些机器人可能会清理不必要的杂物(例如灰尘、树叶)或非垃圾(例如手机、鞋子)。因此,机器人必须在整个清洁任务过程中,根据导航目标(即需要拾取的垃圾)动态规划路径。本文基于垃圾识别和地面分割,设计了一种新的导航策略(见图8),具体步骤如下:

步骤1 :根据机器人位置和地图,判断机器人是否超出地图范围。由于地图是二值占据栅格(黑色像素表示占据空间,白色表示空闲,见图9),并且机器人位置实时映射在占据栅格上,因此很容易确定是否机器人超出边界(像素值0表示机器人超出,1表示未超出)。

步骤2 :如果机器人超出地图范围,则会控制其返回;否则,进入步骤3。返回机制是机器人旋转一个随机角度,然后检查旋转后机器人行进方向上的像素值(搜索像素的数量取决于地图分辨率)。如果所有像素值均为1,则机器人前进;否则,机器人继续旋转。上述过程可直观地在图9中表示。这类似于许多现有真空清洁机器人所采用的随机游走策略。

步骤3 :地面分割结果可以提供地面轮廓以及该轮廓内的物体。如果检测到某些物体,则目标跟踪器(见第三节.B)将工作,使机器人接近该物体(进入步骤4);否则,机器人将根据地面轮廓寻找可行方向(进入步骤5)。

步骤4 :当物体大致位于图像底部中央时,将通过垃圾识别判断该物体是否为垃圾或普通障碍物。如果该物体被判定为垃圾,机械臂将执行拾取操作;否则,避障功能将启动以避开该障碍物(进入步骤5)。

步骤5 :基于地面分割结果,避障将生成最优方向。机器人将沿此方向继续其清洁任务。最优方向可以通过以下描述给出(参见算法1)。

1.) 地面轮廓中无物体 。首先,根据地面轮廓,计算图像每一行可行区域的中心像素。如图10所示,某一行可能存在多个可通过的区间(见图10中的蓝线)。因此,将选择最宽的区间并计算其中心像素值。实际上,仅需从图像中间行(见图10中的红线)到最后一行的一半像素即可提供可行方向。将产生多个中心像素值,记为
$$
Cent = {(u_c^i, v_c^i) | i = 1, …, n},
$$
其中 $n$ 是图像行数量的一半。

2.) 物体存在于地面轮廓中 。计算过程与1.)几乎相同,区别在于需要考虑物体边界。如图11所示,中心像素值是每行中地面边界减去物体边界后的结果(见图11中的蓝线)。也可以获得多个中心像素,并表示为
$$
Cent = {(u_c^i, v_c^i) | i = 1, …, n},
$$
其中 $n$ 是图像行数量的一半。

基于中心像素,可以通过霍夫变换[22](算法1中的函数 hough_line() )拟合出最优方向。因此,可以获得图像中的最优方向(见图10和图11中的绿色箭头)。并可根据单应性将其轻松转换为机器人的实际运动方向,即图像与平面地面之间的映射(算法1中的单应性矩阵H)。

上述五个步骤在整个区域清理垃圾时会重复操作。

示意图6

示意图7

示意图8

示意图9

示意图10

算法1 寻找最优方向

初始化向量 In, Cent
对于 i=0 到 h/2-1 做
    in_w = 0 初始化,max_w = 0
    对于 j=0 到 w-1 执行
        确定点 P(j, i-1+h/2) 是否在地面轮廓 GC 内
        flag_gc = pointPolygonTest1(GC, P, false)
        如果 flag_gc == 1,则 P 在 GC 内部
            确定点 P 是否位于所有障碍物轮廓 OC[n] 内
            对于 n=1 到 M 做
                flag_oc = pointPolygonTest1(OC[n], P, false)
                如果 flag_oc == 1,则 P 在 OC[n] 内
                    如果 In ≠ Ø,则区间宽度 in_w = j - 1 - In[0]
                    如果 in_w > max_w,则
                        max_w = in_w,将 ((j-1+In[0])/2, i-1+h/2) 存储为 Cent[i],清空 In
                    否则 清空 In
                    break
            如果 n == M 且 P 在所有轮廓 OC 之外,则将 j 存储在向量 In 中
        否则(flag_gc <= 0,P 在 GC 外部)
            如果 In ≠ Ø,则区间宽度 in_w = j - 1 - In[0]
            如果 in_w > max_w,则
                max_w = in_w,将 ((j-1+In[0])/2, i-1+h/2) 存储为 Cent[i],清空 In
            否则 清空 In
    结束循环
[ρ, θ] = hough_line(Cent)
在线上随机选择两个点 A、B
将点 A、B 映射到真实地面平面上的 A'、B',A' = H⁻¹A,B' = H⁻¹B
最优方向 θ = arctan((B'_y - A'_y)/(B'_x - A'_x))

IV. 实验结果与讨论

A. 识别准确率

捡拾垃圾的关键在于垃圾识别。如果识别模块未能识别出垃圾,或将非垃圾物体误识别为垃圾,机器人将无法正常工作。因此,首先对识别准确率进行了测试。该数据集包含4万张训练图像和7千张测试图像,共六类(5个垃圾类别和1个非垃圾类别)。我们展示了在训练集上训练并在测试集上评估的实验结果。网络架构采用ResNet-34[21]。我们以0.01的学习率开始训练,在2万次、4万次和6万次迭代时将其除以5,并在7.5万次迭代时终止训练。最终的测试结果如表I所示。

废纸的误差明显高于其他类别的误差,这是由于其缺乏视觉特征。同样,一些透明塑料袋导致塑料袋的误差相对较高,因为透明物体的特征较少,深度神经网络难以识别这些物体。然而,在实际测试中,捡起垃圾的成功率可达96%。只要机器人将物体识别为上述五个类别之一,就会将其捡起。因此,即使机器人误将物体识别为另一类别,捡起垃圾的成功率仍高于识别准确率。这表明所提出的机器人可用于在现实世界中自主清理垃圾。

为了测试区分垃圾与非垃圾(例如书、钱包、手机等)的能力,我们使用了6种常见物体(杯子、书、鞋子、手机、包、钱包),这些物体可能会掉落在草地上,并收集了750张图像用于测试。结果如表II所示。尽管某些物体的识别误差相对较高,但我们可以通过设置更高的概率阈值,以避免机器人在真实环境中运行时将其拾起。

表 I 测试集上的分类错误
类别
------
瓶子
Can
纸箱
塑料袋
废纸
表 II 非垃圾上的分类错误
类别\非垃圾
------------
瓶子
Can
纸箱
塑料袋
废纸

B. 计算成本

关键算法的平均计算时间已计算,结果如表III所示。地面分割和垃圾识别在GPU上运行,分别耗时约10.3毫秒和8.1毫秒。尽管这可以实现实时操作,但在实际中垃圾识别并非一直运行,只有当机器人接近物体时才会启动垃圾识别。避障运行在中央处理器上,耗时约16.5毫秒。测试结果验证了所提出的算法能够满足实时性要求。由于垃圾拾取是在机器人停止后执行的,因此对实时性要求不高。拾取耗时约1.4秒,对于清洁任务而言效率相对较高。然而,期望进一步缩短拾取的时间开销。

表 III 关键算法的计算时间
处理步骤
---------
地面分割*
垃圾识别*
避障
拾取
*在GPU上运行

C. 清洁效率测试

为了测试清洁效率,我们在一个操场(85.4米 × 73米)上进行了两个实验。实验1是机器人按照规划路径清洁整个区域,如图12所示;实验2是机器人随机移动来清洁整个区域,如图13所示。

机器人可以在约10米范围内感知60°的区域。我们在操场随机放置了20个和50个垃圾进行测试。在不同时期统计了拾取的垃圾数量,如表IV所示。实验1耗时约42分钟将20个垃圾全部捡起;而实验2耗时约58分钟。由于路径规划能从时间成本的角度最优地覆盖整个区域,因此实验1比实验2更高效地清洁了整个区域。然而,当垃圾数量增加时,如表IV所示,实验1耗时约61分钟,实验2耗时约65分钟,此时实验2的效率与实验1大致相同。但实验2比实验1更容易实现,因为实验2无需进行路径规划来覆盖整个清洁区域。

示意图11

示意图12

表 IV 不同时期的垃圾数量
时期
------
10分钟
20分钟
30分钟
40分钟
50分钟
60分钟
65分钟
*1 结束于42分钟

V. 结论

本文提出了一种用于自动清理草地垃圾的新型机器人系统。基于强大的深度神经网络,所提出的机器人能够无需人工干预即可识别并拾取垃圾。此外,还提出了一种基于地面分割的新型导航算法。通过机械臂,可拾取草地上相对较大的垃圾。这种清洁机制相较于现有的道路清扫车或真空清洁机器人,更适合于草地上的垃圾清理。实验结果证明,所提出的机器人能够准确识别垃圾并高效移动。该机器人可作为清理公园或学校大型草坪上垃圾的有力工具。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值