机器人定位方法、装置、系统和计算机可读存储介质

文档序号:154503 发布日期:2021-10-26 浏览:24次 >En<

阅读说明:本技术 机器人定位方法、装置、系统和计算机可读存储介质 (Robot positioning method, device, system and computer readable storage medium ) 是由 曹正江 于 2020-04-23 设计创作,主要内容包括:本发明公开了一种机器人定位方法、装置、系统和计算机可读存储介质,涉及机器人技术领域。机器人定位方法包括:从部署在机器人底部的单目摄像机在两个时刻分别向下拍摄的图像中提取相同的特征点;根据单目摄像机距离行驶面的高度、单目摄像机的焦距以及提取的特征点在每帧图像中的位置,计算相同的特征点在每帧图像中的深度;根据相同的特征点在每帧图像中的深度,分别确定在两个时刻机器人相对于特征点对应的真实对象的位置;根据在两个时刻机器人相对于特征点对应的真实对象的位置,对机器人进行定位。从而,通过部署一个单目摄像机即可实现机器人定位方案,降低了部署成本和计算负担。(The invention discloses a robot positioning method, a device and a system and a computer readable storage medium, and relates to the technical field of robots. The robot positioning method comprises the following steps: extracting the same characteristic points from images respectively shot downwards at two moments by a monocular camera arranged at the bottom of the robot; calculating the depth of the same characteristic point in each frame of image according to the height of the monocular camera from the driving surface, the focal length of the monocular camera and the position of the extracted characteristic point in each frame of image; respectively determining the positions of the robot relative to the real objects corresponding to the feature points at two moments according to the depth of the same feature points in each frame of image; and positioning the robot according to the positions of the robot relative to the real objects corresponding to the feature points at two moments. Therefore, the robot positioning scheme can be realized by deploying one monocular camera, and the deployment cost and the calculation burden are reduced.)

机器人定位方法、装置、系统和计算机可读存储介质

技术领域

本发明涉及机器人技术领域,特别涉及一种机器人定位方法、装置、系统和计算机可读存储介质。

背景技术

视觉里程计可以根据图像帧之间的特征匹配关系估计相机的运动,为移动机器人提供六自由度(3自由度位置和3自由度姿态)定位信息。在相关技术中,通用的视觉里程计需要双摄像头,或者通过单摄像头和惯性测量单元(Inertial measurement unit,简称:IMU)融合的传感器方案实现。

发明内容

发明人经过分析后发现,相关技术均需要多个传感器,硬件成本较高,同时多传感器的处理也增加了运算负担。

本发明实施例所要解决的一个技术问题是:如何降低机器人定位的成本、提高计算效率。

根据本发明一些实施例的第一个方面,提供一种机器人定位方法,包括:从部署在机器人底部的单目摄像机在两个时刻分别向下拍摄的图像中提取相同的特征点;根据单目摄像机距离行驶面的高度、单目摄像机的焦距以及提取的特征点在每帧图像中的位置,计算相同的特征点在每帧图像中的深度;根据相同的特征点在每帧图像中的深度,分别确定在两个时刻机器人相对于特征点对应的真实对象的位置;根据在两个时刻机器人相对于特征点对应的真实对象的位置,对机器人进行定位。

在一些实施例中,根据单目摄像机距离行驶面的高度、单目摄像机的焦距以及提取的特征点在每帧图像中的位置,计算相同的特征点在每帧图像中的深度包括:将单目摄相机的光心、单目摄相机拍摄的图像中的特征点、特征点对应的真实对象映射到同一个坐标系中;在坐标系中,根据图像中的特征点与图像的中心点之间的距离、以及单目摄像机的焦距,确定图像中的特征点与光心的连线、和图像的中心点与光心的连线之间的夹角的信息;根据夹角以及单目摄像机距离行驶面的高度,确定特征点对应的真实对象与光心的距离,作为特征点的深度。

