机器人位姿的确定方法、装置及设备与流程

文档序号:31654754发布日期:2022-09-27 22:05阅读:250来源:国知局
机器人位姿的确定方法、装置及设备与流程

1.本技术涉及人工智能技术领域,尤其涉及一种机器人位姿的确定方法、装置及设备。


背景技术:

2.随着人工智能技术的发展,机器人逐渐被应用于多种场景中,给人们的生活带来极大便利。
3.在机器人移动过程中,需要对机器人的位姿进行定位。现有技术中,通常采用基于里程计的定位技术。具体的,可以在机器人中设置用于测量机器人的运动参数的传感器,以轮式机器人为例,可以在机器人的轮部安装光电编码器,光电编码器可以测量出轮子的运动参数(例如速度、角速度等)。这样,根据传感器的测量数据可以确定出机器人在一定时间段内的位姿增量。进而,在已知机器人t1时刻的初始位姿的情况下,可以根据机器人在t1时刻的初始位姿,以及传感器在t1至t2时刻测量得到的位姿增量,推算出机器人在t2时刻的位姿。类似的,可以根据机器人在t2时刻的位姿,以及传感器在t2至t3时刻测量得到位姿增量,推算出机器人在t3时刻的位姿。
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.第二确定模块,用于根据所述机器人的第二传感器的测量数据与参考信息的匹配结果,确定所述机器人的第二位姿;所述参考信息包括:所述机器人的多个参考位姿以及在每个所述参考位姿下通过所述第二传感器采集到的参考测量数据;
35.第三确定模块,用于根据所述第一位姿和所述第二位姿,确定所述机器人在所述当前时刻的位姿。
36.一种可能的实现方式中,所述第二确定模块具体用于:
37.分别获取所述第二传感器的测量数据与所述参考信息中的每个所述参考测量数据之间的相似度;
38.从所述参考信息中确定出目标参考测量数据,所述目标参考测量数据与所述第二传感器的测量数据之间的相似度最高;
39.将所述目标参考测量数据对应的所述参考位姿确定为所述第二位姿。
40.一种可能的实现方式中,所述第二传感器为相机,所述第二传感器的测量数据为所述相机在所述当前时刻采集到的场景图像,所述参考信息包括所述机器人的多个参考位姿以及在每个所述参考位姿下通过所述相机采集到的参考场景图像;
41.或者,
42.所述第二传感器为激光传感器,所述第二传感器的测量数据为所述激光传感器在所述当前时刻采集的点云数据,所述参考信息包括所述机器人的多个参考位姿以及在每个所述参考位姿下通过所述激光传感器采集到的参考点云数据。
43.一种可能的实现方式中,所述第三确定模块具体用于:
44.通过卡尔曼滤波器对所述第一位姿和所述第二位姿进行滤波处理,得到所述机器人在所述当前时刻的位姿。
45.一种可能的实现方式中,所述第三确定模块具体用于:
46.确定所述卡尔曼滤波器的卡尔曼增益,所述卡尔曼增益用于指示所述第一位姿的可信度和所述第二位姿的可信度;
47.根据所述卡尔曼增益和所述第二位姿对所述第一位姿进行修正,将修正结果确定为所述机器人在所述当前时刻的位姿。
48.一种可能的实现方式中,所述第三确定模块具体用于:
49.获取所述上一时刻的误差参数,所述上一时刻的误差参数用于指示所述机器人上一时刻的位姿的不确定性;
50.根据所述上一时刻的误差参数和所述机器人不同时刻之间的位姿转移关系,确定所述当前时刻的误差参数;
51.根据所述当前时刻的误差参数,确定所述卡尔曼增益。
52.一种可能的实现方式中,所述第一传感器为下述中的任意一种:激光传感器、相机、惯性传感器、编码器传感器;所述第一确定模块具体用于:
53.根据所述第一传感器的测量数据,确定所述机器人在所述上一时刻至所述当前时刻之间的运动参数;
54.根据所述运动参数,确定所述机器人相对于上一时刻的位姿增量。
55.一种可能的实现方式中,所述装置还包括:生成模块,所述生成模块用于:
56.在所述机器人移动过程中,获取所述机器人的参考位姿以及所述机器人在所述参考位姿时通过所述第二传感器采集到的参考测量数据;
57.根据各所述参考位姿,以及各所述参考位姿各自对应的所述参考测量数据,生成所述参考信息。
58.第三方面,本技术提供一种电子设备,包括:存储器和处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序实现第一方面任一项所述的方法。
59.第四方面,本技术提供一种计算机可读存储介质,包括:计算机程序,所述计算机程序被处理器执行时实现第一方面中任一项所述的方法。
60.第五方面,本技术提供一种计算机程序产品,包括:计算机程序,所述计算机程序在被处理器执行时实现第一方面任一项所述的方法。
61.本技术提供的机器人位姿的确定方法、装置及设备,该方法包括:根据机器人的第一传感器的测量数据,确定机器人当前时刻相对于上一时刻的位姿增量,并根据位姿增量和机器人在上一时刻的位姿,确定机器人的第一位姿;根据机器人的第二传感器的测量数据与参考信息的匹配结果,确定机器人的第二位姿;参考信息包括:机器人的多个参考位姿以及在每个参考位姿下通过第二传感器采集到的参考测量数据;根据第一位姿和第二位姿,确定机器人在当前时刻的位姿。上述过程中,由于第二位姿是采用参考信息匹配的方式确定的,使得第二位姿是与机器人的运动过程无关的全局位姿,即第二位姿是不存在累积误差的。这样,根据第一位姿和第二位姿确定出机器人的当前时刻的位姿,第二位姿能够起到抵消第一位姿中的累积误差的作用,因此,能够避免机器人位姿的误差越来越大的问题,提高机器人位姿的准确性。
附图说明
62.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本技术的实施例,并与说明书一起用于解释本技术的原理。
63.图1为本技术实施例可能适用的系统架构的示意图;
64.图2为本技术实施例提供的一种机器人位姿的确定方法的流程示意图;
65.图3为本技术实施例提供的另一种机器人位姿的确定方法的流程示意图;
66.图4为与图3所示实施例对应的机器人位姿确定过程的示意图;
67.图5为本技术实施例提供的一种机器人位姿的确定装置的结构示意图;
68.图6为本技术实施例提供的另一种机器人位姿的确定装置的结构示意图;
69.图7为本技术实施例提供的一种电子设备的结构示意图。
70.通过上述附图,已示出本技术明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本技术构思的范围,而是通过参考特定实施例为本领域技术人员说明本技术的概念。
具体实施方式
71.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。相反,它们仅是与如所附
权利要求书中所详述的、本技术的一些方面相一致的装置和方法的例子。
72.图1为本技术实施例可能适用的系统架构的示意图。如图1所示,该系统架构100可以包括移动机器人101、网络102和服务器103。其中,移动机器人101可以是下述类型中的任意一种:轮式机器人、履带式机器人、腿式机器人和复合式机器人等。网络102用以在移动机器人101和服务器103之间提供传输链路,网络102可以包括各种连接类型,例如有线、无线传输链路或者光纤电缆等等。移动机器人101通过网络102与服务器103交互,以接收指令或返回响应等。
73.服务器103可以是对移动机器人101的运行提供支持的服务器,服务器103可以向移动机器人101发送命令以对移动机器人101进行管理和调度。一些示例中,本实施例的移动机器人101可以用于货物搬运,可以根据服务器103发来的指令或货物信息进行装载、卸载和运输。另一些示例中,本实施例的移动机器人可以为提供扫地、娱乐等服务的机器人。
74.应该理解,图1中的移动机器人、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的移动机器人、网络和服务器。
75.在机器人移动过程中,需要对机器人的位姿进行定位。本实施例中,机器人的位姿是指用于描述机器人当前位置和姿态的信息。示例性的,机器人的位姿可以包括:机器人在世界坐标系下的横坐标、纵坐标和偏航角。
76.现有技术中,通常采用基于里程计的定位技术。具体的,可以在机器人中设置用于测量机器人的运动参数的传感器,以轮式机器人为例,可以在机器人的轮部安装光电编码器,光电编码器可以测量出轮子的运动参数(例如速度、角速度等)。这样,根据传感器的测量数据可以确定出机器人在一定时间段内的位姿增量。进而,在已知机器人t1时刻的初始位姿的情况下,可以根据机器人在t1时刻的初始位姿,以及传感器在t1至t2时刻测量得到的位姿增量,推算出机器人在t2时刻的位姿。类似的,可以根据机器人在t2时刻的位姿,以及传感器在t2至t3时刻测量得到位姿增量,推算出机器人在t3时刻的位姿。
77.然而,发明人在实现本技术的过程中发现,上述现有技术至少存在如下技术问题:由于传感器具有一定的测量误差,因此,根据传感器的测量数据确定出的位姿增量也具有误差。而上述过程中,每个时刻的位姿均是根据前一时刻的位姿和位姿增量推算得到的,使得误差不断累积,导致定位出的机器人位姿的误差越来越大。
78.为了解决上述技术问题,本技术提供一种机器人位姿的确定方法,其发明构思在于,分别采用两种方式确定机器人的位姿,一种方式与现有技术类似,基于传感器数据确定机器人的位姿增量,并利用位姿增量和上一时刻的位姿来确定机器人当前时刻的位姿,本实施例中将该位姿称为第一位姿。另一种方式是通过将传感器的测量数据与参考信息进行匹配,根据匹配结果来确定机器人当前时刻的位姿,本实施例中将该位姿称为第二位姿。然后,对两种方式确定的出机器人的位姿(即第一位姿和第二位姿)进行综合考虑,确定出机器人在当前时刻的位姿。上述过程中,由于第二位姿是采用全局匹配的方式确定的,因此,第二位姿是与机器人的运动过程无关的全局位姿,即第二位姿是不存在累积误差的。这样,根据第一位姿和第二位姿确定出机器人的当前时刻的位姿,第二位姿能够起到抵消第一位姿中的累积误差的作用,因此,能够避免机器人位姿的误差越来越大的问题,提高机器人位姿的准确性。
79.本实施例适用于对移动机器人的位姿进行定位的场景。一个示例性的场景为,机
器人在某个特定区域移动过程中对机器人的位姿进行定位,其中,该特定区域可以为室内区域,还可以为室外区域。
80.本实施例的方法可以由定位装置执行。该定位装置可以为软件和/或硬件的形式。一些示例中,该定位装置可以集成在电子设备中,例如,该电子设备可以是图1中的服务器,或者,该电子设备还可以是与移动机器人通信连接的终端设备。另一些示例中,该定位装置可以集成在移动机器人中。
81.下面结合几个具体的实施例对本技术的技术方案进行详细描述。下面几个实施例可以相互结合,对于相同或者相似的内容在某些实施例中可能不再重复描述。
82.图2为本技术实施例提供的一种机器人位姿的确定方法的流程示意图。如图2所示,本实施例的方法,包括:
83.s201:根据所述机器人的第一传感器的测量数据,确定所述机器人当前时刻相对于上一时刻的位姿增量,并根据所述位姿增量和所述机器人在所述上一时刻的位姿,确定所述机器人的第一位姿。
84.本实施例中,s201是以预设时间间隔为粒度,采用里程计原理确定机器人的位姿。也就是说,先估计机器人当前时刻相对于上一时刻的位姿增量,然后基于上一时刻的位姿和该位姿增量,确定机器人在当前时刻的位姿。需要说明的是,本实施例对于相邻两个时刻之间的间隔不作限定。
85.其中,本实施例的机器人设置有第一传感器。第一传感器可以是一个或者多个传感器。
86.一些可能的实现方式中,当第一传感器为一个传感器时,第一传感器可以为下述中的任意一种:激光传感器、相机、惯性传感器、编码器传感器。第一传感器的测量数据可用于分析得到机器人的运动参数。
87.具体的,根据第一传感器的测量数据,确定机器人在上一时刻至当前时刻之间的运动参数。然后,根据该运动参数,可以确定机器人当前时刻相对于上一时刻的位姿增量。
88.举例而言,假设第一传感器为编码器传感器(例如光电编码器),机器人采用轮式结构,可以在机器人的轮部安装编码器传感器。在机器人移动过程中,编码器传感器可以测量出轮子在某个时间段内的运动参数,比如:速度、角速度等。进而,根据轮子的运动参数以及轮子的半径等参数,可以确定出机器人在该时间段内的位姿增量。
89.假设第一传感器为惯性传感器,在机器人移动过程中,惯性传感器可以测量出机器人在某个时间段内的运动参数,比如:加速度、角速度等。进而,根据这些运动参数,可以确定出机器人在该时间段内的位姿增量。
90.假设第一传感器为激光传感器,在机器人移动过程中,可以利用激光传感器采集机器人周围环境的点云数据。通过对某个时间段内采集到的多帧点云数据进行匹配和分析,可以确定出机器人的运动参数。进而,根据该运动参数,可以确定出机器人在该时间段内的位姿增量。
91.假设第一传感器为相机,在机器人移动过程中,可以利用相机采集机器人周围环境的图像。通过对某个时间段内采集到的多帧图像进行匹配和分析,可以确定出机器人的运动参数。进而,根据该运动参数,可以确定出机器人在该时间段内的位姿增量。其中,本实施例中的相机可以单目相机,还可以为双目相机或者多目相机。
92.另一些可能的实现方式中,当第一传感器为多个传感器时,第一传感器可以包括下述至少两种类型的传感器:激光传感器、相机、惯性传感器、编码器传感器。这样,针对所述至少两种类型的传感器中的任意类型的传感器,根据该类型的传感器的测量数据,确定机器人当前时刻相对于上一时刻的第一位姿增量;然后,对所述至少两种类型的传感器各自确定出的第一位姿增量进行融合处理,得到所述机器人相对于所述上一时刻的位姿增量。
93.其中,针对上述任意类型的传感器的测量数据,确定第一位姿增量的过程,与上述举例类似,此处不作赘述。另外,对所述至少两种类型的传感器各自确定出的第一位姿增量进行融合处理,可以采用计算均值、或者加权均值的方式,本实施例对此不作限定。
94.应理解,该实现方式中,通过将不同类型的传感器确定出的第一位姿增量进行融合处理,可以一定程度上提高确定出的位姿增量的准确性。
95.基于上述各实现方式,当根据第一传感器的测量数据,确定出机器人当前时刻相对于上一时刻的位姿增量后,可以根据该位姿增量和机器人在上一时刻的位姿,确定机器人在当前时刻的第一位姿。应理解,机器人在上一时刻的位姿也可以采用上述里程计的原理得到。
96.s202:根据所述机器人的第二传感器的测量数据与参考信息的匹配结果,确定所述机器人的第二位姿;所述参考信息包括:所述机器人的多个参考位姿以及在每个所述参考位姿下通过所述第二传感器采集到的参考测量数据。
97.本实施例中,机器人还设置有第二传感器。其中,第二传感器与第一传感器可以是同一传感器,也可以是不同的传感器。第二传感器可以为激光传感器或者相机。
98.一些可能的场景中,第一传感器可以为编码器传感器或者惯性传感器。第二传感器可以为激光传感器或相机。另一些可能的场景中,第一传感器和第二传感器均为激光传感器;或者,第一传感器和第二传感器均为相机;或者,第一传感器为激光传感器,第二传感器为相机;或者,第一传感器为相机,第二传感器为激光传感器。
99.本实施例中,s202是采用全局匹配的原理确定机器人的位姿。具体的,将第二传感器的测量数据与预先生成的全局信息进行匹配,并根据匹配结果确定机器人的第二位姿。其中,参考信息可以包括机器人的多个参考位姿以及在每个参考位姿下通过第二传感器采集到的参考测量数据。
100.可选的,可以采用如下匹配方式确定机器人的第二位姿:分别获取第二传感器的测量数据与参考信息中的每个参考场景图像之间的相似度,从参考信息中确定出目标参考数据,目标参考数据与第二传感器的测量数据之间的相似度最高;将目标参考测量数据对应的参考位姿确定为所述第二位姿。
101.一种可能的实现方式中,当第二传感器为相机时,所述第二传感器的测量数据为所述相机在所述当前时刻采集到的场景图像。相应的,所述参考信息包括所述机器人的多个参考位姿以及在每个所述参考位姿下通过所述相机采集到的参考场景图像。
102.作为一个示例,可以采用如下方式生成参考信息:在机器人工作之前,预先控制机器人在场景中移动,并到达场景中的各个位置。在机器人移动过程中,获取机器人的参考位姿以及机器人在该参考位姿时通过相机采集到的参考场景图像。根据各所述参考位姿,以及各所述参考位姿各自对应的参考场景图像,生成参考信息。
103.基于该示例,当机器人工作过程中,需要对机器人的位姿进行定位时,可以获取相机在当前时刻采集的场景图像,将该场景图像与参考信息进行匹配,并根据匹配结果确定出机器人的第二位姿。
104.另一种可能的实现方式中,当第二传感器为激光传感器时,所述第二传感器的测量数据是指激光传感器在当前时刻采集到的点云数据。相应的,参考信息包括机器人的多个参考位姿以及在每个参考位姿下通过激光传感器采集到的参考点云数据。
105.作为一个示例,可以采用如下方式生成参考信息:在机器人工作之前,预先控制机器人在场景中移动,并到达场景中的各个位置。在机器人移动过程中,获取机器人的参考位姿以及机器人在该参考位姿时通过激光传感器采集到的参考点云数据。根据各所述参考位姿,以及各所述参考位姿各自对应的参考点云数据,生成参数信息。
106.基于该示例,当机器人工作过程中,需要对机器人的位姿进行定位时,可以获取激光传感器在当前时刻采集的点云数据,将该点云数据与参考信息进行匹配,并根据匹配结果确定出机器人的第二位姿。
107.又一种可能的实现方式中,若机器人同时设置有激光传感器和相机,则可以根据相机采集的场景图像与第一参考信息的匹配结果,确定机器人的第一候选位姿,并根据激光传感器采集的点云数据与第二参考信息的匹配结果,确定机器人的第二候选位姿。然后,根据第一候选位姿和第二候选位姿,确定出机器人的第二位姿。例如,可以对第一候选位姿和第二候选位姿计算均值或者加权均值,得到第二位姿。其中,第一参考信息包括机器人的多个参考位姿以及每个参考位姿下通过相机采集到的参考场景图像。第二参考信息包括机器人的多个参考位姿以及每个参考位姿下通过激光传感器采集到的参考点云数据。
108.s203:根据所述第一位姿和所述第二位姿,确定所述机器人在所述当前时刻的位姿。
109.本实施例中,采用里程计原理(即s201)得到第一位姿,并采用全局匹配的方式(即s202)确定出第二位姿后,对第一位姿和第二位姿进行综合考虑,确定出机器人在当前时刻的位姿。
110.一种可能的实现方式中,可以对第一位姿和第二位姿进行滤波处理,得到机器人在当前时刻的位姿。其中,滤波处理可以为下述中的任意一种:均值滤波、加权均值滤波、卡尔曼滤波等。
111.任何传感器都不可避免的存在测量误差。本实施例中,第一位姿是采用里程计原理预测得到的,该方式会使得传感器的误差不断累积,从而使得第一位姿的误差越来越大。本实施例为了解决误差积累的问题,引入了机器人的第二位姿。由于第二位姿是采用全局匹配的方式得到的,该方式确定出的位姿为全局位姿,与机器人的运动过程无关,因此,第二位姿不会存在误差累积的问题。这样,根据第一位姿和第二位姿确定出机器人的当前时刻的位姿,第二位姿能够起到抵消第一位姿中的累积误差的作用,因此,能够避免机器人位姿的误差越来越大的问题,提高机器人位姿的准确性。
112.一些可能的实现方式中,也可以直接将采用s202中全局匹配的方式确定出的第二位姿,作为机器人在当前时刻的位姿。但是,在一些场景中,各第二位姿形成的轨迹可能不够平滑,存在跳变的情况。本实施例中,由于第一位姿是根据机器人的运动过程预测得到的,第一位姿具有平滑轨迹,因此,通过将第一位姿和第二位姿结合起来,还能够避免轨迹
跳变的问题,提高机器人轨迹的平滑性。
113.本实施例提供的机器人位姿的确定方法,包括:根据机器人的第一传感器的测量数据,确定机器人当前时刻相对于上一时刻的位姿增量,并根据位姿增量和机器人在上一时刻的位姿,确定机器人的第一位姿;根据机器人的第二传感器的测量数据与参考信息的匹配结果,确定机器人的第二位姿;参考信息包括:机器人的多个参考位姿以及在每个参考位姿下通过第二传感器采集到的参考测量数据;根据第一位姿和第二位姿,确定机器人在当前时刻的位姿。上述过程中,由于第二位姿是采用参考信息匹配的方式确定的,使得第二位姿是与机器人的运动过程无关的全局位姿,即第二位姿是不存在累积误差的。这样,根据第一位姿和第二位姿确定出机器人的当前时刻的位姿,第二位姿能够起到抵消第一位姿中的累积误差的作用,因此,能够避免机器人位姿的误差越来越大的问题,提高机器人位姿的准确性。
114.在上述实施例的基础上,下面结合图3以一个具体的示例对本技术方案进行更详细的描述。
115.图3为本技术实施例提供的另一种机器人位姿的确定方法的流程示意图。本实施例中,以轮式机器人为例,该机器人的轮部设置有编码器传感器。例如,该编码器传感器可以为光电传感器。并且,该机器人还设置有相机,其中,相机可以设置在机器人的任意位置,只要在机器人移动过程中相机能够采集场景图像即可。该相机可以为单目相机或者多目相机。
116.本实施例中,编码器传感器作为第一传感器。相机作为第二传感器。如图3所示,本实施例的方法,包括:
117.s301:获取编码器传感器在上一时刻至当前时刻之间的时间段内采集的测量数据,并获取相机在当前时刻采集的场景图像。
118.s302:根据所述测量数据,确定机器人在当前时刻相对于上一时刻的位姿增量,并根据该位姿增量和机器人在上一时刻的位姿,确定机器人的第一位姿。
119.s303:根据所述场景图像与参考信息的匹配结果,确定机器人的第二位姿,参考信息包括:机器人的多个参考位姿以及在每个参考位姿下通过相机采集到的参考场景图像。
120.应理解,s302和s303的具体实现方式可以参考图2所示实施例,此处不作赘述。
121.s304:通过卡尔曼滤波器对所述第一位姿和所述第二位姿进行滤波处理,得到所述机器人在所述当前时刻的位姿。
122.卡尔曼滤波是一种利用线性系统状态方程,通过向系统中输入观测数据,对系统状态进行最优估计的算法。其中观测数据中包括系统中的噪声和干扰的影响,所以最优估计过程也可以看作是滤波过程。
123.一种可能的实现方式中,可以先确定卡尔曼滤波器的卡尔曼增益,卡尔曼增益指示第一位姿的可信度和第二位姿的可信度;然后根据卡尔曼增益、第一位姿和第二位姿,确定机器人在当前时刻的位姿。示例性的,根据卡尔曼增益确定第一位姿和第二位姿各自对应的权重,根据权重对第一位姿和第二位姿进行加权平均,得到机器人在当前时刻的位姿。
124.本实施例中,采用里程计原理确定出的第一位姿作为卡尔曼滤波器的预测量,采用全局匹配方式确定出的第二位姿作为卡尔曼滤波器的观测量。也就是说,利用第二位姿对第一位姿进行修正处理。采用卡尔曼滤波确定机器人的位姿的过程,如下述的步骤(1)至
(4)。
125.(1)获取上一时刻的误差参数,上一时刻的误差参数指示机器人上一时刻的位姿的不确定性。示例性的,本实施例中可以采用协方差来表征位姿的不确定性,即,将上一时刻的预测位姿与估计位姿之间的协方差作为上一时刻的误差参数。
126.(2)根据上一时刻的误差参数和机器人不同时刻之间的位姿转移关系,确定当前时刻的误差参数。
127.假设机器人的位姿记为xk=(p_x,p_y,θ)
t
。其中p_x、p_y和θ分别表示机器人在世界坐标系下的横坐标、纵坐标和偏航角。
128.本实施例中,根据编码器传感器的测量数据,可以确定机器人在一段时间内的位姿增量(δp_x,δp_y,δθ)。假设机器人在k-1时刻的位姿为:x
k-1
=(p_x
k-1
,p_y
k-1
,θ
k-1
)
t

