定位方法、装置、设备、介质及产品

文档序号:31624472发布日期:2022-09-24 00:13阅读:74来源:国知局
定位方法、装置、设备、介质及产品

1.本公开涉及定位技术领域,具体涉及一种定位方法、装置、设备、介质及产品。


背景技术:

2.近年来,在室内环境中,由于建筑物的遮挡,基于全球定位系统(global positioning system,gps)的定位功能往往无法实现准确定位。为了提高室内定位的准确率,可以通过基于wifi的定位技术,利用室内环境中的多个wifi接入点的信号强度构建指纹图,从而进行位置估计。然而,考虑到wifi接入点的信号强度易受环境影响,从而导致上述方案中位置估计的稳定性较差。
3.近年来,随着智能移动终端的普及,移动终端内嵌传感器的种类越来越多。为了解决上述问题,相关技术中,可以对移动终端传感器数据进行数据融合,并根据数据融合结果检测用户的行走动作以及行走方向,并基于上述检测结果对用户进行位置估计。然而,在上述方案中,考虑到对移动终端传感器数据进行数据融合的精度较差,从而容易使位置估计的误差较大,损害了用户体验。


技术实现要素:

4.为了解决相关技术中的问题,本公开实施例提供一种定位方法、装置、设备、介质及产品。
5.第一方面,本公开实施例中提供了一种模型训练方法,所述方法包括:
6.获取第一时刻目标设备的陀螺仪数据以及线性加速度数据,以及第二时刻目标设备的重力计数据以及磁力计数据,第一时刻早于第二时刻;
7.根据线性加速度数据获取步伐检测结果以及步长估计结果;
8.根据重力计数据以及磁力计数据,基于梯度下降算法进行计算,得到第二时刻的第一四元数;
9.将陀螺仪数据作为卡尔曼滤波算法的输入,将第一四元数作为卡尔曼滤波算法的观测值进行计算,得到第二时刻的第二四元数;
10.根据第二四元数获取转换矩阵以及第二时刻目标设备的第一航向角,并根据第一航向角、陀螺仪数据以及转换矩阵获第一时段内目标设备的第二航向角,第一时段在第二时刻之后;
11.响应于步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置,第二时段在第一时段之后。
12.在本公开的一个实现方式中,根据线性加速度数据获取步伐检测结果,包括:
13.根据线性加速度数据获取不同时刻目标设备在多个方向上的加速度矢量的矢量和;
14.响应于目标时间范围内矢量和的最大值大于或等于第一矢量和阈值,且目标时间范围内矢量和的最小值小于或等于第二矢量和阈值,生成用于指示目标设备的用户行走一
步的步伐检测结果,目标时间范围的时间长度小于或等于目标时间长度阈值。
15.在本公开的一个实现方式中,根据线性加速度数据获取步长估计结果,包括:
16.通过获取第i步的步长li,并根据li为获取步长估计结果,其中为第i步对应的时间范围内线性加速度数据中的三轴矢量和的最大值、为第i步对应的时间范围内线性加速度数据中的三轴矢量和的最小值,k为常数。
17.在本公开的一个实现方式中,响应于步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置之前,方法还包括:
18.根据获取第i步对应的时间范围内陀螺仪数据中三轴角速度矢量的均值其中w
x,i
为x轴方向上的角速度矢量,w
y,i
为y轴方向上的角速度矢量,w
z,i
为z轴方向上的角速度矢量;
19.响应于步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置,包括:
20.响应于大于或等于单步姿态变化阈值且步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置。
21.在本公开的一个实现方式中,响应于大于或等于单步姿态变化阈值且步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置,包括
22.响应于目标设备在第一时段的位置与转向位置匹配、大于或等于单步姿态变化阈值且步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置。
23.在本公开的一个实现方式中,响应于目标设备在第一时段的位置与转向位置匹配、大于或等于单步姿态变化阈值且步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置,包括:
24.响应于第二航向角大于或等于转向航向角阈值、目标设备在第一时段的位置与转向位置匹配、大于或等于单步姿态变化阈值且步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置。
25.第二方面,本公开实施例中提供了一种定位装置,所述装置包括:
26.数据获取模块,被配置为获取第一时刻目标设备的陀螺仪数据以及线性加速度数据,以及第二时刻目标设备的重力计数据以及磁力计数据,第一时刻早于第二时刻;
27.步伐检测模块,被配置为根据线性加速度数据获取步伐检测结果以及步长估计结果;
28.第一四元数计算模块,被配置为根据重力计数据以及磁力计数据,基于梯度下降算法进行计算,得到第二时刻的第一四元数;
29.第二四元数计算模块,被配置为将陀螺仪数据作为卡尔曼滤波算法的输入,将第一四元数作为卡尔曼滤波算法的观测值进行计算,得到第二时刻的第二四元数;
30.航向角计算模块,被配置为根据第二四元数获取转换矩阵以及第一时刻目标设备的第一航向角,并根据第一航向角、陀螺仪数据以及转换矩阵获第一时段内目标设备的第二航向角,第一时段在第二时刻之后;
31.位置估计模块,被配置为响应于步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置,第二时段在第一时段之后。
32.第三方面,本公开实施例中提供了一种电子设备,包括存储器和处理器;其中,存储器用于存储一条或多条计算机指令,其中,一条或多条计算机指令被处理器执行以实现如第一方面、第一方面的任一种实现方式中任一项所述的方法步骤。
33.第四方面,本公开实施例中提供了一种可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如第一方面、第一方面的任一种实现方式中任一项所述的方法步骤。
34.第五方面,本公开实施例中提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现如第一方面、第一方面的任一种实现方式中任一项所述的方法步骤。
35.本公开实施例的方案,通过获取第一时刻目标设备的陀螺仪数据以及线性加速度数据,以及第二时刻目标设备的重力计数据以及磁力计数据;根据线性加速度数据获取步伐检测结果以及步长估计结果;根据重力计数据以及磁力计数据,基于梯度下降算法进行计算,得到第二时刻的第一四元数;将陀螺仪数据作为卡尔曼滤波算法的输入,将第一四元数作为卡尔曼滤波算法的观测值进行计算,得到第二时刻的第二四元数;根据第二四元数获取转换矩阵以及第二时刻目标设备的第一航向角,并根据第一航向角、陀螺仪数据以及转换矩阵获第一时段内目标设备的第二航向角,第一时段在第二时刻之后;响应于步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置,第二时段在第一时段之后。其中,考虑到通过将陀螺仪数据作为卡尔曼滤波算法的输入,将第一四元数作为卡尔曼滤波算法的观测值进行计算得到的第二四元数准确率较高,因此基于第二四元数得到的第二航向角的准确率也较高,使基于第二航向角得到的第二时段的位置的精度较高,从而改善了用户体验
36.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
37.结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:
38.图1示出根据本公开实施例的定位方法的流程图。
39.图2示出根据本公开实施例的定位装置的结构框图。
40.图3示出根据本公开的实施例的电子设备的结构框图。
41.图4示出适于用来实现根据本公开实施例的方法的计算机系统的结构示意图。
具体实施方式
42.下文中,将参考附图详细描述本公开的示例性实施例,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施例无关的部分。
43.在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不想要排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
44.另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
45.相关技术中,为了提高室内定位的准确率,可以通过基于wifi的定位技术,利用室内环境中的多个wifi接入点的信号强度构建指纹图,从而进行位置估计。或者,也可以对移动终端的传感器数据进行数据融合,并根据数据融合结果检测用户的行走动作以及行走方向,并基于上述检测结果对用户进行位置估计。
46.然而,在上述方案中,考虑到wifi接入点的信号强度易受环境影响,从而导致上述方案中位置估计的稳定性较差。同时,考虑到对移动终端传感器数据进行数据融合的精度较差,容易使位置估计的误差较大,从而损害了用户体验。
47.为了解决上述问题,本公开提供了一种定位、装置、设备、介质及产品。
48.图1示出根据本公开实施例的定位方法的流程图,如图1所示,该方法包括步骤s101~s106。
49.在步骤s101中,获取第一时刻目标设备的陀螺仪数据以及线性加速度数据,以及第二时刻目标设备的重力计数据以及磁力计数据。
50.其中,第一时刻早于第二时刻。
51.在本公开的一个实施方式中,重力计数据可以理解为用于指示在以目标设备为原点的目标设备坐标系下重力场的大小和方向,磁力计数据可以理解为用于指示在目标设备坐标系下磁场的大小和方向。其中,考虑到,实际测量的重力计数据和磁力计数据会受到不可避免的噪声影响,如果将其直接作为卡尔曼滤波的观测值则会引入误差,为了提高姿态估计准确度,可以采用梯度下降算法将磁力计数据和重力计数据融合得到瞬时姿态估计,来修正陀螺仪输出的姿态误差。
52.在步骤s102中,根据线性加速度数据获取步伐检测结果以及步长估计结果。
53.在步骤s103中,根据重力计数据以及磁力计数据,基于梯度下降算法进行计算,得到第二时刻的第一四元数。
54.在本公开的一个实施方式中,示例性的,根据重力计数据以及磁力计数据,基于梯度下降算法进行计算,得到第二时刻的第一四元数的过程可以如下所示:
55.以第二时刻为k+1时刻为例进行说明,其中,k+1时刻的重力计数据为g
k+1
=[0,g
x,k+1
,g
y,k+1
,g
z,k+1
]
t
、磁力计数据为m
k+1
=[0,m
x,k+1
,m
y,k+1
,m
z,k+1
]
t
,k时刻的四元数为zk=[q
z0,k
,q
z1,k
,q
z2,k
,q
z3,k
]
t
,可以构建目标函数:
[0056][0057]
其中,fg(zk,g
k+1
)和fd(zk,d
k+1
,m
k+1
)分别表示由重力计数据和磁力计数据计算的目标函数。
[0058]fg
(zk,g
k+1
)可以通过下式计算得到:
[0059][0060]
fd(zk,d
k+1
,m
k+1
)可以通过下式计算得到:
[0061][0062]
其中,d
k+1
表示地球磁场倾角,可以看作只分布在地球表面水平和垂直方向,可由导航坐标系下的地球磁场方向h
k+1
确定,h
k+1
可以通过目标设备坐标系下的磁力计数据和转换四元数得到:
[0063][0064]
*表示对矩阵取共轭,表示克罗内克乘积,因此:
[0065][0066]
则目标函数的雅可比矩阵可描述为:
[0067][0068]
其中jg(zk)和jd(zk,d
k+1
)分别表示由重力计数据和磁力计数据计算的雅可比矩阵,可通过以下公式计算得到:
[0069][0070][0071]
根据目标函数和对应的雅可比矩阵,就可以得到目标函数的梯度:
[0072][0073]
最后,通过下式即可求得k+1时刻的姿态四元数z
k+1