在一些实施例中,两个时刻包括已知位置的时刻和未知位置的时刻;根据在两个时刻机器人相对于特征点对应的真实对象的位置,对机器人进行定位包括:根据在已知位置的时刻和未知位置的时刻机器人相对于特征点对应的真实对象的位置,确定机器人在未知位置的时刻相对于已知位置的时刻的位置变化;根据位置变化、以及机器人在已知位置的时刻的位置,确定机器人在未知位置的时刻的位置。

在一些实施例中,机器人定位方法还包括:根据相同的特征点在每帧图像中的深度,确定在两个时刻机器人相对于特征点对应的真实对象的姿态;根据在两个时刻机器人相对于特征点对应的真实对象的姿态,确定机器人的姿态。

在一些实施例中,根据相同的特征点在每帧图像中的深度,确定在两个时刻机器人相对于特征点对应的真实对象的姿态包括:根据相同的特征点在每帧图像中的深度,确定特征点对应的真实对象在每个时刻的世界坐标系中的坐标;根据特征点对应的真实对象在每个世界坐标系中的坐标、以及特征点在相应图像中的坐标,利用N点透视PnP算法,确定每个时刻中机器人在相应的世界坐标系中的姿态。

在一些实施例中,根据在两个时刻机器人相对于特征点对应的真实对象的姿态,确定机器人的姿态包括:基于特征点对应的真实对象在两个时刻的世界坐标系中的坐标,确定两个时刻的世界坐标系之间的坐标变换关系;根据坐标变换关系以及每个时刻中机器人在相应的世界坐标系中的姿态,确定机器人在两个时刻间的姿态变化;根据姿态变化确定机器人的姿态。

在一些实施例中,从每帧中提取的特征点的数量为3个。

在一些实施例中,两个时刻包括第一时刻和第二时刻;从部署在机器人底部的单目摄像机在两个时刻分别拍摄的图像中提取相同的特征点包括:从第一时刻拍摄的图像中提取特征点;根据图像的光流信息,在第二时刻拍摄的图像中对提取的特征点的同一特征点进行跟踪;提取第二时刻拍摄的图像中跟踪到的特征点。

在一些实施例中,特征点为加速分割检测特征Fast角点;和/或,光流信息是基于稀疏光流算法确定的。

在一些实施例中,机器人为室内移动机器人、或者自动引导运输车。

根据本发明一些实施例的第二个方面,提供一种机器人定位装置,包括:特征点提取模块,被配置为从部署在机器人底部的单目摄像机在两个时刻分别向下拍摄的图像中提取相同的特征点;深度计算模块,被配置为根据单目摄像机距离行驶面的高度、单目摄像机的焦距以及提取的特征点在每帧图像中的位置,计算相同的特征点在每帧图像中的深度;相对位置确定模块,被配置为根据相同的特征点在每帧图像中的深度,分别确定在两个时刻机器人相对于特征点对应的真实对象的位置;定位模块,被配置为根据在两个时刻机器人相对于特征点对应的真实对象的位置,对机器人进行定位。

根据本发明一些实施例的第三个方面,提供一种机器人定位装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行前述任意一种机器人定位方法。

根据本发明一些实施例的第四个方面,提供一种机器人定位系统包括:前述任意一种机器人定位装置;以及单目摄像头,部署在机器人底部、并朝下方拍摄。

根据本发明一些实施例的第五个方面,提供一种非瞬时性计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意一种机器人定位方法。

上述发明中的一些实施例具有如下优点或有益效果:通过将摄像机部署在机器人底部,可以利用摄像机距离被拍摄对象所在平面的高度相对固定的特点,计算摄像机的位置、以便进行准确的机器人定位。从而,通过部署一个单目摄像机即可实现机器人定位方案,降低了部署成本和计算负担。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1示出了根据本发明一些实施例的机器人定位方法的流程示意图。

图2示例性地示出了单目摄像机的部署示意图。

图3示例性地示出了光心、图像中的特征点、特征点对应的真实对象之间的位置关系。

图4示出了根据本发明一些实施例的机器人定位定姿方法的流程示意图。

图5示出了根据本发明一些实施例的机器人定位装置的结构示意图。

图6示出了根据本发明一些实施例的机器人定位系统的结构示意图。

图7示出了根据本发明另一些实施例的机器人定位装置的结构示意图。

