控制器定位方法、装置、电子设备及计算机存储介质与流程

专利2023-08-18  121



1.本技术实施例涉及空间定位技术领域,尤其涉及一种控制器定位方法、装置、电子设备及计算机存储介质。


背景技术:

2.虚拟现实(virtual reality,vr)通过三维技术、仿真技术和显示技术等技术使处于虚拟世界中的人产生身临其境的感觉,随着社会生产力和科学技术的发展,对vr技术的需求日益旺盛。
3.目前,vr通过控制器控制虚拟世界中的动作,在计算控制器的位姿时利用多个定位点的投影关系,通过计算多组投影关系选出误差最小的一组,从而得到控制器的位姿。
4.然而,计算多组投影关系时的计算量较大,例如:若控制器上具有15个定位点,相机拍下了5个定位点,则计算次数为15*14*13*12*11,大量的计算导致在实际使用vr的时候具有较大的延迟,从而影响vr的体验。


技术实现要素:

5.有鉴于此,本技术实施例提供一种控制器定位方法、装置、电子设备及计算机存储介质,以至少部分解决上述问题。
6.根据本技术实施例的第一方面,提供了一种控制器定位方法,该控制器上设置有多个定位标识,以及至少一个姿态传感器,所述方法包括:获取由相机采集到的第一定位图像和所述姿态传感器采集到的所述控制器的第一姿态信息,其中,所述第一定位图像中包括至少一个所述定位标识的图像;根据所述定位标识的图像在所述第一定位图像中所处的位置,确定所述控制器在所述第一定位图像中所处的位置区域;根据所述位置区域和所述第一姿态信息,确定目标定位标识集,其中,所述目标定位标识集包括至少一个定位标识,所述控制器位于所述位置区域且对应姿态信息位于所述第一姿态信息所处的第一姿态信息区间时,所述相机采集到的定位图像包括所述目标定位标识集中至少一个定位标识的图像;根据所述目标定位标识集和所述第一定位图像中定位标识的数量,确定所述控制器的第一位置信息和第二姿态信息;根据所述第一位置信息,以及所述第一姿态信息和所述第二姿态信息中的至少一项,获取所述控制器的定位结果。
7.根据本技术实施例的第二方面,提供了一种控制器定位装置,所述装置包括:获取模块,用于获取由相机采集到的第一定位图像和所述姿态传感器采集到的所述控制器的第一姿态信息,其中,所述第一定位图像中包括至少一个所述定位标识的图像;定位模块,用于根据所述定位标识的图像在所述第一定位图像中所处的位置,确定所述控制器在所述第一定位图像中所处的位置区域;确定模块,用于根据所述位置区域和所述第一姿态信息,确定目标定位标识集,其中,所述目标定位标识集包括至少一个定位标识,所述控制器位于所述位置区域且对应姿态信息位于所述第一姿态信息所处的第一姿态信息区间时,所述相机采集到的定位图像包括所述目标定位标识集中至少一个定位标识的图像;计算模块,用于
根据所述目标定位标识集和所述第一定位图像中定位标识的数量,确定所述控制器的第一位置信息和第二姿态信息;整合模块,用于根据所述第一位置信息,以及所述第一姿态信息和所述第二姿态信息中的至少一项,获取所述控制器的定位结果。
8.根据本技术实施例的第三方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面所述的方法对应的操作。
9.根据本技术实施例的第四方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所述的方法。
10.根据本发明实施例提供的控制器定位方法,通过相机采集第一定位图像后,根据第一定位图像中包含的定位标识的图像的位置可以得出控制器所处的区域,然后根据控制器所处区域和控制器中传感器所采集到的第一姿态信息可以确定目标定位标识集,然后根据目标定位标识集和第一定位图像中的定位标识的数量,得到第一位置信息和第二姿态信息,最终通过第一位置信息,及第一姿态信息和第二姿态信息中的至少一项,获得控制器的定位结果,由此可见在本方案中不是所有定标识都参与计算,而是目标定位集中的部分定位标识参与计算,从而减小了计算量,进而减小了vr在使用过程中的延迟。
附图说明
11.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
12.图1是本技术实施例提供的一种控制器定位方法的流程图;
13.图2为本技术实施例提供的一种vr控制器的结构示意图;
14.图3是本技术实施例提供的一种定位标识的中心点的位置的示意图;
15.图4为本技术实施例提供的一种控制器定位装置的示意图;
16.图5为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
17.为了使本领域的人员更好地理解本技术实施例中的技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术实施例一部分实施例,而不是全部的实施例。基于本技术实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本技术实施例保护的范围。
18.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
19.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离
本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
20.本技术实施例提供了一种控制器定位方法,该控制器上设置有多个定位标识,以及至少一个姿态传感器,该方法可以包括:
21.获取由相机采集到的第一定位图像和所述姿态传感器采集到的所述控制器的第一姿态信息,其中,所述第一定位图像中包括至少一个所述定位标识的图像;
22.根据所述定位标识的图像在所述第一定位图像中所处的位置,确定所述控制器在所述第一定位图像中所处的位置区域;
23.根据所述位置区域和所述第一姿态信息,确定目标定位标识集,其中,所述目标定位标识集包括至少一个定位标识,所述控制器位于所述位置区域且对应姿态信息位于所述第一姿态信息所处的第一姿态信息区间时,所述相机采集到的定位图像包括所述目标定位标识集中至少一个定位标识的图像;
24.根据所述目标定位标识集和所述第一定位图像中定位标识的数量,确定所述控制器的第一位置信息和第二姿态信息;
25.根据所述第一位置信息,以及所述第一姿态信息和所述第二姿态信息中的至少一项,获取所述控制器的定位结果。
26.本技术实施例中,通过相机采集第一定位图像后,根据第一定位图像中包含的定位标识的图像的位置可以得出控制器所处的区域,然后根据控制器所处区域和控制器中传感器所采集到的第一姿态信息可以确定目标定位标识集,然后根据目标定位标识集和第一定位图像中的定位标识的数量,得到第一位置信息和第二姿态信息,最终通过第一位置信息,及第一姿态信息和第二姿态信息中的至少一项,获得控制器的定位结果,由此可见在本方案中不是所有定标识都参与计算,而是目标定位集中的部分定位标识参与计算,从而减小了计算量,进而减小了vr在使用过程中的延迟。
27.图1是本技术实施例提供的一种控制器定位方法的流程图,如图1所示,该方法包括如下步骤101至步骤105:
28.步骤101、获取由相机采集到的第一定位图像和姿态传感器采集到的控制器的第一姿态信息,其中,第一定位图像中包括至少一个定位标识的图像。
29.相机可以设置于vr设备上,还可以设置于使用者正前方等等,在使用者使用控制器时,相机对控制器进行拍照,获得第一定位图像,第一定位图像中包含控制器的图像和控制器上的部分定位标识的图像。
30.应理解,姿态传感器可以为:陀螺仪、重力加速度计和imu传感器等等,在此本技术不作限定。
31.图2为本技术实施例提供的一种vr控制器的结构示意图,如图2所示,vr控制器上设置有多个定位标识,定位标识可以均匀分布在vr控制器表面,也可以随机分布在vr控制器表面,具体分布形式在此本技术中不作限定。
32.应理解,定位标识可以有多种形式,可以为光学标记点,例如:可见led光、红外led光等等,也可以为纯色贴片等等,定位标识只需与控制器颜色区分,具体形式在本技术中不作限定。
33.步骤102、根据定位标识的图像在第一定位图像中所处的位置,确定控制器在第一定位图像中所处的位置区域。
34.对相机所采集图像进行划分,将图像化为n*n个区域,例如:3*3划分为9个区域,或者4*4划分为16个区域等等。控制器相对于相机位于不同的位置区域时,控制器的图像在相机所采集图像中位于不同的图像区域。在获得第一定位图像后,通过控制器上定位标识的图像对控制器进行定位,确定控制器在第一定位图像中所处的位置区域。
35.步骤103、根据位置区域和第一姿态信息,确定目标定位标识集,其中,目标定位标识集包括至少一个定位标识,控制器位于位置区域且对应姿态信息位于第一姿态信息所处的第一姿态信息区间时,相机采集到的定位图像包括目标定位标识集中至少一个定位标识的图像。
36.每个定位标识都有相对应的编号,例如:第一定位标识编号为1,第二定位标识编号为2等等,当控制器处于位置区域和第一姿态信息所处的第一姿态信息区间时,相机所能拍摄到的所有可能的定位标识组成目标定位标识集。
37.步骤104、根据目标定位标识集和第一定位图像中定位标识的数量,确定控制器的第一位置信息和第二姿态信息。
38.根据目标定位标识集中包含的所有定位标识和第一定位图像中包含的定位标识的数量,确定第一位置信息和第二姿态信息,第一位置信息用于指示控制器在第一定位图像中所处的位置区域,第二姿态信息为通过算法解算出的控制器的姿态信息。
39.步骤105、根据第一位置信息,以及第一姿态信息和第二姿态信息中的至少一项,获取控制器的定位结果。
40.应理解,定位结果包含控制器的位置信息和姿态信息,姿态信息通过第一姿态信息和第二姿态信息中的至少一项确定,位置信息为第一位置信息。
41.在本技术实施例中,通过相机采集第一定位图像后,根据第一定位图像中包含的定位标识的图像的位置可以得出控制器所处的区域,然后根据控制器所处区域和控制器中传感器所采集到的第一姿态信息可以确定目标定位标识集,然后根据目标定位标识集和第一定位图像中的定位标识的数量,得到第一位置信息和第二姿态信息,最终通过第一位置信息,及第一姿态信息和第二姿态信息中的至少一项,获得控制器的定位结果,由此可见在本方案中不是所有定标识都参与计算,而是目标定位集中的部分定位标识参与计算,从而减小了计算量,进而减小了vr在使用过程中的延迟。
42.在一种可能的实现的方式中,在根据定位标识的图像在第一定位图像中所处的位置,确定控制器在第一定位图像中所处的位置区域时,若第一定位图像中包括一个定位标识的图像,则根据定位标识的图像在第一定位图像中所处的位置,确定控制器在第一定位图像中所处的位置区域。若第一定位图像中包括至少两个定位标识的图像,则根据第一定位图像中各定位标识的图像的中心点所在的位置,确定控制器在第一定位图像中所处的位置区域。
43.第一定位图像中可能包含一个定位标识的图像,也可能包含多个定位标识的图像。当包含一个定位标识的图像时,根据定位标识的图像的中心点的位置确定控制器所处的区域,例如:定位标识为圆点,该圆点的中心点在第一定位图像的区域11处,则判定控制器处于区域11处。当包含多个定位标识的图像的时候,根据所有定位标识的图像的中心点
相连接所形成的图形的中心坐标确定控制器所处区域,例如:第一定位图像中有四个定位标识,则根据该四个定位标识所围成的四边形的中心坐标在第一定位图像中的位置,确定控制器所处的区域。
44.应理解,计算各定位标识的图像的中心点以及计算各中心点相连接所形成的图形的中心坐标时,可以计算几何中心或者灰度中心等等,在此本技术不作限定。
45.在本技术实施例中,通过计算定位标识的中心点以及多个定位标识的中心点相连接形成的图形的中心坐标,确定控制器所处的区域,从而可以精准确定控制器所处区域,提高了定位的准确度。
46.在一种可能的实现方式中,在根据位置区域和第一姿态信息,确定目标定位标识集时,可以确定第一姿态信息所处的第一姿态信息区间后,从预先创建的索引表中确定与位置区域和第一姿态信息区间对应的目标定位标识集。索引表包括控制器所处的图像区域、姿态信息区间和定位标识集的对应关系,控制器的位置和姿态在一图像区域和一姿态信息区间时,相机所采集图像包括与该图像区域和该姿态信息区间相对应的定位标识集中的至少一个定位标识的图像。
47.预先对控制器进行标定,形成索引表。将相机位置固定,作为坐标系原点,控制器置于坐标系中,设定z轴一定,x、y坐标以一定间隔遍历,形成位置区域,然后欧拉角以一定间隔遍历,形成姿态区间,再将计算出的定位标识的可能的范围相对应,形成索引表。索引表如下表1所示。
48.表1
[0049][0050][0051]
应理解,欧拉角遍历后形成的姿态区间为绕x轴角度、绕y轴角度和绕z轴角度区间,例如:绕x轴5度到15度,绕y轴5度到15度等,索引表中位置区域、三个轴角度和定位标识的编号相对应,例如:在区域11中,绕x轴0度到10度,绕y轴0度到10度,绕z轴0度到10度时,
定位标识的集合中包括定位标识1至定位标识5。在同一区域11中绕x轴0度到10度,绕y轴0度到10度,绕z轴5度到15度时,定位标识的集合中包括定位标识2至定位标识6等等。
[0052]
还应理解,在遍历过程中欧拉角遍历可以替换为其他旋转遍历的方式,表现形式可以为四元数、旋转矩阵和轴角等等,在此本技术不作限定。
[0053]
图3是本技术实施例提供的一种定位标识的中心点的位置的示意图,如图3所示,提前计算出的定位标识的可能的范围可以通过编程计算,或者三维模拟得出,例如:三维动画模拟时,以不同颜色代表不同编号,根据图像中的光点的颜色即可统计出编号范围等等。
[0054]
在本技术实施例中,从预先创建的索引表中可以确定在一定的区域和一定的姿态区间中相机拍摄的定位图像中可能存在的所有定位标识,从而可以缩减定位标识的范围,进而减少在定位时的计算量。
[0055]
在一种可能的实现方式中,根据第一位置信息,以及第一姿态信息和第二姿态信息中的至少一项,获取控制器的定位结果时,可以将第一位置信息和第一姿态信息确定为定位器的定位结果。
[0056]
在本技术实施例中,将第一位置信息和通过姿态传感器采集到的第一姿态信息确定为定位器的定位结果,从而对控制器快速定位,进而提高了vr设备的使用体验。
[0057]
在一种可能的实现方式中,根据第一位置信息,以及第一姿态信息和第二姿态信息中的至少一项,获取控制器的定位结果时,可以将第一位置信息和第二姿态信息确定为定位器的定位结果。
[0058]
在本技术实施例中,将第一位置信息和通过计算得出的第二姿态信息确定为定位器的定位结果,从而对控制器快速定位,进而提高了vr设备的使用体验。
[0059]
在一种可能的实现方式中,根据第一位置信息,以及第一姿态信息和第二姿态信息中的至少一项,获取控制器的定位结果时,可以对第一姿态信息和第二姿态信息进行融合计算,确定控制器的第三姿态信息。将第三姿态信息和第一位置信息确定为定位器的定位结果。
[0060]
在确定定位结果时,可以根据第一姿态信息或者第二姿态信息确定为定位结果中的姿态信息,但是由于姿态传感器采集到的第一姿态信息存在一定的偏移,通过计算得出的第二姿态信息也有一定的误差,所以可以将第一姿态信息和第二姿态信息通过融合算法进行融合计算获得第三姿态信息,然后将第三姿态信息作为定位结果中的姿态信息。
[0061]
在本技术实施例中,将第一姿态信息和第二姿态信息进行融合计算获得第三姿态信息,将第三姿态信息确定为定位结果中的姿态信息,从而可以获得更加准确的姿态信息,进而可以提高vr设备的使用体验。
[0062]
在一种可能的实现方式中,根据目标定位标识集和第一定位图像中定位标识的数量,确定控制器的第一位置信息和第二姿态信息时,可以根据目标定位标识集,确定个定位标识子集,每个定位标识子集包括n个不同的定位标识,不同的定位标识子集包括不完全相同的定位标识,n用于表征第一定位图像中定位标识的数量,m用于表征目标定位标识集中定位标识的数量,然后分别根据每个定位标识子集,对控制器的位置和姿态进行求解,获得每个定位标识子集的求解结果。从各定位标识子集中确定对应求解结果的误差最小的目标定位标识子集,将目标定位标识子集的求解结果包括的位置信息和姿态信息,分别确定为第一位置信息和第二姿态信息。
[0063]
应理解,根据第一定位图像中定位标识的数量对目标定位标识集中所有定位标识进行排列组合,可以获取到个定位标识子集,例如:目标定位标识集中包含定位标识1至定位标识4,第一定位图像中定位标识的数量为3,则进行排列组合后一共有4种排列方式,将4种可能的排列方式确定为4个定位标识子集。
[0064]
在本技术实施例中,根据第一定位图像中定位标识的数量对目标定位标识集中所有定位标识进行排列组合,得到定位标识子集,然后对定位标识子集进行求解后计算各结果的误差,将误差最小的求解结果作为定位结果,由于是对定位标识子集进行求解后计算误差,而不是对所有的定位标识进行求解,所以具有较小的计算量。
[0065]
在一种可能的实现方式中,从各定位标识子集中确定对应求解结果的误差最小的目标定位标识子集时,可以针对每个定位标识子集,计算该定位标识子集的求解结果所指示位置和姿态与第一定位图像的重投影误差,然后将对应重投影误差最小的定位标识子集,确定为目标定位标识子集。
[0066]
将每个定位标识子集的求解结果投影至二维平面,与第一定位图像进行对比,计算两个图像中控制器的图像中的像素点之间误差,选取误差最小的定位标识子集相对应的求解结果作为定位结果。
[0067]
在本技术实施例中,通过计算各定位标识子集的求解结果的误差后选取误差最小的结果作为定位结果,提高了定位的准确性,从而提高了vr设备的使用体验。
[0068]
在一种可能的实现方式中,对第一定位图像进行定位标识识别,对第一定位图像中对应面积大于预设面积阈值的定位标识进行计数,并将计数结果确定为第一定位图像中定位标识的数量。
[0069]
在相机拍摄的第一定位图像中,可能定位器的图像的边缘存在半个或者一点定位标识的图像,这些定位标识的图像的面积小于面积阈值的定位标识不参与计算。
[0070]
应理解,索引表的定位标识集中,包括的在一定区域内,和一定姿态区间下相机可能拍摄到的所有定位标识,所以尽管定位标识的图像的面积小于预设面积阈值,但是定位标识集中仍包括该定位标识。
[0071]
在本技术实施例中,第一定位图像中定位标识的图像的面积小于预设面积阈值的定位标识不参与计算,进一步减少了计算量。
[0072]
如图4所示,图4是本技术实施例提供的一种控制器定位装置的示意图,该装置400包括:
[0073]
获取模块401,用于获取由相机采集到的第一定位图像和姿态传感器采集到的控制器的第一姿态信息,其中,第一定位图像中包括至少一个定位标识的图像;
[0074]
定位模块402,用于根据定位标识的图像在第一定位图像中所处的位置,确定控制器在第一定位图像中所处的位置区域;
[0075]
确定模块403,用于根据位置区域和第一姿态信息,确定目标定位标识集,其中,目标定位标识集包括至少一个定位标识,控制器位于位置区域且对应姿态信息位于第一姿态信息所处的第一姿态信息区间时,相机采集到的定位图像包括目标定位标识集中至少一个定位标识的图像;
[0076]
计算模块404,用于根据目标定位标识集和第一定位图像中定位标识的数量,确定控制器的第一位置信息和第二姿态信息;
[0077]
整合模块405,根据第一位置信息,以及第一姿态信息和第二姿态信息中的至少一项,获取控制器的定位结果。。
[0078]
在本技术实施例中,获取模块401可用于执行上述方法实施例中的步骤101,定位模块402可用于执行上述方法实施例中的步骤102,确定模块403可用于执行上述方法实施例中的步骤103,计算模块404可用于执行上述方法实施例中的步骤104,整合模块405可用于执行上述方法实施例中的步骤105。
[0079]
在一种可能的实现方式中,若第一定位图像中包括一个定位标识的图像,则根据定位标识的图像在第一定位图像中所处的位置,确定控制器在第一定位图像中所处的位置区域;若第一定位图像中包括至少两个定位标识的图像,则根据第一定位图像中各定位标识的图像的中心点所在的位置,确定控制器在第一定位图像中所处的位置区域。
[0080]
在一种可能的实现方式中,确定第一姿态信息所处的第一姿态信息区间;从预先创建的索引表中确定与位置区域和第一姿态信息区间对应的目标定位标识集,其中,索引表包括控制器所处的图像区域、姿态信息区间和定位标识集的对应关系,控制器的位置和姿态在一图像区域和一姿态信息区间时,相机所采集图像包括与该图像区域和该姿态信息区间相对应的定位标识集中的至少一个定位标识的图像。
[0081]
在一种可能的实现方式中,对第一姿态信息和第二姿态信息进行融合计算,确定控制器的第三姿态信息;将第三姿态信息和第一位置信息确定为定位器的定位结果。
[0082]
在一种可能的实现方式中,根据目标定位标识集,确定个定位标识子集,其中,每个定位标识子集包括n个不同的定位标识,不同的定位标识子集包括不完全相同的定位标识,n用于表征第一定位图像中定位标识的数量,m用于表征目标定位标识集中定位标识的数量;分别根据每个定位标识子集,对控制器的位置和姿态进行求解,获得每个定位标识子集的求解结果,其中,求解结果包括控制器的位置信息和姿态信息;从各定位标识子集中确定对应求解结果的误差最小的目标定位标识子集;将目标定位标识子集的求解结果包括的位置信息和姿态信息,分别确定为第一位置信息和第二姿态信息。
[0083]
在一种可能的实现方式中,针对每个定位标识子集,计算该定位标识子集的求解结果所指示位置和姿态与第一定位图像的重投影误差;将对应重投影误差最小的定位标识子集,确定为目标定位标识子集。
[0084]
在一种可能的实现方式中,对第一定位图像进行定位标识识别,对第一定位图像中对应面积大于预设面积阈值的定位标识进行计数,并将计数结果确定为第一定位图像中定位标识的数量。
[0085]
需要说明的是,上述控制器定位装置内的各模块之间的信息交互、执行过程等内容,由于与前述控制器定位方法实施例基于同一构思,具体内容可参见前述控制器定位方法实施例中的叙述,此处不再赘述。
[0086]
参照图5,示出了根据本技术实施例的一种电子设备的结构示意图,本技术具体实施例并不对电子设备的具体实现做限定。
[0087]
如图5所示,该电子设备可以包括:处理器(processor)502、通信接口(communications interface)504、存储器(memory)506、以及通信总线508。
[0088]
其中:
[0089]
处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
[0090]
通信接口504,用于与其它电子设备或服务器进行通信。
[0091]
处理器502,用于执行程序510,具体可以执行上述控制器定位方法实施例中的相关步骤。
[0092]
具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
[0093]
处理器502可能是中央处理器cpu,或者是图形处理器gpu(graphics processing unit),或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本技术实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;一个或多个gpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个gpu以及一个或多个asic。
[0094]
存储器506,用于存放程序510。存储器506可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
[0095]
程序510具体可以用于使得处理器502执行前述任一实施例中的控制器定位方法。
[0096]
程序510中各步骤的具体实现可以参见前述任一控制器定位方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
[0097]
在本技术实施例中,通过相机采集第一定位图像后,根据第一定位图像中包含的定位标识的图像的位置可以得出控制器所处的区域,然后根据控制器所处区域和控制器中传感器所采集到的第一姿态信息可以确定目标定位标识集,然后根据目标定位标识集和第一定位图像中的定位标识的数量,得到第一位置信息和第二姿态信息,最终通过第一位置信息,及第一姿态信息和第二姿态信息中的至少一项,获得控制器的定位结果,由此可见在本方案中不是所有定标识都参与计算,而是目标定位集中的部分定位标识参与计算,从而减小了计算量,进而减小了vr在使用过程中的延迟。
[0098]
本技术实施例还提供了一种计算机程序产品,包括计算机指令,该计算机指令指示计算设备执行上述多个方法实施例中的任一方法对应的操作。
[0099]
需要指出,根据实施的需要,可将本技术实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本技术实施例的目的。
[0100]
上述根据本技术实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如cd rom、ram、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如asic或fpga)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,ram、rom、闪存等),当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的控制器定位方法。此外,当通用计算机访问用于实现在此示出的控制器定位方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的控制器定位方法的专用计算机。
[0101]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单
元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术实施例的范围。
[0102]
以上实施方式仅用于说明本技术实施例,而并非对本技术实施例的限制,有关技术领域的普通技术人员,在不脱离本技术实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本技术实施例的范畴,本技术实施例的专利保护范围应由权利要求限定。