[0074][0075]
其中,μk是由方向变化率的大小和采样周期决定的参数,可由实验得到。
[0076]
在步骤s104中,将陀螺仪数据作为卡尔曼滤波算法的输入,将第一四元数作为卡尔曼滤波算法的观测值进行计算,得到第二时刻的第二四元数。
[0077]
在本公开的一个实施方式中,示例性的,将陀螺仪数据作为卡尔曼滤波算法的输
入,将第一四元数作为卡尔曼滤波算法的观测值进行计算,得到第二时刻的第二四元数的过程可以如下所示:
[0078]
第一四元数z
k+1
可作为卡尔曼滤波的观测值,卡尔曼滤波在k时刻的状态量由表示姿态的四元数qk=[q
x0,k
,q
x1,k
,q
x2,k
,q
x3,k
]
t
和陀螺仪漂移三轴矢量值εk=[ε
x,k

y,k

z,k
]
t
组成,因此,k时刻的状态量定义为:
[0079]
xk=[q
x0,k
,q
x1,k
,q
x2,k
,q
x3,k

x,k

y,k

z,k
]
t

[0080]
状态方程和量测方程分别建立为:x
k+1
=fkxk+vk,zk=hxk+nk;
[0081]
其中,fk和h分别为状态转移矩阵和观测矩阵,vk和nk分别为服从高斯分布的系统噪声和观测噪声,服从高斯分布的系统噪声和观测噪声对应的噪声协方差矩阵分别为qk、rk。
[0082]
观测矩阵可构建为:h=[i4×4o4×3];
[0083]
其中,i4×4表示4*4的单位矩阵,o4×3表示4*3的全零矩阵。
[0084]
状态转移矩阵为:
[0085]
其中,f
w,k
可以通过下式得到:
[0086][0087]
wk=[w
x,k
,w
y,k
,w
z,k
]
t
为k时刻目标设备坐标系下的三轴陀螺仪数据,δt为采样时间间隔。
[0088]
根据角速度的模值可判断当前时刻的状态是动态还是静态,对两种状态分别设置不同的状态噪声协方差矩阵qk和观测噪声协方差矩阵rk,用于时间更新和观测更新过程,状态判断规则为:
[0089][0090]
γ为判断状态的阈值。
[0091]
根据构建的状态方程和量测方程,采用平方根无迹卡尔曼滤波算法进行计算,具体步骤包括初始化,计算sigma点,时间更新,观测更新和状态更新五个步骤。最终可以得到表示目标设备姿态的第二四元数q
k+1
=[q
x0,k+1
,q
x1,k+1
,q
x2,k+1
,q
x3,k+1
]
t

