一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于棋盘格标签的机器人室内定位方法及装置与流程

2022-07-10 05:54:27 来源:中国专利 TAG:


1.本技术涉及定位技术领域,尤其涉及一种基于棋盘格标签的机器人室内定位方法及装置。


背景技术:

2.市场中存在的机器人可以分为玩具机器人、教学机器人、服务机器人、以及工业机器人和机械手等。
3.在一些具体应用场景中,需要机器人在室内完全的自动运行,如仓储自动导引车、自主铲车等具有自主运输功能的机器人。自动实现室内定位是这类型的机器人实现在室内自动行驶的关键之一。


技术实现要素:

4.本技术提供了一种基于棋盘格标签的机器人室内定位方法及装置,通过识别机器人上的摄像机拍摄的棋盘格标签实现机器人的室内定位。
5.第一方面,本技术提供了一种机器人的室内定位方法。所述机器人上安装有摄像机,所述方法包括:
6.获取第一图像;所述第一图像包括所述机器人在室内移动时,所述摄像机拍摄的图像;所述室内设置有多个棋盘格标签,每个棋盘格标签中的至少一个方格内设置有二维码,一个棋盘格标签中设置的二维码指示所述一个棋盘格标签在所述室内的坐标;
7.在确定所述第一图像中包括第一棋盘格标签的情况下,确定所述第一棋盘格标签中各个角点的像素坐标,所述第一棋盘格标签为所述多个棋盘格标签中的一个;
8.根据所述第一棋盘格标签中各个角点的像素坐标、所述摄像机的内参数矩阵和所述第一棋盘格标签在所述室内的坐标,确定所述机器人在所述室内的坐标。
9.上述方案中,机器人在移动中对摄像机拍摄到的标签进行识别,从而根据该标签的坐标确定机器人在室内的坐标。与通过单个二维码进行定位相比,棋盘格标签中的角点增多,可以避免二维码由于污损不能识别其读数的问题,提高定位的准确度。
10.在一种可能的实施方式中,所述确定所述第一图像中包括第一棋盘格标签包括:
11.对所述第一图像进行二维码识别,获得第一二维码读数;
12.当所述第一二维码读数为所述多个棋盘格标签对应的二维码读数中的任意一个时,确定所述第一图像中包括所述第一棋盘格标签。
13.在一种可能的实施方式中,所述根据所述第一棋盘格标签中各个角点的像素坐标、所述摄像机的内参数矩阵和所述第一棋盘格标签在所述室内的坐标,确定所述机器人在所述室内的坐标包括:
14.根据所述第一棋盘格标签中各个角点的像素坐标、所述摄像机的内参数矩阵和所述第一棋盘格标签在所述室内的坐标,确定所述摄像机相对于所述第一棋盘格标签的位置信息;
15.根据所述摄像机相对于所述第一棋盘格标签的位置信息、所述机器人相对于所述摄像机的位置信息、和所述第一棋盘格标签在所述室内的坐标,确定所述机器人在所述空内的坐标。
16.在一种可能的实施方式中,所述内参数矩阵利用所述多个棋盘格标签对应的图像样本进行参数标定确定,所述图像样本利用所述摄像机拍摄获得。
17.在一种可能的实施方式中,所述位置信息包括:所述摄像机相对于所述第一棋盘格标签的方位角、和所述摄像机与所述第一棋盘格标签之间的距离。
18.第二方面,本技术实施例提供一种机器人的室内定位装置。所述机器人上安装有摄像机,所述装置包括:
19.获取模块,用于获取第一图像;所述第一图像包括所述机器人在室内移动时,所述摄像机拍摄的图像;所述室内设置有多个棋盘格标签,每个棋盘格标签中的至少一个方格内设置有二维码,一个棋盘格标签中设置的二维码指示所述一个棋盘格标签在所述室内的坐标;
20.定位模块,用于在确定所述第一图像中包括第一棋盘格标签的情况下,确定所述第一棋盘格标签中各个角点的像素坐标,所述第一棋盘格标签为所述多个棋盘格标签中的一个;
21.定位模块,还用于根据所述第一棋盘格标签中各个角点的像素坐标、所述摄像机的内参数矩阵和所述第一棋盘格标签在所述室内的坐标,确定所述机器人在所述室内的坐标。
22.在一种可能的实施方式中,所述定位模块具体用于:
23.对所述第一图像进行二维码识别,获得第一二维码读数;
24.当所述第一二维码读数为所述多个棋盘格标签对应的二维码读数中的任意一个时,确定所述第一图像中包括所述第一棋盘格标签。
25.在一种可能的实施方式中,所述定位模块还具体用于:
26.根据所述第一棋盘格标签中各个角点的像素坐标、所述摄像机的内参数矩阵和所述第一棋盘格标签在所述室内的坐标,确定所述摄像机相对于所述第一棋盘格标签的位置信息;
27.根据所述摄像机相对于所述第一棋盘格标签的位置信息、所述机器人相对于所述摄像机的位置信息、和所述第一棋盘格标签在所述室内的坐标,确定所述机器人在所述空内的坐标。
28.在一种可能的实施方式中,所述内参数矩阵利用所述多个棋盘格标签对应的图像样本进行参数标定确定,所述图像样本利用所述摄像机拍摄获得。
29.在一种可能的实施方式中,所述位置信息包括:所述摄像机相对于所述第一棋盘格标签的方位角、和所述摄像机与所述第一棋盘格标签之间的距离。
30.第三方面,本技术还提供一种机器人。机器人包括:处理器和存储器,所述处理器用于执行存储于所述存储器内的计算机指令,以实现第一方面及其可选实施方式中所述的方法。
31.第四方面,本技术还提供一种计算机可读存储介质。包括指令,当所述指令在机器人上运行时,使得所述机器人执行第一方面及其可选实施方式中所述的方法。
32.第五方面,本技术还提供一种计算机程序产品。包括程序代码,当机器人运行所述计算机程序产品时,使得所述机器人执行第一方面及其可选实施方式中所述的方法。
33.上述提供的任一种装置或计算机存储介质或计算机程序产品,均用于执行上文所提供的方法,因此,其所能达到的有益效果可参考上文提供的对应方法中的对应方案的有益效果,此处不再赘述。
附图说明
34.图1是本技术实施例提供的一种室内布置棋盘格标签的示意图
35.图2a是本技术实施例提供的一种棋盘格标签的示意图;
36.图2b是本技术实施例提供的另一种棋盘格标签的示意图;
37.图3是本技术实施例提供的一种基于棋盘格标签的机器人室内定位方法流程图;
38.图4是本技术实施例提供的一种机器人上的摄像机拍摄棋盘格标签的示意图;
39.图5是本技术实施例提供的一种机器人上的摄像机拍摄到的图像示意图;
40.图6是本技术实施例提供的一种机器人在拍摄时与棋盘格标签的位置关系示意图;
41.图7是本技术实施例提供的一种摄像机镜头畸变的示意图;
42.图8是本技术实施例提供的一种摄像机参数标定的方法流程图;
43.图9是本技术实施例提供的一种基于棋盘格标签的机器人室内定位装置的结构示意图;
44.图10是本技术实施例提供的一种机器人的结构示意图。
具体实施方式
45.为了使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本技术实施例中的技术方案进行描述。
46.在本技术实施例的描述中,“示例性的”、“例如”或者“举例来说”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”、“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
47.在本技术实施例的描述中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,单独存在b,同时存在a和b这三种情况。另外,除非另有说明,术语“多个”的含义是指两个或两个以上。例如,多个系统是指两个或两个以上的系统,多个屏幕终端是指两个或两个以上的屏幕终端。
48.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
49.室内定位是机器人实现室内自动运行的关键技术之一。理论上,室内定位可以通过超宽带(ultra wide band,uwb)、蓝牙、wifi、lifi等无线发射和接收装置来实现。但这类定位方案需要改造室内的环境,给发射和接收装置供电。环境改造的成本高,周期长,而且
后期需要登高检修,建设和维护成本高。
50.在一个示例中,可以将二维码贴于地面,机器人经过一个二维码时,读取该二维码的信息,根据该二维码的信息实现定位。对于人机混杂的环境,二维码可以贴于墙面上,以免被踩踏模糊而无法识别。但是,由于二维码中只有三个定位点,当一个定位点被污损时,无法获得二维码的读数,导致机器人无法定位。
51.为此,本技术实施例提供一种机器人的室内定位方法。具体地,如图1所示,在机器人所处的室内预先部署多个棋盘格标签,用于机器人室内定位。其中,多个棋盘格标签可以粘贴于室内机器人行驶的道路两侧的墙壁上或者其他垂直于地面的位置,避免标签被污损或破损。
52.每个棋盘格标签中均设置有至少一个二维码,二维码位于棋盘格标签的一个格子中。例如,棋盘格为3
×
3的黑白棋盘格时,如图2a所示,可以在左上角和右下角的格子中分别设置两个二维码。再例如,如图2b所示,还可以在最中间的格子中设置二维码。
53.在粘贴标签之后,建立地图坐标系,得到每个棋盘格标签在室内的坐标。接着,将每个棋盘格标签中设置的所有二维码对应的读数和该棋盘格标签在室内粘贴的位置(坐标)对应。使得机器人拍摄到一个棋盘格标签时,可以获得该棋盘格标签二维码的读数,得到棋盘格标签在所述室内的坐标。
54.其中,一个棋盘格标签中设置的二维码可以相同,也可以不相同。其中,二维码可以采用apriltag系统中使用的tag16h5码,并且二维码所编码的数字可以采用4位数,即可以得到9999个不同的二维码。当棋盘格标签中使用相同的二维码时,可以得到9999不同的棋盘格标签。
55.图3是本技术实施例提供的一种机器人的室内定位方法的流程图。如图3所示,该方法包括如下的步骤是s301-s303。
56.在步骤s301中,获取第一图像。
57.当机器人在室内移动时,如图4所示,机器人6上安装的摄像机7对周围环境进行拍摄,获得第一图像。计算设备8从摄像机中获取该第一图像。
58.在步骤s302中,在确定第一图像中包括第一棋盘格标签的情况下,确定第一棋盘格标签中各个角点的像素坐标,第一棋盘格标签为所述多个棋盘格标签中的一个。
59.棋盘格标签中的角点包括棋盘格中各个方格的交点。如图5所示,当棋盘格标签为3
×
3时,一个棋盘格标签中的16个角点可以看做是4条横向的直线和4条纵向的直线相交构成。图5中的标记1指的是棋盘格标签中的白色方格,标记2指的是棋盘格标签中的黑色方格,标记3指的是直线,标记4指的是棋盘格标签中的一个角点。
60.确定第一图像中包括第一棋盘格标签时,可以对第一图像进行二维码识别,获得二维码读数。当该二维码读数为室内粘贴的棋盘格标签对应的二维码读数中的一个时,可以确定摄像机拍摄到了多个棋盘格标签中的一个,该标签为第一棋盘格标签。
61.在确定摄像机拍摄到了第一棋盘格标签时,定位装置获得第一棋盘格标签中各个角点的像素坐标。其中,像素坐标通过计算机视觉标定中使用的像素坐标系获得。
62.在一个示例中,如果第一棋盘格标签的个别角点被污损,无法获得被污损角点的像素坐标,可以通过第一棋盘格标签中各个方块的边长、各个方块之间的间距、以及获得的其他角点的像素坐标建立直线方程,通过求解直线方程获得被污损的角点的像素坐标。
63.在步骤s303中,根据第一棋盘格标签中各个角点的像素坐标、摄像机的内参数矩阵和第一棋盘格标签在室内的坐标,确定机器人在室内的坐标。
64.在确定第一图像中包含第一棋盘格标签之后,可以确定第一棋盘格标签对应的二维码读数对应坐标,即该第一棋盘格标签在室内的坐标。
65.在确定机器人在室内的坐标时,可以先根据第一棋盘格标签中各个角点的像素坐标、摄像机的内参数矩阵和第一棋盘格标签在室内的坐标,使用张正友摄像机标定方法确定摄像机相对于所述第一棋盘格标签的位置信息。然后,根据摄像机相对于所述第一棋盘格标签的位置信息确定机器人在室内的坐标。
66.具体地,可以将第一棋盘格标签中各个角点的像素坐标、摄像机的内参数矩阵和第一棋盘格标签在室内的坐标代入预先建立如公式(1)所示的线性方程,求解该线性方程,获得摄像机相对于所述第一棋盘格标签的位置信息。其中,摄像机相对于所述第一棋盘格标签的位置信息包括摄像机相对于第一棋盘格标签的方位角、和摄像机与第一棋盘格标签之间的距离。
67.s[u v 1]
t = k[r
1 r
2 t] [x y 1] t
ꢀꢀꢀ
(1)
[0068]
公式(1)中,u和v分别表示角点的像素横、纵坐标;k表示摄像机的内参数矩阵;r1和r2表示摄像机相对于第一棋盘格标签的方位角,即摄像机的中心点与第一棋盘格标签的中心点之间的连线在水平方向的夹角和在垂直方向的夹角,其中,水平方向和垂直方向是相对于地面而言的;t表示摄像机相对于第一棋盘格标签的距离;x、y分别表示第一棋盘格标签在室内的横纵坐标;t表示矩阵转置,s为尺度系数。r1、r2、t可以参见图6所示的摄像机与第一棋盘格标签的位置关系示意图。
[0069]
其中,在确定摄像机相对于所述第一棋盘格标签的位置信息之后,将摄像机相对于所述第一棋盘格标签的位置信息、第一棋盘格标签在室内的三维坐标和机器人相对于所述摄像机的位置信息,代入公式(2)所示的线性方程,求解该线性方程,获得机器人在室内的坐标。
[0070]
[z
ty z
tx x
t y
t ]
t = [r
1 r
2 t
1 t2]
t
[0 0 x
locn y
locn
]
t
[b
1 b
2 a
1 a2]
t
ꢀꢀꢀ
(2)
[0071]
公式2中,z
ty
和z
tx
指示机器人的朝向,x
t
和y
t
表示机器人在室内的坐标,r
1t
和r
2t
表示摄像机相对于第一棋盘格标签的方位角(即摄像机的中心点与第一棋盘格标签的中心点之间的连线在水平方向的夹角和在垂直方向的夹角),t1和t2表示摄像机与第一棋盘格标签在水平方向的距离和在垂直方向的距离,x
locn
和y
locn
表示第一棋盘格标签在室内的坐标,b1和b2表示机器人相对于摄像机的方位角(即机器人的中心点与摄像机的中心点之间的连线在水平方向的夹角和在垂直方向的夹角),a1和a2表示机器人与摄像机的在水平方向的距离和在垂直方向的距离。其中,t1和t2可以根据r1、r2和摄像机相对于第一棋盘格标签的距离t,结合三角公式获得。摄像机相对于第一棋盘格标签的距离是指摄像机的中心与第一棋盘格标签的中心之间的距离。a1和a2可以根据b1、b2和机器人相对于摄像机的距离,结合三角公式获得。机器人相对于摄像机的距离是指机器人的中心点与摄像机的中心点之间的距离。
[0072]
其中,摄像机的内参数矩阵利用摄像机拍摄的多个棋盘格标签对应的图像样本进行参数标定确定,具体过程将在后文中结合图8具体介绍,此处不再赘述。摄像机的内参数矩阵为摄像机的物理参数,在正常使用过程中不变。
[0073]
上述实施例中,采用传统的摄像机标定技术获得的内参数矩阵和二维码读取技术实现室内定位。其中,使用棋盘格作为棋盘格标签,实现棋盘格标签和数字编码的融合,可以实现实现高效率定位和复杂动态环境之间的兼顾。使用棋盘格标签还可以解决只粘贴二维码进行定位时,在二维码的三个定位角点污损时无法获得二维码的读数,导致无法进行室内定位的问题。
[0074]
摄像机在制造过程中,由于制造工艺等原因,透镜位置和成像平面不能完全与理想模型对应,导致摄像机的成像存在畸变,如图7所示的最后两幅示意图,因此需要对摄像机进行参数标定。图7中所示的第一幅图是摄像机的理想成像图。
[0075]
基于上述的方法实施例,本技术还提供一种摄像机的参数标定方法。
[0076]
图8是本技术实施例提供的一种参数标定方法的流程图。如图8所示,该方法包括如下的步骤s801-步骤s803。
[0077]
在步骤s801中,使用摄像机拍摄目标标签,获得多个图像样本。其中,目标标签为前述图3所示方法实施例中的多个棋盘格标签中的一个。
[0078]
具体地,可以使用摄像机在不同角度、以及距离目标标签的不同距离处,对目标标签进行拍摄,获得多个图像样本。
[0079]
在步骤s802中,确定多个图像样本中目标标签的各个角点的图像坐标。
[0080]
具体地,可以采用计算机视觉中的角点特征提取方法、直线相交方法等处理多个图像样本,得到多个图像样本中目标标签的各个角点的图像坐标。
[0081]
在步骤s803中,根据多个图像样本中目标标签的各个角点的图像坐标、和所述目标标签在室内的坐标,使用张正友摄像机标定方法和l-m算法进行参数标定,获得摄像机的内参数矩阵。
[0082]
具体地,将多个图像样本中目标标签的各个角点的图像坐标、像素坐标和目标标签在室内的坐标代入公式(3)和公式(1)中,建立方程组,求解方程组,获得公式(1)中的内参数矩阵,完成参数标定。其中,每个目标标签中各个角点的图像坐标可以采用计算机视觉中的角点特征提取方法处理图像样本得到。
[0083][0084]
公式(3)中,x和y分别表示畸变补偿后的角点的图像横、纵坐标;k1和k2表示径向畸变参数;和表示角点畸变的图像横、纵坐标;r表示世界坐标中的3
×
3旋转矩阵,r中包括摄像机相对于目标标签的方向角,包括在水平方向上的方向角和在垂直方向上的方向角。
[0085]
基于上述的方法实施例,本技术实施还提供一种定位装置,该装置应用于机器人。
[0086]
图9是本技术实施例提供的一种定位装置的结构示意图。如图9所示,该定位装置900包括获取模块901和定位模块902。
[0087]
其中,获取模块901用于获取第一图像;所述第一图像包括所述机器人在室内移动时,所述摄像机拍摄的图像;所述室内设置有多个棋盘格标签,每个棋盘格标签中的至少一个方格内设置有二维码,一个棋盘格标签中设置的二维码指示所述一个棋盘格标签在所述室内的坐标。
[0088]
其中,定位模块902用于在确定所述第一图像中包括第一棋盘格标签的情况下,确
定所述第一棋盘格标签中各个角点的像素坐标,所述第一棋盘格标签为所述多个棋盘格标签中的一个。
[0089]
其中,定位模块902还用于根据所述第一棋盘格标签中各个角点的像素坐标、所述摄像机的内参数矩阵和所述第一棋盘格标签在所述室内的坐标,确定所述机器人在所述室内的坐标。
[0090]
上述定位装置900中各个模块的具体实现过程可以参见前述发明内容或方法实施例中的介绍,此处不再赘述。
[0091]
图10是本技术实施例提供一种机器人1000的硬件结构示意图。
[0092]
参见图10,该机器人1000包括处理器1001、存储器1002、通信接口1003和总线1004,处理器1001、存储器1002和通信接口1003通过总线1004彼此连接。处理器1001、存储器1002和通信接口1003也可以采用除了总线1004之外的其他连接方式连接。
[0093]
其中,存储器1002可以是各种类型的存储介质,例如随机存取存储器(random access memory,ram)、只读存储器(read-only memory,rom)、非易失性ram(non-volatile ram,nvram)、可编程rom(programmable rom,prom)、可擦除prom(erasable prom,eprom)、电可擦除prom(electrically erasable prom,eeprom)、闪存、光存储器、硬盘等。
[0094]
其中,处理器1001可以是通用处理器,通用处理器可以是通过读取并执行存储器(例如存储器1002)中存储的内容来执行特定步骤和/或操作的处理器。例如,通用处理器可以是中央处理器(central processing unit,cpu)。处理器1001可以包括至少一个电路,以执行图3所示实施例提供的方法的全部或部分步骤。
[0095]
其中,通信接口1003包括输入/输出(input/output,i/o)接口、物理接口和逻辑接口等用于实现机器人1000内部的器件互连的接口,以及用于实现机器人1000与其他设备(例如其他计算设备或用户设备)互连的接口。物理接口可以是以太网接口,光纤接口,atm接口等。
[0096]
其中,总线1004可以是任何类型的,用于实现处理器1001、存储器1002和通信接口1003互连的通信总线,例如系统总线。
[0097]
上述器件可以分别设置在彼此独立的芯片上,也可以至少部分的或者全部的设置在同一块芯片上。将各个器件独立设置在不同的芯片上,还是整合设置在一个或者多个芯片上,往往取决于产品设计的需要。本技术实施例对上述器件的具体实现形式不做限定。
[0098]
图10所示的机器人1000仅仅是示例性的,在实现过程中,机器人1000还可以包括其他组件,本文不再一一列举。
[0099]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者
是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如,固态硬盘(solid state disk,ssd))等。
[0100]
可以理解的是,在本技术的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本技术的实施例的范围。应理解,在本技术实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,不应对本技术实施例的实施过程构成任何限定。
[0101]
以上所述的具体实施方式,对本技术的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本技术的保护范围,凡在本技术的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献