一种基于步态的定位方法和装置的制造方法_3

文档序号:9371839阅读:来源:国知局
小来确定方向的。当磁传感器发生倾斜时,通过磁力传感器的地磁通量将发生变化,从而使方向指向产生误差。而加速度传感器可以感知由重力引起的加速度,从而可以计算出便携设备相对于水平面的倾斜角度,并进一步对磁力传感器产生的误差进行补偿。因此同时使用磁力传感器和加速度传感器,可以获知便携设备的面朝方向,并进一步推测所述便携设备携带者的行进方向。具体包括以下三个子步骤:
[0091]I)根据所述便携设备内的加速度传感器和磁力传感器输出的数值,计算得到所述便携设备的旋转矩阵。
[0092]旋转矩阵是用于表征所述便携设备当前的旋转状态的矩阵,求解旋转矩阵是获取所述便携设备方位信息(面朝方向)的基础,其求解过程需要同时使用加速度传感器和磁力传感器提供的数据,计算过程相对比较复杂,通常可以使用所述便携设备操作系统提供的API。例如在本实施例的一个具体例子中,所述便携设备是采用Android(安卓)操作系统的智能手机,因此直接调用Android系统提供的接口来生成所述便携设备的旋转矩阵,如下所示:
[0093]SensorManager.getRotat1nMatrix(rotateMatrix, null, accelerometerValues,magneticFieldValues);
[0094]其中,accelerometerValues是长度为3的数组,用于存放加速度数据,magneticFieldValues也是长度为3的数组,用于存放磁力传感器输出的数据,用这两个参数作为输入,调用SensorManager类提供的getRotat1nMatrix O函数就可以计算出所述便携设备的旋转矩阵rotateMatrix。
[0095]2)根据所述便携设备的旋转矩阵计算得到表征所述便携设备方位信息的设备姿态息O
[0096]根据已经计算得出的旋转矩阵可以进一步计算得到所述便携设备的姿态信息。本申请所述的姿态信息,是指便携设备相对于地球坐标系的方位信息,是所述便携设备相对于地球坐标系的各个坐标轴的旋转角度,反映的是所述便携设备的立体摆放位置。在这里,需要对地球坐标系做一个简要说明,请参考附图3,其为本申请所述地球坐标系的示意图,其中X轴与便携设备所在的地面相切,并且指向正西方向;Y轴与便携设备所在的地面相切,并且指向地磁北极(magnetic North Pole) ;Z轴指向地心,并且与便携设备所在的地面相垂直。
[0097]根据所述便携设备的旋转矩阵计算设备姿态,也可以直接调用所述便携设备所用操作系统提供的API。在本实施例的一个具体例子中,所述便携设备是采用Android (安卓)操作系统的智能手机,因此可以直接调用Android系统提供的接口来获取所述便携设备的姿态信息,如下所示:
[0098]SensorManager.getOrientat1n(rotateMatrix, values);
[0099]其中,rotateMatrix是便携设备的旋转矩阵,以该参数作为输入,通过调用SensorManager类提供的getOrientat1n O函数就可以得到所述便携设备当前的姿态信息,该信息存放在数组values中,以弧度为单位。为了便于使用该数据进行进一步的分析,可以使用Math类的toDegrees函数将该数组中的三个弧度值转换为通常使用的角度值。下面,对数组values中的三个角度值代表的含义分别进行说明:
[0100]values [O]:绕地球坐标系Z轴旋转的度数,通常也称为azimuth方向角,通常判断的东西南北就主要是看这个数据。其数据范围是-180?180,0表示正北,90表示正东,180/-180表示正南,-90表示正西。
[0101]values [I]:绕地球坐标系X轴旋转的度数,通常也称为pitch倾斜角,表示设备由静止状态开始前后翻转的角度。当设备的z轴朝着J轴正向旋转时,这个值是正值,反之,当设备的z轴朝着J轴的负向旋转时,这个值为负值。
[0102]values[2]:绕地球坐标系Y轴旋转的度数,通常也称为roll旋转角,表示设备由静止状态开始左右翻转的角度。当设备的Z轴朝着X轴正向旋转时,这个值是正值,反之,当设备的Z轴朝着X轴的负向旋转时,这个值为负值。
[0103]这样,通过上述三个数据就获知了所述便携设备的当前姿态。在本实施例的一个具体例子中,采用的是根据加速度传感器和磁力传感器的输出先计算旋转矩阵,再根据旋转矩阵进一步求解设备旋转姿态的方法。在其他实施方式中,也可以采用不同的计算方法,例如,如果便携设备内置了方向传感器(通常也是通过加速度传感器和磁力传感器抽象得到的),那么可以直接根据方向传感器的输出获知所述便携设备的姿态信息,这种实施方式也并不偏离本申请的核心,也在本申请的保护范围之内。
[0104]3)根据所述便携设备的设备姿态信息推测所述便携设备携带者的行进方向。
[0105]便携设备的携带者在使用便携设备进行位置定位时,通常采用手持便携设备、并且便携设备面朝携带者的方式,因此可以将便携设备背面的朝向推断为所述便携设备携带者的行进方向。由于在上面的计算中,已经获取了所述便携设备的姿态数据,也就是所述便携设备的正面朝向,因此可以将与所述便携设备正面朝向相反的方向推断为携带者的行进方向。
[0106]在本实施例的一个具体例子中,通过计算得到便携设备的姿态数据valueS[0]为90度,说明所述便携设备当前面朝正东(便携设备的背面朝向正西),那么就可以据此推断该设备携带者的行进方向为正西方向。
[0107]在具体实现过程中,可能还需要考虑一些特殊情况,例如所述便携设备携带者手持便携设备时,不是将所述便携设备的正面准确地朝向自己,而是有一定的倾斜角度,那么所述便携设备的背面朝向与该设备携带者的行进方向就不完全一致了,而是存在一个角度差,这种情况下如果仍然单纯使用所述便携设备的姿态数据推断所述便携设备携带者的行进方向,就会与真实的行进方向产生偏差,后续依据该方向计算的定位点自然也就与真实的位置相差比较大。
[0108]为了避免上述问题,在推断所述便携设备携带者的行进方向时,一方面要以已经获取的姿态数据作为依据,同时还需要兼顾考虑加速度传感器的输出。因为加速度传感器可以输出所述便携设备的三个方向的加速度数据,通过对三个方向的数值进行矢量分解或求和,可以计算出所述便携设备的前进方向与所述便携设备面朝方向的夹角,利用该夹角信息,对所述便携设备的背面朝向(面朝方向的相反方向)进行调整,就可以获取该设备携带者比较准确的当前行进方向了。
[0109]步骤104:根据所述步伐状态、所述行进方向、和所述便携设备携带者的步伐大小值以及所述第一位置的位置信息,计算所述便携设备的第二位置。
[0110]获知了所述便携设备携带者的行进步伐和行进方向,就可以在第一位置的基础上,计算得到所述便携设备的第二位置。该计算过程包括计算行进距离和进行向量累加这两个子步骤,下面分别进行说明。
[0111]I)根据所述步伐状态和所述步伐大小值,计算所述便携设备携带者的行进距离。
[0112]本申请所述的便携设备携带者的步伐大小值,即为所述携带者迈出完整一步的长度。该值可以采用固定的能够代表大部分行人步伐大小的经验值;也可以在所述经验值的基础上根据所述携带者自身的行进状况进行动态调整,具体的调整方式在后文中有相关的说明。
[0113]在上述步骤102中已经获取了所述携带者的步伐状态,例如,所述携带者从所述第一位置迈出了完整的两步,用检测出的步数乘以所述携带者的步伐大小值,就得到了所述携带者从所述第一位置出发,行进的具体距离,例如,所述步伐大小值是预先定义好的经验值0.8米,那么所述便携设备携带者迈出两步,行进的距离为0.8x2 = 1.6米。这里所采用的步伐大小值为0.8米,仅仅是示意性的,在不同的实施方式中可以为该参数设置不同的值。
[0114]2)在所述第一位置的基础上,以所述行进方向为方向,以所述行进距离为长度进行向量累加,得到所述便携设备的第二位置。
[0115]在便携设备当前所处区域的坐标系中,在所述第一位置的基础上,以推断出的行进方向为方向,以上面计算出的行进距离为长度进行向量累加,就可以得到所述便携设备的第二位置。也可以这样理解,根据行进方向,将行进距离分解到当前区域坐标系的X轴和y轴方向,即:获取当前行进距离在X轴和I轴的分量,并将该分量值分别与所述第一位置的x、y坐标相加,就得到了第二位置的坐标。
[0116]在本实施例的一个具体例子中,所述便携设备所在区域的坐标系采用正东方向作为X轴的正向,采用正北方向作为y轴的正向(请参见附图4),第一位置的坐标为(3,2),此后,检测到所述便携设备携带者朝东偏北30度的方向行进了 2.4米(迈出了三步,每步0.8米),那么该行进距离在所述区域坐标系的X轴方向的分量为2.4Xcos30 = 2.1米,在y轴方向的分量为2.4Xsin30 = 1.2米,与第一位置的坐标相加,得到了当前位置(即:第二位置)的位置坐标(5.1,3.2)。
[0117]计算得到第二位置的信息后,在主定位方法没有提供新的主定位位置信息的情况下,将该第二位置设置为新的第一位置,因为所述便携设备携带者还在行进,因此下一次的计算就是基于本次更新的第一位置的位置信息继续进行向量累加。
[0118]在上述具体例子中,在所述便携设备携带者行进三步后进行所述第二位置的计算,考虑到所述便携设备携带者在行进过程中可能改变方向,也可就是说所迈出的相邻步伐的方向可能并不相同,这种情况下采用上述更新方法得到的结果就不够准确。因此,在具体实施时,可以采用每检测到一个完整的迈步动作就计算一次第二位置的优选实施方式,采用这种方式,不需要执行上述I)中关于行进距离的计算,直接执行2)中的步骤:以所述行进方向为方向,以所述步伐大小值作为长度进行向量累加,得到所述便携设备的第二位置,从而能够相对实时准确地反映出所述便携设备携带者的位置变化。
[0119]此外,在计算第二位置的过程中,需要使用所述便携设备携带者的步伐大小值参数,该参数的具体取值,可以使用固定的预先设定的经验值,例如:0.8米。为了获得更优的实施效果,本申请还提供了一种通过计算主定位点之间的距离和统计所述便携设备携带者的行进步伐的数目,采用线性回归的方法对所述步伐大小值进行动态调整的方法,所述方法包括三个阶段:
[0120]I)制定计算步伐大小的线性函数。
[0121]在本实施例的一个具体例子中,制定的计算步伐大小的线性函数为:
[0122]Size = B1XYnaJa2XYnin0
[0123]其中,Size是步伐大小,Ynax是一个完整步伐中y轴加速度的最大值,Ynin是一个完整步伐中I轴加速度的最小值,而%和a2则是需要通过线性回归方法确
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1