[0092]
在步骤s105中,根据第二四元数获取转换矩阵以及第一时刻目标设备的第一航向角,并根据第一航向角、陀螺仪数据以及转换矩阵获第一时段内目标设备的第二航向角。
[0093]
其中,第一时段在第二时刻之后。
[0094]
在本公开的一个实施方式中,示例性的,根据第二四元数获取转换矩阵以及第一
时刻目标设备的第一航向角的过程可以如下所示:
[0095]
基于第二四元数,可以通过以下公式转化为旋转矩阵和横滚角,俯仰角和航向角:
[0096][0097]
c表示由目标设备坐标系到导航坐标系的转换矩阵。
[0098][0099]
其中,φ,φ,分别表示横滚角,俯仰角和航向角,横滚角表示绕目标设备坐标系x轴旋转的角度,俯仰角表示绕目标设备坐标系y轴旋转的角度,航向角表示绕目标设备坐标系z轴旋转的角度。
[0100]
在本公开的一个实施方式中,示例性的,根据第一航向角、陀螺仪数据以及转换矩阵获第一时段内目标设备的第二航向角的过程可以如下所示:
[0101]
姿态变化量可由角速度即陀螺仪数据计算而来:
[0102][0103]
其中,表示第i步发生的时间段内目标设备坐标系下三轴陀螺仪数据的均值。
[0104]
若姿态变化不大则航向角不变,若变化过大则判断此时的位置是否在事先标记的转弯点处,若不是转弯点,则航向角依然不变,否则航向角改变90度,以此来校准直线行走时的航向角。至于增加还是减小90度则根据第i步时间段内导航坐标系下z轴陀螺仪数据变化量δn
z,i
确定,导航坐标系下的角速度数据n=[n
x
,ny,nz]
t
可由转换矩阵和目标设备坐标系下的角速度w=[w
x
,wy,wz]
t
得到:n=cw;
[0105]
其中,δn
z,i
由第i步发生的时间段内的导航坐标系下z轴陀螺仪数据积分得到:
[0106]
因此,第二航向角θi可由下式计算得到:
[0107][0108]
θ
i-1
表示第i-1步的航向角,ρ为姿态变化量阈值,通过实验自行设置。
[0109]
在步骤s106中,响应于步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置。
[0110]
其中,第二时段在第一时段之后。
[0111]
在本公开的一个实施方式中,示例性的,根据第二航向角、步长估计结果以及目标
设备在第一时段的位置获取目标设备在第二时段的位置的过程,可以如下所示:
[0112]
以行人第i步的二维位置即目标设备在第一时段的位置的坐标为(xi,yi),第二航向角为θi,步长估计结果所指示的步长为li为例进行说明,下一步的位置即目标设备在第二时段的位置可表示为:x
i+1
=xi+l
i cosθi,y
i+1
=yi+l
i sinθi。通过上式不断更新即可实现行人导航和轨迹重建。
[0113]
本公开实施例的方案中,通过获取第一时刻目标设备的陀螺仪数据以及线性加速度数据,以及第二时刻目标设备的重力计数据以及磁力计数据;根据线性加速度数据获取步伐检测结果以及步长估计结果;根据重力计数据以及磁力计数据,基于梯度下降算法进行计算,得到第二时刻的第一四元数;将陀螺仪数据作为卡尔曼滤波算法的输入,将第一四元数作为卡尔曼滤波算法的观测值进行计算,得到第二时刻的第二四元数;根据第二四元数获取转换矩阵以及第二时刻目标设备的第一航向角,并根据第一航向角、陀螺仪数据以及转换矩阵获第一时段内目标设备的第二航向角,第一时段在第二时刻之后;响应于步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置,第二时段在第一时段之后。其中,考虑到通过将陀螺仪数据作为卡尔曼滤波算法的输入,将第一四元数作为卡尔曼滤波算法的观测值进行计算得到的第二四元数准确率较高,因此基于第二四元数得到的第二航向角的准确率也较高,使基于第二航向角得到的第二时段的位置的精度较高,从而改善了用户体验。
[0114]
在本公开的一个实现方式中,根据线性加速度数据获取步伐检测结果,包括:
[0115]
根据线性加速度数据获取不同时刻目标设备在多个方向上的加速度矢量的矢量和;
[0116]
响应于目标时间范围内矢量和的最大值大于或等于第一矢量和阈值,且目标时间范围内矢量和的最小值小于或等于第二矢量和阈值,生成用于指示目标设备的用户行走一步的步伐检测结果,目标时间范围的时间长度小于或等于目标时间长度阈值。
[0117]
在本公开的一个实现方式中,根据线性加速度数据获取步长估计结果,包括:
[0118]
通过获取第i步的步长li,并根据li为获取步长估计结果,其中为第i步对应的时间范围内线性加速度数据中的三轴矢量和的最大值、为第i步对应的时间范围内线性加速度数据中的三轴矢量和的最大值最小值,k为常数。
[0119]
本公开实施例的方案中,考虑到在步伐检测时,如果行人采用平端手机的方式采集数据,在行走过程中垂直于地面方向的加速度数据随脚步变化呈周期性波动,然而当行人在行走时变换手机姿态时,垂直于地面方向的加速度数据将会影响步伐的检测。因此可以计算线性加速度的三轴矢量和,并对其做滑动平均处理,以滤除高频噪声,因此通过根据线性加速度数据获取不同时刻目标设备在多个方向上的加速度矢量的矢量和,并仅在响应于目标时间范围内矢量和的最大值大于或等于第一矢量和阈值,且目标时间范围内矢量和的最小值小于或等于第二矢量和阈值,生成用于指示目标设备的用户行走一步的步伐检测结果,可以提高步伐检测的准确率。
[0120]
在本公开的一个实现方式中,响应于步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置之前,方法还包括:
[0121]
根据获取第i步对应的时间范围内陀螺仪数据中三轴角速度矢量的均值其中w
x,i
为x轴方向上的角速度矢量,w
y,i
为y轴方向上的角速度矢量,w
z,i
为z轴方向上的角速度矢量;
[0122]
响应于步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置,包括:
[0123]
响应于大于或等于单步姿态变化阈值且步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置。
[0124]
本公开实施例的方案中,通过根据获取第i步对应的时间范围内陀螺仪数据中三轴角速度矢量的均值并响应于大于或等于单步姿态变化阈值且步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置,可以确保仅在目标设备的姿态变化较大时计算目标设备在第二时段的位置,避免在目标设备的姿态未发生较大改变时计算目标设备的位置,从而在不降低定位精度的前提下尽量减少了运算量。
[0125]
在本公开的一个实现方式中,响应于大于或等于单步姿态变化阈值且步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置,包括
[0126]
响应于目标设备在第一时段的位置与转向位置匹配、大于或等于单步姿态变化阈值且步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置。
[0127]
在本公开的一个实现方式中,响应于目标设备在第一时段的位置与转向位置匹配、大于或等于单步姿态变化阈值且步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置,包括:
[0128]
响应于第二航向角大于或等于转向航向角阈值、目标设备在第一时段的位置与转向位置匹配、大于或等于单步姿态变化阈值且步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置。
[0129]
本公开实施例的方案中,通过响应于第二航向角大于或等于转向航向角阈值、目标设备在第一时段的位置与转向位置匹配、大于或等于单步姿态变化阈值且步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置,可以确保仅在目标设备的姿态变化较大,且航向角变化较大时计算目标设备在第二时段的位置,避免在目标设备的姿态未发生较大改变,或航向角未发生较大改变时计算目标设备的位置,从而在不降低定位精度的前提下尽量减少了运算量
[0130]
图2示出根据本公开的实施例的定位装置的结构框图。其中,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。
[0131]
如图2所示,所述定位装置200包括:
[0132]
数据获取模块201,被配置为获取第一时刻目标设备的陀螺仪数据以及线性加速度数据,以及第二时刻目标设备的重力计数据以及磁力计数据,第一时刻早于第二时刻;
[0133]
步伐检测模块202,被配置为根据线性加速度数据获取步伐检测结果以及步长估计结果;
[0134]
第一四元数计算模块203,被配置为根据重力计数据以及磁力计数据,基于梯度下降算法进行计算,得到第二时刻的第一四元数;
[0135]
第二四元数计算模块204,被配置为将陀螺仪数据作为卡尔曼滤波算法的输入,将第一四元数作为卡尔曼滤波算法的观测值进行计算,得到第二时刻的第二四元数;
[0136]
航向角计算模块205,被配置为根据第二四元数获取转换矩阵以及第二时刻目标设备的第一航向角,并根据第一航向角、陀螺仪数据以及转换矩阵获第一时段内目标设备的第二航向角,第一时段在第二时刻之后;
[0137]
位置估计模块206,被配置为响应于步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置,第二时段在第一时段之后。
[0138]
本公开还公开了一种电子设备,图3示出根据本公开的实施例的电子设备的结构框图。
[0139]
如图3所示,所述电子设备300包括存储器301和处理器302,其中,存储器301用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器302执行以实现以下方法步骤:
[0140]
第一方面,本公开实施例中提供了一种模型训练方法,所述方法包括:
[0141]
获取第一时刻目标设备的陀螺仪数据以及线性加速度数据,以及第二时刻目标设备的重力计数据以及磁力计数据,第一时刻早于第二时刻;
[0142]
根据线性加速度数据获取步伐检测结果以及步长估计结果;
[0143]
根据重力计数据以及磁力计数据,基于梯度下降算法进行计算,得到第二时刻的第一四元数;
[0144]
将陀螺仪数据作为卡尔曼滤波算法的输入,将第一四元数作为卡尔曼滤波算法的观测值进行计算,得到第二时刻的第二四元数;
[0145]
根据第二四元数获取转换矩阵以及第二时刻目标设备的第一航向角,并根据第一航向角、陀螺仪数据以及转换矩阵获第一时段内目标设备的第二航向角,第一时段在第二时刻之后;
[0146]
响应于步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置,第二时段在第一时段之后。
[0147]
在本公开的一个实现方式中,根据线性加速度数据获取步伐检测结果,包括:
[0148]
根据线性加速度数据获取不同时刻目标设备在多个方向上的加速度矢量的矢量和;
[0149]
响应于目标时间范围内矢量和的最大值大于或等于第一矢量和阈值,且目标时间范围内矢量和的最小值小于或等于第二矢量和阈值,生成用于指示目标设备的用户行走一步的步伐检测结果,目标时间范围的时间长度小于或等于目标时间长度阈值。
[0150]
在本公开的一个实现方式中,根据线性加速度数据获取步长估计结果,包括:
[0151]
通过获取第i步的步长li,并根据li为获取步长估计结果,其中为第i步对应的时间范围内线性加速度数据中的三轴矢量和的最大值、为第i步对应的时间范围内线性加速度数据中的三轴矢量和的最大值最小值,k为常数。
[0152]
在本公开的一个实现方式中,响应于步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置之前,方法还包括:
[0153]
根据获取第i步对应的时间范围内陀螺仪数据中三轴角速度矢量的均值其中w
x,i
为x轴方向上的角速度矢量,w
y,i
为y轴方向上的角速度矢量,w
z,i
为z轴方向上的角速度矢量;
[0154]
响应于步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置,包括:
[0155]
响应于大于或等于单步姿态变化阈值且步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置。
[0156]
在本公开的一个实现方式中,响应于大于或等于单步姿态变化阈值且步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置,包括
[0157]
响应于目标设备在第一时段的位置与转向位置匹配、大于或等于单步姿态变化阈值且步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置。
[0158]
在本公开的一个实现方式中,响应于目标设备在第一时段的位置与转向位置匹配、大于或等于单步姿态变化阈值且步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置,包括:
[0159]
响应于第二航向角大于或等于转向航向角阈值、目标设备在第一时段的位置与转向位置匹配、大于或等于单步姿态变化阈值且步伐检测结果满足迈步条件,根据第二航向角、步长估计结果以及目标设备在第一时段的位置获取目标设备在第二时段的位置。
[0160]
图4示出适于用来实现根据本公开实施例的方法的计算机系统的结构示意图。
[0161]
如图4所示,计算机系统400包括处理单元401,其可以根据存储在只读存储器(rom)402中的程序或者从存储部分408加载到随机访问存储器(ram)403中的程序而执行上述实施例中的各种方法。在ram 403中,还存储有系统400操作所需的各种程序和数据。处理单元401、rom402以及ram 403通过总线404彼此相连。输入/输出(i/o)接口405也连接至总线404。
[0162]
以下部件连接至i/o接口405:包括键盘、鼠标等的输入部分406;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分407;包括硬盘等的存储部分408;
以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分409。通信部分409经由诸如因特网的网络执行通信过程。驱动器410也根据需要连接至i/o接口405。可拆卸介质411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器410上,以便于从其上读出的计算机程序根据需要被安装入存储部分408。其中,所述处理单元401可实现为cpu、gpu、tpu、fpga、npu等处理单元。
[0163]
特别地,根据本公开的实施例,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行上述方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分409从网络上被下载和安装,和/或从可拆卸介质411被安装。
[0164]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0165]
描述于本公开实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过可编程硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
[0166]
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中电子设备或计算机系统中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
[0167]
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1