图8示出了根据本发明又一些实施例的机器人定位装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。

在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

图1示出了根据本发明一些实施例的机器人定位方法的流程示意图。如图1所示,该实施例的机器人定位方法包括步骤S102~S108。

在步骤S102中,从部署在机器人底部的单目摄像机在两个时刻分别向下拍摄的图像中提取相同的特征点。

图2示例性地示出了单目摄像机的部署示意图。在图2中,单目摄像机21部署在机器人22底盘的底部。在机器人行驶的过程中,由于底盘相距行驶面的高度是固定的,因此单目摄像机21及其光心Oc相对于行驶面的高度h也是固定的。从而可以利用该已知的高度进行计算。并且,由于摄像头位于机器人底部,相比于将摄像头部署在其他位置,这里的光线更加稳定。因此,拍摄的不同帧的图像亮度比较接近,可以更准确地进行不同图像中的相同特征点。

在一些实施例中,单目摄像机的镜头朝向行驶面进行拍摄,行驶面是指承载机器人行驶的面,例如地面、操作平台、货架等等。如图2所示,单目摄像机21朝向地面拍摄,拍摄的对象包括地面上的某点Pm。从而,拍摄的视野内光线可以更恒定,并且被拍摄的对象与机器人的垂直距离也更恒定。

在一些实施例中,机器人为室内移动机器人、或者自动引导运输车(AGV)。此类机器人一般在平面运动,因此部署在这类机器人底部的单目摄像机相对于拍摄到的对象的距离比较固定,可以实现更准确的计算。

在提取特征点时,例如可以利用光流信息进行跟踪,以便获得不同图像中相同的特征点。在一些实施例中,设拍摄的两个时刻为第一时刻和第二时刻。从第一时刻拍摄的图像中提取特征点;根据图像的光流信息,在第二时刻拍摄的图像中对提取的特征点的同一特征点进行跟踪;提取第二时刻拍摄的图像中跟踪到的特征点。从而,可以利用光流信息准确地识别不同图像中的相同特征点。

根据需要,每张图像提取的特征点的数量可以为一个或多个,但图像间提取的特征点是相同的。例如,第一时刻拍摄的图像中提取了特征点P1和P2,则从第二时刻拍摄的图像中也提取特征点P1和P2。

在一些实施例中,特征点为FAST(Features from Accelerated Segment Test,加速分割检测特征)角点。

在一些实施例中,光流信息是基于稀疏光流(LK)算法确定的。

在步骤S104中,根据单目摄像机距离行驶面的高度、单目摄像机的焦距以及提取的特征点在每帧图像中的位置,计算相同的特征点在每帧图像中的深度。特征点的深度是指单目摄像机的光心与特征点对应的真实对象之间的距离。

图像中的特征点可以视为特征点对应的真实对象在二维平面的投影,并且该二维平面与单目摄像机的光心的距离为焦距。

在一些实施例中,对于每个图像中的每个特征点,将单目摄相机的光心、单目摄相机拍摄的图像中的特征点、特征点对应的真实对象映射到同一个坐标系中;在坐标系中,根据图像中的特征点与图像的中心点之间的距离、以及单目摄像机的焦距,确定图像中的特征点与光心的连线、和图像的中心点与光心的连线之间的夹角的信息;根据夹角的信息以及单目摄像机距离行驶面的高度,确定特征点对应的真实对象与光心的距离,作为特征点的深度。

图3示例性地示出了光心Oc、图像中的特征点P、特征点P对应的真实对象Pm之间的位置关系,Pm位于行驶面上。设Oc与图像中心点O之间的连线位于z轴,z轴与行驶面的交点为Om。由于OcO为已知的焦距、OcOm为已知的单目摄像机的光心距离行驶面的高度、PO可以通过测量图像获得,并且POc与OOc之间的夹角、与PmOc与OmOc之间的夹角是同一个夹角,因此可以通过上述已知信息解算PmOc的长度、即特征点的深度。

