System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请属于即时定位,尤其涉及一种基于imu的追踪定位方法、装置、头戴式设备以及计算机可读存储介质。
技术介绍
1、在vr(virtual reality,虚拟现实)和ar(augmented reality,增强现实)领域,在通过slam(simultaneous localization and mapping,即时定位与地图构建)算法在室内的使用场景中进行追踪时,需要进行关键帧匹配,而且常用的关键帧追踪方案包括跟踪恒速运动模型、跟踪参考关键帧以及重定位等。除此之外,还可以采用通过imu数据和陀螺仪数据来计算当前帧的四元数,从而与地图中的关键帧进行追踪匹配的方法,能有效降低定位追踪的计算量并提高定位信息输出的实时性。
2、但是,考虑到陀螺仪存在固有的零偏的问题,所以在基于陀螺仪数据长时间对头戴式设备部署进行定位追踪时,陀螺仪产生的零偏误差越来越大,所以计算出来的当前帧四元数随着时间的推移,可信度逐渐降低,进而影响最终输出的头戴式设备的定位信息的精度。
3、本
技术介绍
部分中公开的以上信息仅用于理解本专利技术构思的
技术介绍
,并且因此,它可以包含不构成现有技术的信息
技术实现思路
1、本申请的主要目的在于提供一种基于imu的追踪定位方法、装置、头戴式设备以及计算机可读存储介质。旨在通过这种基于imu的追踪定位方法提高每一帧的四元数的可信度,保证在imu和陀螺仪长期工作的情况下,所输出的头戴式设备的定位信息精度不受零偏误差影响。
2、为了实现上述目的,
3、获取前一帧到当前帧之间的imu数据,并根据所述imu数据确定旋转位姿;
4、根据所述前一帧的四元数和所述旋转位姿,确定所述当前帧对应的第一四元数;
5、基于所述第一四元数对头戴式设备进行定位追踪,得到所述头戴式设备的当前位姿;
6、根据所述当前位姿确定所述当前帧对应的第二四元数,并将所述第二四元数置为所述当前帧的四元数。
7、可选地,所述imu数据包括陀螺仪数据;
8、所述获取前一帧到当前帧之间的imu数据,并根据所述imu数据确定旋转位姿的步骤,包括:
9、根据所述头戴式设备采集到的图像数据构建当前帧;
10、获取从所述前一帧到所述当前帧之间的陀螺仪数据,对所述陀螺仪数据进行预积分,得到旋转位姿。
11、可选地,所述根据所述前一帧的四元数和所述旋转位姿,确定所述当前帧对应的第一四元数的步骤,包括:
12、判断是否存在前一帧;
13、若存在前一帧,则获取所述前一帧对应的四元数;
14、若不存在前一帧,则将预设的初始四元数置为所述前一帧的四元数;
15、计算所述前一帧的四元数和所述旋转位姿的四元数之间的积,得到所述当前帧对应的第一四元数。
16、可选地,所述根据所述当前位姿确定所述当前帧对应的第二四元数的步骤,包括:
17、根据所述当前位姿,获取所述头戴式设备相对于上次存储地图所在坐标系的相对位姿;
18、计算所述旋转位姿的四元数、上一帧对应的四元数以及所述相对位姿对应的四元数之间的积,得到第二四元数。
19、可选地,所述基于所述第一四元数对头戴式设备进行定位追踪,得到所述头戴式设备的当前位姿的步骤,包括:
20、根据所述第一四元数,从所述头戴式设备所处地图的多个关键帧中筛选出目标关键帧;
21、通过所述当前帧的第一词袋模型与所述目标关键帧的第二词袋模型,确定匹配特征点;
22、基于所述匹配特征点,定位所述头戴式设备的当前位姿。
23、可选地,所述根据所述第一四元数,从所述头戴式设备所处地图的多个关键帧中筛选出目标关键帧的步骤,包括:
24、遍历各所述关键帧,根据所述第一四元数和各所述关键帧的四元数计算各所述关键帧与所述当前帧之间的旋转角度差值和向量差值;
25、将旋转角度差值和向量差值分别小于预设角度差值阈值和预设向量差值阈值的关键帧置为候选关键帧;
26、将各所述候选关键帧中旋转角度差值最小的候选关键帧置为目标关键帧。
27、可选地,所述基于imu的追踪定位方法还包括:
28、若定位追踪失败,则将所述第一四元数置为所述当前帧的四元数;
29、在下一帧中对所述头戴式设备进行定位追踪时,基于所述第一四元数和所述当前帧到所述下一帧之间的imu数据,计算所述下一帧对应的四元数。
30、此外,为实现上述目的,本申请还提供一种基于imu的追踪定位装置,所述装置应用于头戴式设备;
31、所述基于imu的追踪定位装置包括:
32、旋转位姿模块,用于获取前一帧到当前帧之间的imu数据,并根据所述imu数据确定旋转位姿;
33、四元数计算模块,用于根据所述前一帧的四元数和所述旋转位姿,确定所述当前帧对应的第一四元数;
34、定位追踪模块,用于基于所述第一四元数对头戴式设备进行定位追踪,得到所述头戴式设备的当前位姿;
35、四元数更新模块,用于根据所述当前位姿确定所述当前帧对应的第二四元数,并将所述第二四元数置为所述当前帧的四元数。
36、此外,为实现上述目的,本申请还提供一种头戴式设备,所述头戴式设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于imu的追踪定位程序,所述基于imu的追踪定位程序被所述处理器执行时实现如上所述的基于imu的追踪定位方法的步骤。
37、此外,为实现上述目的,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有基于imu的追踪定位程序,所述基于imu的追踪定位程序被处理器执行时实现如上所述的基于imu的追踪定位方法的步骤。
38、本申请实施例提出的一种基于imu的追踪定位方法、装置、头戴式设备以及计算机可读存储介质,首先获取前一帧到当前帧之间的imu数据,并根据所述imu数据确定旋转位姿;根据所述前一帧的四元数和所述旋转位姿,确定所述当前帧对应的第一四元数;基于所述第一四元数对头戴式设备进行定位追踪,得到所述头戴式设备的当前位姿;根据所述当前位姿确定所述当前帧对应的第二四元数,并将所述第二四元数置为所述当前帧的四元数。
39、如此,本申请实施例的技术方案中在对头戴式设备进行定位追踪时,主要通过imu数据确定的旋转位姿和前一帧的四元数来计算当前帧四元数,避免了因为陀螺仪的长期运行产生的零偏对四元数的精度带来的影响,并且在获得当前位姿后,进一步根据当前位姿提取出更精确的四元数来对当前帧的四元数进行更新,这样使得在计算下一帧的四元数时调用的当前帧的四元数精度更高,不受陀螺仪前期累计的零偏误差的影响,本申请的技术方案通过上述四元数更新方式提高每一帧对应的四元数的可信度,保证在imu和陀本文档来自技高网...
【技术保护点】
1.一种基于IMU的追踪定位方法,其特征在于,所述基于IMU的追踪定位方法包括:
2.如权利要求1所述的基于IMU的追踪定位方法,其特征在于,所述IMU数据包括陀螺仪数据;
3.如权利要求1所述的基于IMU的追踪定位方法,其特征在于,所述根据所述前一帧的四元数和所述旋转位姿,确定所述当前帧对应的第一四元数的步骤,包括:
4.如权利要求1所述基于IMU的追踪定位方法,其特征在于,所述根据所述当前位姿确定所述当前帧对应的第二四元数的步骤,包括:
5.如权利要求1所述的基于IMU的追踪定位方法,其特征在于,所述基于所述第一四元数对头戴式设备进行定位追踪,得到所述头戴式设备的当前位姿的步骤,包括:
6.如权利要求5所述基于IMU的追踪定位方法,其特征在于,所述根据所述第一四元数,从所述头戴式设备所处地图的多个关键帧中筛选出目标关键帧的步骤,包括:
7.如权利要求1-6任一项所述的基于IMU的追踪定位方法,其特征在于,所述基于IMU的追踪定位方法还包括:
8.一种基于IMU的追踪定位装置,其特征在于,所述基
9.一种头戴式设备,其特征在于,所述头戴式设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的基于IMU的追踪定位程序,所述基于IMU的追踪定位程序被所述处理器执行时实现如权利要求1至7中任一项所述的基于IMU的追踪定位方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有基于IMU的追踪定位程序,所述基于IMU的追踪定位程序被处理器执行时实现如权利要求1至7中任一项所述的基于IMU的追踪定位方法的步骤。
...【技术特征摘要】
1.一种基于imu的追踪定位方法,其特征在于,所述基于imu的追踪定位方法包括:
2.如权利要求1所述的基于imu的追踪定位方法,其特征在于,所述imu数据包括陀螺仪数据;
3.如权利要求1所述的基于imu的追踪定位方法,其特征在于,所述根据所述前一帧的四元数和所述旋转位姿,确定所述当前帧对应的第一四元数的步骤,包括:
4.如权利要求1所述基于imu的追踪定位方法,其特征在于,所述根据所述当前位姿确定所述当前帧对应的第二四元数的步骤,包括:
5.如权利要求1所述的基于imu的追踪定位方法,其特征在于,所述基于所述第一四元数对头戴式设备进行定位追踪,得到所述头戴式设备的当前位姿的步骤,包括:
6.如权利要求5所述基于imu的追踪定位方法,其特征在于,所述根据所述第一四元数,从所述头戴式...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。