技术特征:
1.一种控制器定位方法,该控制器上设置有多个定位标识,以及至少一个姿态传感器,其特征在于,所述方法包括:获取由相机采集到的第一定位图像和所述姿态传感器采集到的所述控制器的第一姿态信息,其中,所述第一定位图像中包括至少一个所述定位标识的图像;根据所述定位标识的图像在所述第一定位图像中所处的位置,确定所述控制器在所述第一定位图像中所处的位置区域;根据所述位置区域和所述第一姿态信息,确定目标定位标识集,其中,所述目标定位标识集包括至少一个定位标识,所述控制器位于所述位置区域且对应姿态信息位于所述第一姿态信息所处的第一姿态信息区间时,所述相机采集到的定位图像包括所述目标定位标识集中至少一个定位标识的图像;根据所述目标定位标识集和所述第一定位图像中定位标识的数量,确定所述控制器的第一位置信息和第二姿态信息;根据所述第一位置信息,以及所述第一姿态信息和所述第二姿态信息中的至少一项,获取所述控制器的定位结果。2.根据权利要求1所述的方法,其特征在于,所述根据所述定位标识的图像在所述第一定位图像中所处的位置,确定所述控制器在所述第一定位图像中所处的位置区域,包括:若所述第一定位图像中包括一个所述定位标识的图像,则根据所述定位标识的图像在所述第一定位图像中所处的位置,确定所述控制器在所述第一定位图像中所处的位置区域;若所述第一定位图像中包括至少两个所述定位标识的图像,则根据所述第一定位图像中各所述定位标识的图像的中心点所在的位置,确定所述控制器在所述第一定位图像中所处的位置区域。3.根据权利要求1所述的方法,其特征在于,所述根据所述位置区域和所述第一姿态信息,确定目标定位标识集,包括:确定所述第一姿态信息所处的第一姿态信息区间;从预先创建的索引表中确定与所述位置区域和所述第一姿态信息区间对应的所述目标定位标识集,其中,所述索引表包括所述控制器所处的图像区域、姿态信息区间和定位标识集的对应关系,所述控制器的位置和姿态在一图像区域和一姿态信息区间时,所述相机所采集图像包括与该图像区域和该姿态信息区间相对应的定位标识集中的至少一个定位标识的图像。4.根据权利要求1所述的方法,其特征在于,所述根据所述第一位置信息,以及所述第一姿态信息和所述第二姿态信息中的至少一项,获取所述控制器的定位结果,包括:对所述第一姿态信息和所述第二姿态信息进行融合计算,确定所述控制器的第三姿态信息;将所述第三姿态信息和所述第一位置信息确定为所述定位器的定位结果。5.根据权利要求1所述的方法,其特征在于,所述根据所述目标定位标识集和所述第一定位图像中定位标识的数量,确定所述控制器的第一位置信息和第二姿态信息,包括:根据所述目标定位标识集,确定个定位标识子集,其中,每个定位标识子集包括k个不同的定位标识,不同的定位标识子集包括不完全相同的定位标识,k用于表征所述第一定
位图像中定位标识的数量,r用于表征所述目标定位标识集中定位标识的数量;分别根据每个所述定位标识子集,对所述控制器的位置和姿态进行求解,获得每个所述定位标识子集的求解结果,其中,所述求解结果包括所述控制器的位置信息和姿态信息;从各所述定位标识子集中确定对应求解结果的误差最小的目标定位标识子集;将所述目标定位标识子集的求解结果包括的位置信息和姿态信息,分别确定为所述第一位置信息和所述第二姿态信息。6.根据权利要求5所述的方法,其特征在于,所述从各所述定位标识子集中确定对应求解结果的误差最小的目标定位标识子集,包括:针对每个所述定位标识子集,计算该定位标识子集的求解结果所指示位置和姿态与所述第一定位图像的重投影误差;将对应重投影误差最小的所述定位标识子集,确定为所述目标定位标识子集。7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:对所述第一定位图像进行定位标识识别,对所述第一定位图像中对应面积大于预设面积阈值的定位标识进行计数,并将计数结果确定为所述第一定位图像中定位标识的数量。8.一种控制器定位装置,其特征在于,所述装置包括:获取模块,用于获取由相机采集到的第一定位图像和所述姿态传感器采集到的所述控制器的第一姿态信息,其中,所述第一定位图像中包括至少一个所述定位标识的图像;定位模块,用于根据所述定位标识的图像在所述第一定位图像中所处的位置,确定所述控制器在所述第一定位图像中所处的位置区域;确定模块,用于根据所述位置区域和所述第一姿态信息,确定目标定位标识集,其中,所述目标定位标识集包括至少一个定位标识,所述控制器位于所述位置区域且对应姿态信息位于所述第一姿态信息所处的第一姿态信息区间时,所述相机采集到的定位图像包括所述目标定位标识集中至少一个定位标识的图像;计算模块,用于根据所述目标定位标识集和所述第一定位图像中定位标识的数量,确定所述控制器的第一位置信息和第二姿态信息;整合模块,用于根据所述第一位置信息,以及所述第一姿态信息和所述第二姿态信息中的至少一项,获取所述控制器的定位结果。9.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-7中任一项所述的控制器定位方法对应的操作。10.一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-7中任一所述的控制器定位方法。

技术总结
本申请实施例提供了一种控制器定位方法、装置、电子设备及计算机存储介质,该方法包括:获取由相机采集到的第一定位图像和姿态传感器采集到的控制器的第一姿态信息;根据定位标识的图像在第一定位图像中所处的位置,确定控制器在第一定位图像中所处的位置区域;获取控制器中姿态传感器采集到的第一姿态信息;根据位置区域和第一姿态信息,确定目标定位标识集,根据目标定位标识集和第一定位图像中定位标识的数量,确定控制器的第一位置信息和第二姿态信息;根据第一位置信息,以及第一姿态信息和第二姿态信息中的至少一项,获取控制器的定位结果。应用本申请方案,可以解决控制器定位时计算量较大的问题。位时计算量较大的问题。位时计算量较大的问题。


技术研发人员:杨宇 张佳宁 张道宁 李铁成
受保护的技术使用者:凌宇科技(北京)有限公司
技术研发日:2022.07.21
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-4653.html

最新回复(0)