在一些实施例中,设P的坐标为(um,vm),O的坐标为(u0,v0),POc与OOc之间的夹角为θ,焦距为f,单目摄像机的光心距离行驶面的高度为h。可以利用公式(1)和(2)计算特征点的深度。

由于单目摄像机位于机器人的底部,与行驶面的相对高度较为固定,因此可以利用上述公式准确地确定特征点的深度。

在步骤S106中,根据相同的特征点在每帧图像中的深度,分别确定在两个时刻机器人相对于特征点对应的真实对象的位置。

在步骤S108中,根据在两个时刻机器人相对于特征点对应的真实对象的位置,对机器人进行定位。

在一些实施例中,两个时刻包括已知位置的时刻和未知位置的时刻。根据在已知位置的时刻和未知位置的时刻机器人相对于特征点对应的真实对象的位置,确定机器人在未知位置的时刻相对于已知位置的时刻的位置变化;根据位置变化、以及机器人在已知位置的时刻的位置,确定机器人在未知位置的时刻的位置。

通过将摄像机部署在机器人底部,可以利用摄像机距离被拍摄对象所在平面的高度相对固定的特点,计算摄像机的位置、以便进行准确的机器人定位。从而,通过部署一个单目摄像机即可实现机器人定位方案,降低了部署成本和计算负担。

在一些实施例中,还可以通过单目摄像机拍摄的图像,实现对机器人的定姿。下面参考图4描述机器人定位定姿方法的实施例。

图4示出了根据本发明一些实施例的机器人定位定姿方法的流程示意图。如图4所示,该实施例的机器人定位定姿方法包括步骤S402~S408。

在步骤S402中,从部署在机器人底部的单目摄像机在两个时刻分别向下拍摄的图像中提取相同的特征点。

在步骤S404中,根据单目摄像机距离行驶面的高度、单目摄像机的焦距以及提取的特征点在每帧图像中的位置,计算相同的特征点在每帧图像中的深度。

在步骤S406中,根据相同的特征点在每帧图像中的深度,分别确定在两个时刻机器人相对于特征点对应的真实对象的位置和姿态。

在一些实施例中,根据相同的特征点在每帧图像中的深度,确定特征点对应的真实对象在每个时刻的世界坐标系中的坐标;根据特征点对应的真实对象在每个世界坐标系中的坐标、以及特征点在相应图像中的坐标,利用N点透视PnP算法,确定每个时刻中机器人在相应的世界坐标系中的姿态。

在一些实施例中,从每帧中提取的特征点的数量为3个,从而可以使用P3P算法求解。P3P算法能够得到的解的数量有限,因此能够更加快速、准确地求解。图5示例性地示出了使用P3P算法求解示意图。P3P算法需要3对3D-2D的匹配数据,输出是相机的位姿。3D点为地面上跟踪到的特征点,记为pA、pB、pC,该3D点在图像中的投影为pa、pb、pc,根据匹配关系,即可求得单目摄像机的位姿。

在步骤S408中,根据在两个时刻机器人相对于特征点对应的真实对象的位置,确定机器人的位置和姿态。

在一些实施例中,基于特征点对应的真实对象在两个时刻的世界坐标系中的坐标,确定两个时刻的世界坐标系之间的坐标变换关系;根据坐标变换关系以及每个时刻中机器人在相应的世界坐标系中的姿态,确定机器人在两个时刻间的姿态变化;根据姿态变化确定机器人的姿态。

通过上述实施例的方法,能够对机器人进行定位的同时确定机器人的姿态,从而能够更精确地确定机器人的状态。

下面参考图5描述本发明机器人定位装置的实施例。

图5示出了根据本发明一些实施例的机器人定位装置的结构示意图。如图5所示,该实施例的机器人定位装置500包括:特征点提取模块5100,被配置为从部署在机器人底部的单目摄像机在两个时刻分别向下拍摄的图像中提取相同的特征点;深度计算模块5200,被配置为根据单目摄像机距离行驶面的高度、单目摄像机的焦距以及提取的特征点在每帧图像中的位置,计算相同的特征点在每帧图像中的深度;相对位置确定模块5300,被配置为根据相同的特征点在每帧图像中的深度,分别确定在两个时刻机器人相对于特征点对应的真实对象的位置;定位模块5400,被配置为根据在两个时刻机器人相对于特征点对应的真实对象的位置,对机器人进行定位。

