机器人避障方法、装置、机器人及计算机可读存储介质
技术领域
本公开涉及信息技术领域,特别涉及一种机器人避障方法、装置、机器人及计算机可读存储介质。
背景技术
自主避障是移动机器人智能化的重要标志。所谓自主避障,是指移动机器人在移动过程中通过传感器采集障碍物的状态信息,感知到妨碍其通行的静态和动态障碍物时,按照一定的方法躲避障碍物,最后达到终点。
传统的机器人避障技术主要采用激光雷达。激光雷达是通过发射激光束探测目标的位置、速度等特征量的雷达系统。其工作原理是向目标发射探测信号,然后将接收到的从目标反射回来的信号与发射信号进行比较并做适当处理,即可获得目标的距离、方位、高度、速度、姿态、形状等数据。用这些数据进行成像处理后,即可获得目标的三维立体图像,以实现避障功能。
发明内容
本公开解决的一个技术问题是,如何简单高效的实现移动机器人的自主避障功能。
根据本公开实施例的一个方面,提供了一种机器人避障方法,包括:沿机器人前进方向拍摄图像;对图像中的目标障碍进行检测,得到目标障碍在图像坐标系下的检测坐标;利用检测坐标对目标障碍进行跟踪,得到目标障碍在图像坐标系下的连续多个跟踪坐标;根据跟踪坐标,控制机器人躲避目标障碍。
在一些实施例中,根据跟踪坐标,控制机器人躲避目标障碍包括:利用跟踪坐标构建目标障碍的运动轨迹;利用运动轨迹,确定目标障碍在图像坐标系下的至少一个预测坐标;根据图像坐标系与世界坐标系之间的映射关系,将至少一个预测坐标映射为目标障碍在世界坐标系下的至少一个地面预测坐标;根据至少一个地面预测坐标,控制机器人躲避目标障碍。
在一些实施例中,利用跟踪坐标构建目标障碍的运动轨迹包括:利用三次样条插值算法对跟踪坐标进行处理,得到目标障碍的运动轨迹。
在一些实施例中,根据至少一个地面预测坐标,控制机器人躲避目标障碍包括:采用方格的形式对世界坐标系下的所有地面坐标进行划分;将至少一个地面预测坐标所属的方格标记为目标障碍区域,将其余方格标记为可通行区域;控制机器人在可通行区域内运动。
在一些实施例中,控制机器人在可通行区域内运动包括:在可通行区域内,为机器人规划从起点至终点的运动路径;控制机器人沿运动路径运动。
在一些实施例中,对图像中的目标障碍进行检测包括:利用预先训练的卷积神经网络对图像中的目标障碍进行检测,其中,卷积神经网络采用深度可分离卷积的方式提取目标障碍的特征。
在一些实施例中,还包括:将YOLOv3神经网络中的Darknet卷积层替换为MobileNetv2神经网络中的深度可分离卷积层,以构建卷积神经网络。
在一些实施例中,对图像中的目标障碍进行检测,得到目标障碍在图像坐标系下的检测坐标包括:对图像中的目标障碍进行检测,得到目标障碍的检测框;将检测框的中心点在图像坐标系下的坐标作为检测坐标。
根据本公开实施例的另一个方面,提供了一种机器人避障装置,包括:图像拍摄模块,被配置为沿机器人前进方向拍摄图像;障碍检测模块,被配置为对图像中的目标障碍进行检测,得到目标障碍在图像坐标系下的检测坐标;障碍跟踪模块,被配置为利用检测坐标对目标障碍进行跟踪,得到目标障碍在图像坐标系下的连续多个跟踪坐标;机器人控制模块,被配置为根据跟踪坐标,控制机器人躲避目标障碍。
在一些实施例中,机器人控制模块被配置为:利用跟踪坐标构建目标障碍的运动轨迹;利用运动轨迹,确定目标障碍在图像坐标系下的至少一个预测坐标;根据图像坐标系与世界坐标系之间的映射关系,将至少一个预测坐标映射为目标障碍在世界坐标系下的至少一个地面预测坐标;根据至少一个地面预测坐标,控制机器人躲避目标障碍。
在一些实施例中,机器人控制模块被配置为:利用三次样条插值算法对跟踪坐标进行处理,得到目标障碍的运动轨迹。
在一些实施例中,机器人控制模块被配置为:采用方格的形式对世界坐标系下的所有地面坐标进行划分;将至少一个地面预测坐标所属的方格标记为目标障碍区域,将其余方格标记为可通行区域;控制机器人在可通行区域内运动。
在一些实施例中,机器人控制模块被配置为:在可通行区域内,为机器人规划从起点至终点的运动路径;控制机器人沿运动路径运动。
在一些实施例中,障碍检测模块被配置为:利用预先训练的卷积神经网络对图像中的目标障碍进行检测,其中,卷积神经网络采用深度可分离卷积的方式提取目标障碍的特征。
在一些实施例中,障碍检测模块还被配置为:将YOLOv3神经网络中的Darknet卷积层替换为MobileNetv2神经网络中的深度可分离卷积层,以构建卷积神经网络。
在一些实施例中,障碍检测模块被配置为:对图像中的目标障碍进行检测,得到目标障碍的检测框;将检测框的中心点在图像坐标系下的坐标作为检测坐标。
根据本公开实施例的又一个方面,提供了又一种机器人避障装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行前述的机器人避障方法。
根据本公开实施例的再一个方面,提供了一种避障机器人,包括摄像机以及前述的机器人避障装置。
根据本公开实施例的又一个方面,提供了一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现前述的机器人避障方法。
本公开能够使移动机器人简单高效的识别出前进方向上的各类障碍,降低了实现移动机器人自主避障功能的成本开销。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了本公开一些实施例的机器人避障方法的流程示意图。
图2示出了根据跟踪坐标控制机器人躲避目标障碍的一些实施例的流程示意图。
图3示例性示出了可通行区域的示意图。
图4示出了本公开一些实施例的机器人避障装置的结构示意图。
图5示出了本公开一些实施例的避障机器人的结构示意图。
图6示出了本公开另一些实施例的机器人避障装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
发明人认为,从一方面来讲,激光雷达的价格昂贵,在移动机器人上安装激光雷达会增加移动机器人的成本开销;从另一方面来讲,激光雷达不能识别障碍的类型(例如障碍是人还是车辆),无法实现对特定类型障碍的智能避障。有鉴于此,本公开提出了一种机器人避障方法。
首先结合图1描述本公开机器人避障方法的一些实施例。
图1示出了本公开一些实施例的机器人避障方法的流程示意图。如图1所示,本实施例包括步骤S101~步骤S104。
在步骤S101中,沿机器人前进方向拍摄图像。
为便于拍摄图像,可以在机器人前进方向安装摄像头,以机器人第一视角为场景来拍摄图像。
在步骤S102中,对图像中的目标障碍进行检测,得到目标障碍在图像坐标系下的检测坐标。
本领域技术人员应理解,目标障碍不仅可以为固定障碍,还可以为可移动障碍;图像中不仅可以存在单个同类型的目标障碍,还可以同时存在多个同类型的目标障碍。
下面以行人检测为例,来描述如何对图像中的目标障碍进行检测。
行人检测是长期以来难以解决的问题。由于行人的姿态复杂多变,且存在严重的附着物和遮挡等问题,因此准确的检测处于各种场景下的行人具有很大的难度。本实施例中,首先将YOLOv3神经网络中的Darknet卷积层(共53个卷基层,也被业界称为Darknet53)替换为MobileNetv2神经网络中的深度可分离卷积层,以构建卷积神经网络Mobilenetv2-YOLOv3。然后,利用预先训练的卷积神经网络Mobilenetv2-YOLOv3对图像中的目标障碍进行检测,其中,卷积神经网络Mobilenetv2-YOLOv3采用深度可分离卷积的方式提取目标障碍的特征。最后,对图像中的目标障碍进行检测,得到目标障碍的检测框,并将检测框的中心点在图像坐标系下的坐标作为检测坐标。
将YOLOv3神经网络中的Darknet卷积层替换为MobileNetv2神经网络中的深度可分离卷积层,可以在目标检测精度损失小的情况下大幅提升目标检测速度。基于机器人避障场景的特殊性,通常需要躲避的障碍物离机器人距离较近,因此所拍摄图像中的目标障碍通常较大,利用MobileNetv2神经网络中的深度可分离卷积层即可准确检测出在图像中较大目标障碍。经过实验得知,目标障碍的检测速度提升约2.5倍。
在步骤S103中,利用检测坐标对目标障碍进行跟踪,得到目标障碍在图像坐标系下的连续多个跟踪坐标。
仍以行人检测为例。根据行人检测的结果,可以在场景中对每个行人进行跟踪。基于SORT(Simple Online And Realtime Tracking,简单的在线和实时跟踪)的多目标跟踪算法使用简单的卡尔曼滤波处理逐帧数据的关联性并使用匈牙利算法进行关联度量,该算法在高帧速率下获得了良好的性能。但由于SORT算法仅仅使用了检测框的位置和大小进行目标的运动估计和数据关联,忽略了被检测物体的表面特征(例如颜色特征,纹理特征等),因此目标跟踪结果的准确较低。有鉴于此,可以在SORT算法的基础上建立了深度卷积神经网络去提取目标障碍的特征信息,并利用提取的特征信息进行匹配,能够有效改善SORT算法中目标障碍粘连和遮挡的问题,提升目标跟踪算法的鲁棒性。
在步骤S104中,根据跟踪坐标,控制机器人躲避目标障碍。
例如,将某个行人的检测坐标输入前述改进的SORT算法,可以输出该行人的标识以及该行人在图像坐标系下的连续五帧的跟踪框,并将跟踪框的中心点在图像坐标系下的坐标作为该行人的跟踪坐标。提取该行人连续五帧的跟踪坐标,根据这些跟踪坐标可以预测该行人的位置,从而控制机器人躲避行人。
本实施例将人工智能技术应用于移动机器人的第一视角场景,通过视觉算法来实现移动机器人的自主避障功能,能够使移动机器人简单高效的识别出前进方向上的各类障碍,并降低了实现移动机器人自主避障功能的成本开销。
下面结合图2描述根据跟踪坐标控制机器人躲避目标障碍的一些实施例。
图2示出了根据跟踪坐标控制机器人躲避目标障碍的一些实施例的流程示意图。如图2所示,本实施例包括步骤S2041~步骤S2044。
在步骤S2041中,利用跟踪坐标构建目标障碍的运动轨迹。
例如,可以利用三次样条插值算法对跟踪坐标进行处理,得到目标障碍的运动轨迹。三次样条插值算法能够将一个区间划分成多个区间,通过已知的多个点来模拟得到一个二阶导数连续的分段函数。将五个跟踪目标输入三次样条插值算法,可以拟合构建出一条平滑的运动轨迹。
在步骤S2042中,利用运动轨迹,确定目标障碍在图像坐标系下的至少一个预测坐标。
本领域技术人员应理解,利用该运动轨迹,可以确定目标障碍在图像坐标系中下一帧的预测坐标(一个预测坐标)或接下来多帧的预测坐标(例如十个预测坐标)。
在步骤S2043中,根据图像坐标系与世界坐标系之间的映射关系,将至少一个预测坐标映射为目标障碍在世界坐标系下的至少一个地面预测坐标。
以行人的一个预测坐标为例。在进行坐标映射时,首先将行人在图像坐标系下的预测坐标映射至行人在世界坐标系下的预测坐标。然后,将行人在世界坐标系下的预测坐标映射至地面所在的平面,得到行人在地面所在平面上的二维坐标。
在步骤S2044中,根据至少一个地面预测坐标,控制机器人躲避目标障碍。
例如,可以采用方格的形式对世界坐标系下的所有地面坐标进行划分。然后,将至少一个地面预测坐标所属的方格标记为目标障碍区域(例如用0表示),并将其余方格标记为可通行区域(例如用1表示)。根据由标记(例如0和1)组成的形如二维矩阵的地图信息,可以生成可通行区域,并控制机器人在可通行区域内运动实现避障。
图3示例性示出了可通行区域的示意图。如图3所示,白色区域表示地面上的目标障碍区域,黑色区域表示地面上的可通行区域。
在一些实施例中,在获得多个地面预测坐标的情况下,可以在可通行区域内,为机器人规划从起点至终点的运动路径,并控制机器人沿运动路径运动。
上述实施例能够利用目标障碍的跟踪坐标对目标障碍进行状态估计,实现对目标障碍的短期运动轨迹预测,从而简单高效的预测目标障碍的地面坐标,以较低的成本开销实现移动机器人的自主避障功能。
下面结合图4描述本公开机器人避障装置的一些实施例。
图4示出了本公开一些实施例的机器人避障装置的结构示意图。如图4所示,本实施例中的机器人避障装置40包括:
图像拍摄模块401,被配置为沿机器人前进方向拍摄图像;障碍检测模块402,被配置为对图像中的目标障碍进行检测,得到目标障碍在图像坐标系下的检测坐标;障碍跟踪模块403,被配置为利用检测坐标对目标障碍进行跟踪,得到目标障碍在图像坐标系下的连续多个跟踪坐标;机器人控制模块404,被配置为根据跟踪坐标,控制机器人躲避目标障碍。
本实施例将人工智能技术应用于移动机器人的第一视角场景,通过视觉算法来实现移动机器人的自主避障功能,能够使移动机器人简单高效的识别出前进方向上的各类障碍,并降低了实现移动机器人自主避障功能的成本开销。
在一些实施例中,机器人控制模块404被配置为:利用跟踪坐标构建目标障碍的运动轨迹;利用运动轨迹,确定目标障碍在图像坐标系下的至少一个预测坐标;根据图像坐标系与世界坐标系之间的映射关系,将至少一个预测坐标映射为目标障碍在世界坐标系下的至少一个地面预测坐标;根据至少一个地面预测坐标,控制机器人躲避目标障碍。
在一些实施例中,机器人控制模块404被配置为:利用三次样条插值算法对跟踪坐标进行处理,得到目标障碍的运动轨迹。
在一些实施例中,机器人控制模块404被配置为:采用方格的形式对世界坐标系下的所有地面坐标进行划分;将至少一个地面预测坐标所属的方格标记为目标障碍区域,将其余方格标记为可通行区域;控制机器人在可通行区域内运动。
上述实施例能够利用目标障碍的跟踪坐标对目标障碍进行状态估计,实现对目标障碍的短期运动轨迹预测,从而简单高效的预测目标障碍的地面坐标,以较低的成本开销实现移动机器人的自主避障功能。
在一些实施例中,机器人控制模块404被配置为:在可通行区域内,为机器人规划从起点至终点的运动路径;控制机器人沿运动路径运动。
在一些实施例中,障碍检测模块402被配置为:利用预先训练的卷积神经网络对图像中的目标障碍进行检测,其中,卷积神经网络采用深度可分离卷积的方式提取目标障碍的特征。
在一些实施例中,障碍检测模块402还被配置为:将YOLOv3神经网络中的Darknet卷积层替换为MobileNetv2神经网络中的深度可分离卷积层,以构建卷积神经网络。
在一些实施例中,障碍检测模块402被配置为:对图像中的目标障碍进行检测,得到目标障碍的检测框;将检测框的中心点在图像坐标系下的坐标作为检测坐标。
下面结合图5描述本公开避障机器人的一些实施例。
图5示出了本公开一些实施例的避障机器人的结构示意图。如图5所示,本实施例中的避障机器人50包括摄像机500以及前述的机器人避障装置40。
本实施例将人工智能技术应用于移动机器人的第一视角场景,通过视觉算法来实现移动机器人的自主避障功能,能够使移动机器人简单高效的识别出前进方向上的各类障碍,并降低了实现移动机器人自主避障功能的成本开销。
下面结合图6描述本公开机器人避障装置的一些实施例。
图6示出了本公开另一些实施例的机器人避障装置的结构示意图。如图6所示,该实施例的机器人避障装置60包括:存储器610以及耦接至该存储器610的处理器620,处理器620被配置为基于存储在存储器610中的指令,执行前述任意一些实施例中的机器人避障方法。
其中,存储器610例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
机器人避障装置60还可以包括输入输出接口630、网络接口640、存储接口650等。这些接口630、640、650以及存储器610和处理器620之间例如可以通过总线660连接。其中,输入输出接口630为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口640为各种联网设备提供连接接口。存储接口650为SD卡、U盘等外置存储设备提供连接接口。
本公开还包括一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现前述任意一些实施例中的机器人避障方法。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。