129.将每个时刻的位姿作为状态量,状态转移过程如公式(1)所示。
[0130][0131]
也就是说,可以基于k-1时刻的状态量预测得到k时刻的状态量。其中,预测得到的k时刻的状态量称为预测量,记为k时刻的状态量称为预测量,记为对应本实施例中的第一位姿。
[0132]
公式(1)所示的状态转移过程可以表示为公式(2)的形式:
[0133][0134]
通过对公式(2)中的状态量求偏导可得到雅可比矩阵(即状态转移矩阵)f。矩阵f表征的是机器人不同时刻之间的位姿转移关系。
[0135][0136]
卡尔曼滤波器中,用协方差描述不确定性。本实施例中,每一时刻的不确定性可以用协方差矩阵p来表示,即,p表征的是每个时刻的误差参数。
[0137]
上一时刻的误差参数(即协方差矩阵)p
k-1
两边乘以状态转移矩阵f预测得到当前时刻的误差参数(即协方差矩阵)由于预测过程不是完全准确的,它本身也包含噪声,所以在后面加上噪声矩阵q,来表示预测过程本身带来的噪声。公式(3)表示系统协方差在各个时刻的传递关系。
[0138][0139]
(3)根据当前时刻的误差参数,确定卡尔曼增益。
[0140]
本实施例中,根据相机采集的场景图像确定出的第二位姿作为观测量,记为zk,可以表示如下:
[0141]
zk=(p_x,p_y,θ)
t
[0142]
由系统状态量xk至观测量zk的变换关系称为观测矩阵,记为h,由于变换是线性关系,所以h可用单位矩阵表示,如下:
[0143][0144]
由于观测量zk也是包含噪声的,所以后面加上v来表示观测噪声,噪声的协方差矩阵用r表示。
[0145]
zk=hxk+v
ꢀꢀꢀꢀꢀꢀ
公式(4)
[0146]
将卡尔曼增益记为kk,卡尔曼增益kk可以通过协方差矩阵观测矩阵h、观测噪声的协方差矩阵r得到,如下公式(5)所示。
[0147][0148]
(4)根据所述卡尔曼增益和所述第二位姿对所述第一位姿进行修正,将修正结果确定为所述机器人在所述当前时刻的位姿。
[0149]
示例性的,如公式(6)所示,通过尔曼增益kk、第二位姿zk对第一位姿进行修正,得到机器人在当前时刻的位姿xk。
[0150][0151]
进一步的,还可以利用卡尔曼增益kk将协方差矩阵更新为pk,以便在k+1时刻使用。
[0152][0153]
图4为与图3所示实施例对应的机器人位姿确定过程的示意图。本实施例中,以轮式机器人为例,该机器人的轮部设置有编码器传感器。例如,该编码器传感器可以为光电传感器。并且,该机器人还设置有相机,其中,相机可以设置在机器人的任意位置,只要在机器人移动过程中相机能够采集场景图像即可。该相机可以为单目相机或者多目相机。,编码器传感器作为第一传感器。相机作为第二传感器。
[0154]
如图4所示,获取编码器传感器在上一时刻至当前时刻采集的测量数据,并获取相机在当前时刻采集的场景图像。根据对编码器传感器的测量数据确定出机器人当前时刻相对于上一时刻的位姿增量,并根据上一时刻的位姿和该位姿增量,确定机器人的第一位姿。根据相机采集的场景图像与全局信息的匹配结果,确定机器人的第二位姿。对第一位姿和第二位姿进行卡尔曼滤波处理,得到机器人在当前时刻的位姿。
[0155]
本实施例中,通过利用卡尔曼滤波器使用第二位姿对第一位姿进行修正,得到机器人在当前时刻的位姿。由于第二位姿是采用参考信息匹配的方式确定的,使得第二位姿是与机器人的运动过程无关的全局位姿,即第二位姿是不存在累积误差的。这样,根据第一位姿和第二位姿确定出机器人的当前时刻的位姿,第二位姿能够起到抵消第一位姿中的累积误差的作用,因此,能够避免机器人位姿的误差越来越大的问题,提高机器人位姿的准确性。
[0156]
图5为本技术实施例提供的一种机器人位姿的确定装置的结构示意图。该装置可以为软件和/或硬件的形式。该装置可以设置在与机器人通信连接的服务器或者终端设备中,还可以设置在机器人中。如图5所示,本实施例提供的机器人位姿的确定装置500,可以包括:第一确定模块501、第二确定模块502和第三确定模块503。
[0157]
其中,第一确定模块501,用于根据所述机器人的第一传感器的测量数据,确定所
述机器人当前时刻相对于上一时刻的位姿增量,并根据所述位姿增量和所述机器人在所述上一时刻的位姿,确定所述机器人的第一位姿;
[0158]
第二确定模块502,用于根据所述机器人的第二传感器的测量数据与参考信息的匹配结果,确定所述机器人的第二位姿;所述参考信息包括:所述机器人的多个参考位姿以及在每个所述参考位姿下通过所述第二传感器采集到的参考测量数据;
[0159]
第三确定模块503,用于根据所述第一位姿和所述第二位姿,确定所述机器人在所述当前时刻的位姿。
[0160]
一种可能的实现方式中,所述第二确定模块502具体用于:
[0161]
分别获取所述第二传感器的测量数据与所述参考信息中的每个所述参考测量数据之间的相似度;
[0162]
从所述参考信息中确定出目标参考测量数据,所述目标参考测量数据与所述第二传感器的测量数据之间的相似度最高;
[0163]
将所述目标参考测量数据对应的所述参考位姿确定为所述第二位姿。
[0164]
一种可能的实现方式中,所述第二传感器为相机,所述第二传感器的测量数据为所述相机在所述当前时刻采集到的场景图像,所述参考信息包括所述机器人的多个参考位姿以及在每个所述参考位姿下通过所述相机采集到的参考场景图像;
[0165]
或者,
[0166]
所述第二传感器为激光传感器,所述第二传感器的测量数据为所述激光传感器在所述当前时刻采集的点云数据,所述参考信息包括所述机器人的多个参考位姿以及在每个所述参考位姿下通过所述激光传感器采集到的参考点云数据。
[0167]
一种可能的实现方式中,所述第三确定模块503具体用于:
[0168]
通过卡尔曼滤波器对所述第一位姿和所述第二位姿进行滤波处理,得到所述机器人在所述当前时刻的位姿。
[0169]
一种可能的实现方式中,所述第三确定模块具体用于:
[0170]
确定所述卡尔曼滤波器的卡尔曼增益,所述卡尔曼增益用于指示所述第一位姿的可信度和所述第二位姿的可信度;
[0171]
根据所述卡尔曼增益和所述第二位姿对所述第一位姿进行修正,将修正结果确定为所述机器人在所述当前时刻的位姿。
[0172]
一种可能的实现方式中,所述第三确定模块503具体用于:
[0173]
获取所述上一时刻的误差参数,所述上一时刻的误差参数用于指示所述机器人上一时刻的位姿的不确定性;
[0174]
根据所述上一时刻的误差参数和所述机器人不同时刻之间的位姿转移关系,确定所述当前时刻的误差参数;
[0175]
根据所述当前时刻的误差参数,确定所述卡尔曼增益。
[0176]
一种可能的实现方式中,所述第一传感器为下述中的任意一种:激光传感器、相机、惯性传感器、编码器传感器;所述第一确定模块501具体用于:
[0177]
根据所述第一传感器的测量数据,确定所述机器人在所述上一时刻至所述当前时刻之间的运动参数;
[0178]
根据所述运动参数,确定所述机器人相对于上一时刻的位姿增量。
[0179]
图6为本技术实施例提供的另一种机器人位姿的确定装置。作为一种可能的实现方式,在图5所示实施例的基础上,如图6所示,本实施例的装置还可以包括:生成模块504。其中,所述生成模块504用于:
[0180]
在所述机器人移动过程中,获取所述机器人的参考位姿以及所述机器人在所述参考位姿时通过所述第二传感器采集到的参考测量数据;
[0181]
根据各所述参考位姿,以及各所述参考位姿各自对应的所述参考测量数据,生成所述参考信息。
[0182]
本实施例提供的机器人位姿的确定装置,可用于执行上述方法实施例中的机器人位姿的确定方法,其实现原理和技术效果类似,此处不作赘述。
[0183]
图7为本技术实施例提供的一种电子设备的结构示意图。该电子设备可以为机器人或者服务器或者终端设备。如图7所示,本实施例提供的电子设备700可以包括:处理器701以及存储器702。
[0184]
其中,存储器702,用于存储计算机程序;处理器701,用于执行存储器中存储的计算机程序,以实现上述实施例中机器人位姿的确定方法中的一个或者多个步骤。具体可以参见前述方法实施例中的相关描述,其实现原理和技术效果类似,本实施例此处不再赘述。
[0185]
可选地,存储器702既可以是独立的,也可以跟处理器701集成在一起。
[0186]
当所述存储器702是独立于处理器701之外的器件时,所述电子设备700还可以包括:总线703,用于连接所述存储器702和处理器701。
[0187]
当电子设备为机器人时,电子设备中还可以设置下述一种或者多种传感器:激光传感器、相机、惯性传感器、编码器传感器。
[0188]
本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序用于实现如上任一方法实施例中的机器人位姿的确定方法中的一个或者多个步骤,其实现原理和技术效果类似,此处不作赘述。
[0189]
本技术实施例还提供一种芯片,包括:存储器和处理器,所述存储器中存储有计算机程序,所述处理器运行所述计算机程序执行上述任一方法实施例中的机器人位姿的确定方法中的一个或者多个步骤,其实现原理和技术效果类似,此处不作赘述。
[0190]
本技术实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一方法实施例中的机器人位姿的确定方法中的一个或者多个步骤,其实现原理和技术效果类似,此处不作赘述。
[0191]
在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0192]
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0193]
另外,在本技术各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
[0194]
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本技术各个实施例所述方法的部分步骤。
[0195]
应理解,上述处理器可以是中央处理单元(英文:central processing unit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digital signal processor,简称:dsp)、专用集成电路(英文:application specific integrated circuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0196]
存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。
[0197]
总线可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本技术附图中的总线并不限定仅有一根总线或一种类型的总线。
[0198]
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
[0199]
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(application specific integrated circuits,简称:asic)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
[0200]
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0201]
最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1