在一些实施例中,深度计算模块5200进一步被配置为将单目摄相机的光心、单目摄相机拍摄的图像中的特征点、特征点对应的真实对象映射到同一个坐标系中;在坐标系中,根据图像中的特征点与图像的中心点之间的距离、以及单目摄像机的焦距,确定图像中的特征点与光心的连线、和图像的中心点与光心的连线之间的夹角的信息;根据夹角以及单目摄像机距离行驶面的高度,确定特征点对应的真实对象与光心的距离,作为特征点的深度。

在一些实施例中,两个时刻包括已知位置的时刻和未知位置的时刻;定位模块5400进一步被配置为根据在已知位置的时刻和未知位置的时刻机器人相对于特征点对应的真实对象的位置,确定机器人在未知位置的时刻相对于已知位置的时刻的位置变化;根据位置变化、以及机器人在已知位置的时刻的位置,确定机器人在未知位置的时刻的位置。

在一些实施例中,机器人定位装置500还包括:姿态确定模块550,被配置为根据相同的特征点在每帧图像中的深度,确定在两个时刻机器人相对于特征点对应的真实对象的姿态;根据在两个时刻机器人相对于特征点对应的真实对象的姿态,确定机器人的姿态。

在一些实施例中,姿态确定模块550进一步被配置为根据相同的特征点在每帧图像中的深度,确定特征点对应的真实对象在每个时刻的世界坐标系中的坐标;根据特征点对应的真实对象在每个世界坐标系中的坐标、以及特征点在相应图像中的坐标,利用N点透视PnP算法,确定每个时刻中机器人在相应的世界坐标系中的姿态。

在一些实施例中,姿态确定模块550进一步被配置为基于特征点对应的真实对象在两个时刻的世界坐标系中的坐标,确定两个时刻的世界坐标系之间的坐标变换关系;根据坐标变换关系以及每个时刻中机器人在相应的世界坐标系中的姿态,确定机器人在两个时刻间的姿态变化;根据姿态变化确定机器人的姿态。

在一些实施例中,从每帧中提取的特征点的数量为3个。

在一些实施例中,两个时刻包括第一时刻和第二时刻;特征点提取模块5100进一步被配置为从第一时刻拍摄的图像中提取特征点;根据图像的光流信息,在第二时刻拍摄的图像中对提取的特征点的同一特征点进行跟踪;提取第二时刻拍摄的图像中跟踪到的特征点。

在一些实施例中,特征点为加速分割检测特征Fast角点;和/或,光流信息是基于稀疏光流算法确定的。

在一些实施例中,机器人为室内移动机器人、或者自动引导运输车。

下面参考图6描述本发明一些实施例的机器人定位系统的实施例。

图6示出了根据本发明一些实施例的机器人定位系统的结构示意图。如图6所示,该实施例的机器人定位系统60包括机器人定位装置610和单目摄像头620。机器人定位装置610的具体实施方式可以参考其他实施例,这里不再赘述。单目摄像头620,部署在机器人底部、并朝下方拍摄。

图7示出了根据本发明另一些实施例的机器人定位装置的结构示意图。如图7所示,该实施例的机器人定位装置70包括:存储器710以及耦接至该存储器710的处理器720,处理器720被配置为基于存储在存储器710中的指令,执行前述任意一个实施例中的机器人定位方法。

其中,存储器710例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。

图8示出了根据本发明又一些实施例的机器人定位装置的结构示意图。如图8所示,该实施例的机器人定位装置80包括:存储器810以及处理器820,还可以包括输入输出接口830、网络接口840、存储接口850等。这些接口830,840,850以及存储器810和处理器820之间例如可以通过总线860连接。其中,输入输出接口830为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口840为各种联网设备提供连接接口。存储接口850为SD卡、U盘等外置存储设备提供连接接口。

本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种机器人定位方法。

本领域内的技术人员应当明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于改进SURF算法的电子元器件定位方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!