机器人躲避控制方法和装置
技术领域
本发明实施例涉及数据处理技术,尤其涉及一种机器人躲避控制方法和装置。
背景技术
随着人工智能技术的不断进步,人们对机器人功能的要求越来越高,期望机器人能够有一定的自主处理能力。
机器人在实际应用中,在自主行走或控制行走的过程中,不可避免地在它前方或侧面出现墙壁、家具,甚至人与动物等障碍物。基于此,现有技术中出现了机器人行进过程中的障碍物躲避技术,例如:在机器人碰到障碍物之后再通过相应的控制来更改原来的路线,以达到躲避障碍物的目的。
但是,上述技术主要应用于机器人行进的场景中,无法应用于机器人被动躲避的场景,例如,当机器人处于静止状态,而有移动的物体接近机器人时,机器人无法进行有效的躲避;同时,这种处理方式容易对机器人造成损伤,时间久了之后会增加机器人的维护成本,若障碍物是人或者动物,还可能会对人或动物造成伤害,因此上述技术的使用会受到一定限制。
发明内容
本发明实施例提供了一种机器人躲避控制方法和装置,以优化现有的机器人躲避技术,提高机器人躲避技术方案的通用性。
第一方面,本发明实施例提供了一种机器人躲避控制方法,包括:
通过单目照相机获取检测方向上的至少两幅物体图像,并在所述物体图像中识别至少一个运动物体;
根据所述运动物体在所述物体图像中的像素坐标,计算所述运动物体在地理空间中的位置坐标;
根据所述位置坐标对应的实时变化情况,预测所述运动物体对应的运动状态;
根据所述运动状态,控制所述机器人对所述运动物体进行躲避。
第二方面,本发明实施例还提供了一种机器人躲避控制装置,该装置包括:
运动物体识别模块,用于通过单目照相机获取检测方向上的至少两幅物体图像,并在所述物体图像中识别至少一个运动物体;
位置坐标计算模块,用于根据所述运动物体在所述物体图像中的像素坐标,计算所述运动物体在地理空间中的位置坐标;
运动状态预测模块,用于根据所述位置坐标对应的实时变化情况,预测所述运动物体对应的运动状态;
控制躲避模块,用于根据所述运动状态,控制所述机器人对所述运动物体进行躲避。
本发明实施例通过在单目照相机获取的多张物体图像中识别运动物体,并根据运动物体在物体图像中的像素坐标,计算运动物体在地理空间中的位置坐标,根据该位置坐标的实时变化情况,对运动物体的运动状态进行预测,并最终根据运动状态预测结果控制所述机器人对所述运动物体进行躲避的技术方案,基于现有技术中没有针对静止机器人躲避运动障碍物提出行之有效的解决方法的问题,提出了有效的解决方案,优化了现有的机器人躲避技术,提高机器人躲避技术方案的通用性,在不影响机器人运动状态的前提下,有效控制机器人对运动物体进行躲避。
附图说明
图1a是本发明实施例一提供的一种机器人躲避控制方法的流程图;
图1b是现有技术中的一种照相机成像过程中,地理坐标与像素坐标之间的映射关系图;
图2a是本发明实施例二提供的一种机器人躲避控制方法的流程图;
图2b是本发明实施例二中的一种物体图像的示意图;
图2c是本发明实施例二中的一种对物体图像进行二值化处理后的示意图;
图3a是本发明实施例三提供的一种机器人躲避控制方法的流程图;
图3b是本发明实施例三提供的一种机器人躲避运动物体的示意图;
图3c是本发明实施例三提供的另一种机器人躲避运动物体的示意图;
图3d是本发明实施例三提供的一种过滤目标运动物体之外的运动物体的示意图;
图4a是本发明实施例四提供的一种机器人躲避控制方法的流程图;
图4b是本发明实施例四提供的一种机器人躲避运动物体的示意图;
图5是本发明实施例五提供的一种机器人躲避控制装置的结构图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1a为本发明实施例一提供的一种机器人躲避控制方法的流程图,本实施例可适用于机器人对运动的物体进行躲避的情况,该方法可以由机器人躲避控制装置来执行,该装置可以由软件和/或硬件的方式实现,并一般可集成于机器人的控制器中,本实施例的方法具体包括如下步骤:
S110、通过单目照相机获取检测方向上的至少两幅物体图像,并在所述物体图像中识别至少一个运动物体。
在本实施例中,所述单目照相机(仅包括一个镜头的照相机)可以配置于机器人的头部或者其他可转动的部位上,用于在机器人转动至一个检测方向上时,在该检测方向上拍摄多张物体图像。
其中,多张物体图像的拍摄间距可以根据实际情况进行预设,例如,2s、3s或者5s等,本实施例对此并不进行限制。
可以理解的是,如果机器人处于静止状态,单目摄像头所拍摄的多张物体图像中静止的物体不会发生改变,而运动的物体在图像中的位置则会发生改变。因此可以使用运动前景对象检测技术,将运动前景对象与背景进行分割,进而可以在该物体图像中识别出一个或者多个运动物体。
另外,需要说明的是,如果所述机器人处于运动状态,则可以首先将该机器人假设为静止状态,将检测方向上相对于该机器人进行运动的物体(可能是实际运动的物体,也可能是实际静止的物体)设定为运动物体,通过将地面作为图像背景,同样可以应用运动前景对象检测技术,在所述物体图像中识别出上述设定的运动物体。当然,运动中的机器人在识别运动物体时,识别精度会略低于静止的机器人。
S120、根据所述运动物体在所述物体图像中的像素坐标,计算所述运动物体在地理空间中的位置坐标。
在使用单目照相机进行拍摄时,基于设定的成像原理,可以将地理空间中的立体图像,映射至所拍摄图像中的像素坐标中。其中,在图1b中示出了一种照相机成像过程中,地理坐标与像素坐标之间的映射关系图。
在图1b中示出的三个坐标系分别为:与地理空间对应的世界坐标系,与单目照相机对应的相机坐标系以及与单目照相机所拍摄图像对应的图像坐标系。
其中,世界坐标系(Xw,Yw,Zw)为用户定义的空间三维坐标系,用来描述三维空间中的物体和相机之间的坐标位置关系;相机坐标系(Xc,Yc,Zc)以相机的光心为原点,Zc轴与光轴重合,并垂直于成像平面,且取拍照方向为正方向,Xc、Yc轴与图像坐标系的x,y轴平行,且OcO为相机的焦距f;图像坐标系是以图像的左上方为原点建立的图像坐标系(u,v)(此坐标以像素为单位)。
基于上述三个坐标系之间的映射关系,可以实现根据所述运动物体在所述物体图像中的像素坐标,计算所述运动物体在地理空间中的位置坐标。
S130、根据所述位置坐标对应的实时变化情况,预测所述运动物体对应的运动状态。
在本实施例中,所述运动状态具体是指用于描述所述运动物体对所述机器人的接近程度的数据参量,所述机器人根据所述运动状态,可以确定相应的躲避时机以及躲避策略。
其中,所述运动状态可以为所述运动物体的运动速度,和/或所述运动物体的运动方向;相应的,可以根据所述位置坐标在至少两个时间下的实时变化情况,确定所述运动物体的运动方向,以及运动速度;
所述运动状态还可以为所述运动物体的运动加速度;相应的,可以通过所述位置坐标在至少三个时间下的实时变化情况,获取所述运动物体的至少两个实时运动速度,进而根据该至少两个实时运动速度,确定所述运动物体的运动加速度。
S140、根据所述运动状态,控制所述机器人对所述运动物体进行躲避。
在本实施例中,可以当所述运动状态满足预设的躲避条件时,控制所述机器人对所述运动物体进行躲避。例如,当运动物体与该机器人之间的距离小于设定距离阈值时,控制所述机器人对所述运动物体进行躲避;或者当该运动物体的速度或者加速度超过设定速度或者加速度阈值时,控制所述机器人对所述运动物体进行躲避;或者当运动物体在设定时间内的运动轨迹与预设的机器人的安全范围线段相交时,控制所述机器人对所述运动物体进行躲避等。
相应的,控制所述机器人对所述运动物体进行躲避可以包括:控制所述机器人水平或者竖直设定距离或者控制所述机器人朝着检测方向反方向后退设定距离等方式,对所述运动物体进行躲避。
本发明实施例通过在单目照相机获取的多张物体图像中识别运动物体,并根据运动物体在物体图像中的像素坐标,计算运动物体在地理空间中的位置坐标,根据该位置坐标的实时变化情况,对运动物体的运动状态进行预测,并最终根据运动状态预测结果控制所述机器人对所述运动物体进行躲避的技术方案,基于现有技术中没有针对静止机器人躲避运动障碍物提出行之有效的解决方法的问题,提出了有效的解决方案,优化了现有的机器人躲避技术,提高机器人躲避技术方案的通用性,实现成本低廉,躲避效果好。
实施例二
图2a是本发明实施例二提供的一种机器人躲避控制方法的流程图,本实施例以上述实施例为基础进行优化,在本实施例中,将在所述物体图像中识别至少一个运动物体具体优化为:从所述至少两幅物体图像中识别运动前景对象;通过二值化处理,将所述运动前景对象标记为白色;在所述物体图像中,分别将相邻白色像素点构成的区域拟合为运动物体。相应的,本实施例的方法具体包括:
S210、通过单目照相机获取检测方向上的至少两幅物体图像。
S220、从所述至少两幅物体图像中识别运动前景对象。
如前所述,通过使用运动前景对象检测技术可以从多张物体图像中识别出运动前景对象。运动前景对象检测技术所使用的算法可以包括:帧差算法、背景减除算法(典型的,码本算法、自组织背景检测算法、Vibe算法以及多帧平均算法)、光流(稀疏光流、稠密光流)算法以及运动竞争算法等。
其中,考虑到Vibe算法速度非常快,计算量比较小,而且对噪声有一定的鲁棒性,本实施例的方法可选使用Vibe算法实现从所述至少两幅物体图像中识别运动前景对象。
ViBe算法的核心思想为:为每个像素点存储一个样本集,样本集中的采样值就是该像素点过去的像素值和其邻居点的像素值,然后将每一个新的像素值和样本集进行比较来判断该像素值是否属于背景点,ViBe算法实现起来主要分为三个步骤:背景模型的初始化、对后继图像序列进行前景目标分割以及背景模型的更新策略。
S230、通过二值化处理,将所述运动前景对象标记为白色。
在识别出物体图像中哪些像素点是运动前景对象对应的像素点之后,可以进而通过二值化处理,将物体图像中的运动前景对象标记为白色,并将物体图像中的背景标记为另一种颜色,例如,黑色。
S240、在所述物体图像中,分别将相邻白色像素点构成的区域拟合为运动物体。
其中,在图2b中示出了一种物体图像的示意图,在图2c中示出了一种对物体图像进行二值化处理后的示意图。图2c中相邻白色像素点构成的区域即为一个运动物体。
另外需要说明的是,在图2c中,在同一张物体图像中拟合了同一运动物体在不同时间下的位置变化情况。此外,还可以在不同物体图像中仅拟合出与该物体图像对应的拍摄时间下,运动物体所在的位置,本实施例对此并不进行限制。
S250、根据所述运动物体在所述物体图像中的像素坐标,计算所述运动物体在地理空间中的位置坐标。
通过实施例一中的相关论述可知,在获取地理空间中的三维位置坐标A后,可以根据世界坐标系、相机坐标系以及图像坐标系三者之间的映射关系,获取该三维位置坐标A的二维像素坐标B。
但是,如果是根据二维像素坐标计算三维位置坐标,则会出现过多的未知数而无法直接通过坐标变换的方式获取所述三维位置坐标。
发明人通过研究发现:运动物体一般都是贴着地面进行运动的,而地面上的一点在地理空间中的位置坐标的高度值为0,同时该点在物体图像中的像素坐标也是最低的。通过将上述两点相关联,可以巧妙的约去一维高度未知量,进而可以根据该二维像素坐标计算出所需的二维位置坐标。
相应的,根据所述运动物体在所述物体图像中的像素坐标,计算所述运动物体在地理空间中的位置坐标,可以包括:
将所述运动物体在地理空间中高度值为0的位置坐标,与所述运动物体在所述物体图像中距离地平面最近的像素坐标相关联,计算所述运动物体在地理空间中的位置坐标。
虽然本步骤中计算得到的位置坐标中高度坐标为0,但是高度坐标并不是躲避控制过程中需要关注的量。实际上,我们真正关注的是运动物体在水平面中的移动情况,进而确定是否需要对该运动物体进行躲避。
S260、根据所述位置坐标对应的实时变化情况,预测所述运动物体对应的运动状态。
S270、根据所述运动状态,控制所述机器人对所述运动物体进行躲避。
本实施例的技术方案通过使用ViBe算法在物体图像中识别运动前景对象,识别速度快,计算量小,可以在保证识别准确性的同时,节约识别时间,提高了躲避控制的响应速度;此外,通过将所述运动物体在地理空间中高度值为0的位置坐标,与所述运动物体在所述物体图像中距离地平面最近的像素坐标相关联,计算所述运动物体在地理空间中的位置坐标,可以在约去与躲避控制无关的高度参量的基础上,得到所述运动物体在水平面上准确的位置坐标,使得根据二维像素坐标计算得到三维位置坐标的方案有效可行。
实施例三
图3a是本发明实施例三提供的一种机器人躲避控制方法的流程图,本实施例以上述实施例为基础进行优化,在本实施例中,将所述运动物体在地理空间中高度值为0的位置坐标,与所述运动物体在所述物体图像中距离地平面最近的像素坐标相关联,计算所述运动物体在地理空间中的位置坐标进行进一步优化。相应的,本实施例的方法具体包括:
S310、通过单目照相机获取检测方向上的至少两幅物体图像,并在所述物体图像中识别至少一个运动物体。
S320、根据所述单目照相机在地理空间中的位置,建立三维测量坐标系;其中,将所述单目照相机的几何中点在水平面上的投影点作为坐标原点。
在本实施例中,为了实现机器人对靠近的运动物体进行躲避,需要实时计算不同运动物体与机器人之间的相对距离。为了方便计算,可以将机器人(或者说,单目照相机)在水平面中的投影位置作为坐标原点建立三维测量坐标系,这样的话,计算得到的各个运动物体在该三维测量坐标系中与坐标原点之间的距离,即是与该机器人之前的距离。
可选的,根据所述单目照相机在地理空间中的位置,建立三维测量坐标系可以包括:
确定竖直方向上经过所述单目照相机的几何中心的目标直线,并将所述目标直线与地平面的交点作为坐标原点;
以竖直向上方向为z轴,相机朝向方向为y轴,与相机朝向垂直的水平方向为x轴,建立所述三维测量坐标系;
其中,所述单目照相机在所述三维测量坐标系中的坐标为(0,0,Hc),所述Hc为所述单目照相机距离地面的高度。
S330、令所述运动物体在所述三维测量坐标系中的坐标为(x,y,0)。
S340、获取所述运动物体在所述物体图像中距离地平面最近的目标像素坐标(px,py)。
S350、根据所述单目相机成像过程中,像素坐标与位置坐标之间的映射关系,以及所述目标像素坐标(px,py),计算x、y的取值。
相应的,可以根据下述公式,计算x、y的取值:
其中,xc、yc以及zc为所述目标像素坐标(px,py)在所述单目照相机的相机坐标系中的坐标;
R为相机的旋转矩阵,由所述单目照相机的相机姿态确定;T为相机的平移矩阵,由所述单目照相机在所述三维测量坐标系中的坐标确定;fx、fy为相机的内部参数,通过对所述单目照相机进行预先标定获取;
所述单目照相机的相机姿态表示为(yawc,pithc,0),yawc为单目照相机围绕Y轴旋转的角度;pithc为单目照相机围绕X轴旋转的角度。
本领域技术人员可以理解的是,在机器人设计过程中,所述单目照相机的相机姿态通常是已知的。例如:针对单目照相机的某一个控制指令为O,该控制指令O控制单目照相机围绕X轴,相对设定X轴基准点旋转α度,围绕Y轴相对设定Y轴基准点旋转β度。在单目照相机基于该控制指令O完成相应的运动响应之后,测量并存储所述单目照相机对应的相机姿态,这样的话,当机器人再次收到该控制指令O后,可以相应确定该控制指令O执行后,该单目照相机的相机姿态。
S360、根据所述位置坐标对应的实时变化情况,预测所述运动物体对应的运动状态。
在本实施例中,所述运动状态可以包括:运动速度以及运动方向;
相应的,可以根据在两个时间t1,t2下拍摄的两张物体图像,获取与至少一个运动物体分别对应的两个位置坐标,其中,由于最终计算得到的运动物体的位置坐标中的高度坐标均为0,为了方便表述,在后文提到位置坐标时,通过水平位置坐标(x,y)来表示运动物体所在位置。例如:与运动物体1对应的两个位置坐标为(x11,y11)以及(x12,y12)。相应的,可以计算运动物体1的运动速度v1为
运动物体1的运动方向与X轴的夹角为arctan(|y11-y12|/|x11-x12|)。
进一步的,为了进一步提高运动物体运动状态的计算精度,还可以根据两个以上的时间下拍摄的多张物体图像,获取与运动物体对应的两个以上的位置坐标,之后分别根据每两个相邻时间下获取的两个位置坐标,分别计算该运动物体的运动速度以及运动方向,之后可以通过取统计平均或者通过设定模型进行预测的方式,计算得到所述运动速度以及运动方向。
S370、根据所述运动状态,控制所述机器人对所述运动物体进行躲避。
在本实施例中,可以设定当目标运动物体的运动速度超过设定速度阈值时(例如,3m/s或者5m/s等),或者目标运动物体与单目照相机的距离小于设定距离阈值时(例如:1m、2m或者3m等),控制所述机器人对所述目标运动物体进行躲避。
所述控制所述机器人对所述运动物体进行躲避可以包括:根据所述目标运动物体的运动方向,计算所述目标运动物体与坐标轴之间的交点,控制所述机器人朝着远离该交点的方向进行躲避。
其中,在图3b中示出了一种机器人躲避运动物体的示意图,如图3b所示,根据目标运动物体的两个位置坐标,可以确定该目标运动物体的运动方向,进而可以确定在该运动方向上,目标运动物体与坐标轴的交点,即:与y轴正半轴的交点P,进而可以控制机器人沿着y轴负半轴进行移动,实现对该目标运动物体的躲避。
更具体的,可以根据目标运动物体的运动速度,确定机器人沿着负半轴移动的移动速度,例如,可以将二者取值相等,根据P点与坐标原点之间的距离,确定机器人沿着负半轴移动的移动距离,通过将上述躲避信息,即:移动方向、移动速度以及移动距离转换为运动控制指令,发送至所述机器人的运动控制电机,可以实现基于上述躲避信息进行躲避。
在图3c中示出了另一种机器人躲避运动物体的示意图,如图3c所示,根据目标运动物体的两个位置坐标,可以确定该目标运动物体的运动方向,进而可以确定在该运动方向上,目标运动物体与坐标轴的交点,即:与x轴正半轴的交点P,进而可以控制机器人沿着x轴负半轴进行移动,实现对该目标运动物体的躲避。
本发明实施例的技术方案通过将单目照相机在水平面中的投影位置作为坐标原点建立三维测量坐标系,可以使得计算得到的运动物体在所述三维测量坐标系中的坐标即是相对于该单目照相机的位置,这样设置可以大大减少后续的计算量,提高了躲避控制的响应速度。
在上述各实施例的基础上,所述根据所述位置坐标对应的实时变化情况,预测所述运动物体对应的运动状态之前,还可以包括:
分别根据至少两个运动物体在所述三维测量坐标系中的位置坐标,分别计算各所述运动物体与所述单目照相机之间的距离;
将距离所述单目照相机最近的运动物体作为目标物体,并过滤掉除去所述目标物体之外的运动物体。
其中,在图3d中示出了一种过滤目标运动物体之外的运动物体的示意图。如图3d所示,运动物体A与坐标原点之间的距离为dA,运动物体B与坐标原点之间的距离为dB,dA<dB,进而可以将运动物体A作为目标物体,将运动物体B过滤掉,不再对其进行位置监控。这样设置的好处是:假设距离坐标原点最近的运动物体是与机器人最有可能发生碰撞的物体,只要保证该物体不与机器人相撞即可,进而可以大大减少需要监控的运动物体的数量,进而可以大大减少计算量,并进一步提高碰撞响应速度。
当然,可以理解的是,除了可以假设距离坐标原点最近的运动物体是与机器人最有可能发生碰撞的物体,还可以假设运动速度最快的物体是与机器人最有可能发生碰撞的物体,还可以假设运动加速度最大的物体与机器人最有可能发生碰撞的物体等,相应的,可以将运动速度最快的物体或者运动加速度最大的物体作为所述目标物体,并相应对其他运动物体进行过滤。
实施例四
图4a是本发明实施例四提供的一种机器人躲避控制方法的流程图,本实施例以上述实施例为基础进行优化,在本实施例中,将根据所述运动状态控制所述机器人对所述运动物体进行躲避进行进一步优化。相应的,本实施例的方法具体可以包括:
S410、通过单目照相机获取检测方向上的至少两幅物体图像,并在所述物体图像中识别至少一个运动物体。
S420、根据所述运动物体在所述物体图像中的像素坐标,计算所述运动物体在地理空间中的位置坐标。
S430、根据所述位置坐标对应的实时变化情况,预测所述运动物体对应的运动状态。
在本实施例中,所述预测所述运动物体对应的运动状态,包括:预测所述运动物体对应的运动速度以及运动方向。
S440、在所述三维测量坐标系的x轴上选取设定长度的线段作为安全范围线段。
其中,所述三维测量坐标系即为实施例三中所述的三维测量坐标系。
S450、选取设定的预测时间段,并根据所述预测时间段,所述运动物体的运动速度以及运动方向,拟合所述运动物体的运动轨迹。
在本实施例中,可以根据所述运动物体的运动速度、运动方向以及设定的预测时间段,拟合出一条线段作为所述运动轨迹;此外,还可以根据设定曲线参数,拟合出一条抛物线或者波浪线作为所述运动轨迹等,本实施例对此并不进行限制。
S460、判读所述运动轨迹与所述安全范围线段之间是否具有交点,若是,执行S470;否则,返回执行S450。
S470、根据所述单目照相机的所述检测方向,构造与所述检测方向反向的运动控制指令。
S480、向所述机器人的运动电机发送所述运动控制指令,控制所述机器人朝着与所述检测方向相反的方向移动设定距离,以对所述运动物体进行躲避。
其中,在图4b是本发明实施例四提供的一种机器人躲避运动物体的示意图。如图4b所示,所述单目照相机的检测方向为沿y轴正方向,通过对该检测方向上的运动物体A在[t-1,t]的预测时间段内的运动轨迹进行拟合,确定该运动轨迹线段与安全范围线段[-x1,x1]具有交点,进而可以构造沿y轴负方向的运动控制指令,并将该运动控制指令发送至所述机器人的运动电机,控制该机器人沿y轴负方向移动。
可选的,可以控制所述机器人沿直线进行躲避,进一步的,为了增加机器人躲避的趣味性,还可以控制所述机器人沿设定曲线进行躲避,本实施例对此并不进行限制。
本发明实施例的技术方案给出了一种具体的根据所述运动状态控制所述机器人对所述运动物体进行躲避的策略,只有当对运动物体预测的运动轨迹与该运动物体的安全范围线段相交时,才将运动物体认定为需要躲避的运动物体,通过上述设置,可以仅对有碰撞危险的运动物体进行一定的躲避,以减少不必要的躲避操作,以进一步提高本方案的实用性。
实施例五
在图5中示出了本发明实施例五提供的一种机器人躲避控制装置的结构图。如图5所示,所述装置包括:运动物体识别模块51、位置坐标计算模块52、运动状态预测模块53以及运动状态预测模块54。
运动物体识别模块51,用于通过单目照相机获取检测方向上的至少两幅物体图像,并在所述物体图像中识别至少一个运动物体。
位置坐标计算模块52,用于根据所述运动物体在所述物体图像中的像素坐标,计算所述运动物体在地理空间中的位置坐标。
运动状态预测模块53,用于根据所述位置坐标对应的实时变化情况,预测所述运动物体对应的运动状态。
控制躲避模块54,用于根据所述运动状态,控制所述机器人对所述运动物体进行躲避。
本发明实施例通过在单目照相机获取的多张物体图像中识别运动物体,并根据运动物体在物体图像中的像素坐标,计算运动物体在地理空间中的位置坐标,根据该位置坐标的实时变化情况,对运动物体的运动状态进行预测,并最终根据运动状态预测结果控制所述机器人对所述运动物体进行躲避的技术方案,基于现有技术中没有针对静止机器人躲避运动障碍物提出行之有效的解决方法的问题,提出了有效的解决方案,优化了现有的机器人躲避技术,提高机器人躲避技术方案的通用性,实现成本低廉,躲避效果好。
在上述各实施例的基础上,所述运动物体识别模块,具体可以用于:
从所述至少两幅物体图像中识别运动前景对象;
通过二值化处理,将所述运动前景对象标记为白色;
在所述物体图像中,分别将相邻白色像素点构成的区域拟合为运动物体。
在上述各实施例的基础上,所述位置坐标计算模块,具体可以用于:
将所述运动物体在地理空间中高度值为0的位置坐标,与所述运动物体在所述物体图像中距离地平面最近的像素坐标相关联,计算所述运动物体在地理空间中的位置坐标。
在上述各实施例的基础上,所述位置坐标计算模块进一步可以包括:
测量坐标系建立单元,用于根据所述单目照相机在地理空间中的位置,建立三维测量坐标系;其中,将所述单目照相机的几何中点在水平面上的投影点作为坐标原点;
运动物体坐标设置单元,用于令所述运动物体在所述三维测量坐标系中的坐标为(x,y,0);
目标像素坐标获取单元,用于获取所述运动物体在所述物体图像中距离地平面最近的目标像素坐标(px,py);
运动物体坐标计算单元,用于根据所述单目相机成像过程中,像素坐标与位置坐标之间的映射关系,以及所述目标像素坐标(px,py),计算x、y的取值。
在上述各实施例的基础上,所述测量坐标系建立单元,具体可以用于:
确定竖直方向上经过所述单目照相机的几何中心的目标直线,并将所述目标直线与地平面的交点作为坐标原点;
以竖直向上方向为z轴,相机朝向方向为y轴,与相机朝向垂直的水平方向为x轴,建立所述三维测量坐标系;
其中,所述单目照相机在所述三维测量坐标系中的坐标为(0,0,Hc),所述Hc为所述单目照相机距离地面的高度。
在上述各实施例的基础上,所述运动物体坐标计算单元,具体可以用于:
根据下述公式,计算x、y的取值:
其中,xc、yc以及zc为所述目标像素坐标(px,py)在所述单目照相机的相机坐标系中的坐标;
R为相机的旋转矩阵,由所述单目照相机的相机姿态确定;T为相机的平移矩阵,由所述单目照相机在所述三维测量坐标系中的坐标确定;fx、fy为相机的内部参数,通过对所述单目照相机进行预先标定获取;
所述单目照相机的相机姿态表示为(yawc,pithc,0),yawc为单目照相机围绕Y轴旋转的角度;pithc为单目照相机围绕X轴旋转的角度。
在上述各实施例的基础上,所述运动状态预测模块,具体可以用于:
预测所述运动物体对应的运动速度以及运动方向;
所述控制躲避模块,具体可以用于:
在所述三维测量坐标系的x轴上选取设定长度的线段作为安全范围线段;
选取设定的预测时间段,并根据所述预测时间段,所述运动物体的运动速度以及运动方向,拟合所述运动物体的运动轨迹;
如果所述运动轨迹与所述安全范围线段之间具有交点,则控制所述机器人对所述运动物体进行躲避。
在上述各实施例的基础上,还可以包括:运动物体过滤模块,用于:
在所述根据所述位置坐标对应的实时变化情况,预测所述运动物体对应的运动状态之前,分别根据至少两个运动物体在所述三维测量坐标系中的位置坐标,分别计算各所述运动物体与所述单目照相机之间的距离;
将距离所述单目照相机最近的运动物体作为目标物体,并过滤掉除去所述目标物体之外的运动物体。
在上述各实施例的基础上,所述控制躲避模块,进一步可以具体用于:
根据所述单目照相机的所述检测方向,构造与所述检测方向反向的运动控制指令;
向所述机器人的运动电机发送所述运动控制指令,控制所述机器人朝着与所述检测方向相反的方向移动设定距离,以对所述运动物体进行躲避。
上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。