一种基于运动轨迹的室内定位系统∗

2019-11-12 06:38禤永哲詹万汇陈少锋
计算机与数字工程 2019年10期
关键词:加速度轨迹终端

禤永哲 詹万汇 陈少锋 孙 劲

(广州大学华软软件学院 广州 510990)

1 引言

目前在室内定位领域,室内人员的定位主要有GPS 定位、基站定位和WIFI 定位三种[1],但是这三种定位存在以下缺陷:

1)GPS 定位是通过人造卫星进行定位的,通常要在室外露天的状态下才能进行定位,当信号被遮挡或者削减时,GPS 定位会出现漂移。且GPS 定位其定位的精度低,无法实现在小范围场所内运动的物体进行定位[2]。

2)基站定位是通过识别网络中哪一个小区传输用户呼叫并将该信息翻译成纬度和经度来确定用户位置[3],只能进行模糊的定位,优点是在室内都能进行定位,但是其定位精度很低[4]。

3)WIFI 定位在一定空间内布设能发出WIFI的热点设备,并记录每个热点设备的坐标和设备号,而定位端只要侦听到每个热点之间的信号强弱,根据信号强弱得知物体距离每个热点的距离,再结合每个热点的坐标进行运算[5],从而就能计算出物体此时所在的位置,但缺点是要事先对需探测的区域布置热点,灵活性差。

故此,本设计通过检测人员在室内的运动轨迹,实现一种以惯性导航为思维导向[6],并和GPS定位相结合的室内定位系统。

2 系统总成

一种基于运动轨迹的室内定位系统,整个系统包括移动端和终端平台端。

移动端以54 路输入输出,8 位内核的Arduino Mega2560 R3为处理器[7],处理器接上九轴传感器、GPS 定位模块和HC-24 WIFI 模块。在移动端上,对数据进行初步处理。从九轴传感器上的加速度传感器、陀螺仪、地磁传感器获得的运动数据测算得出当前人员的运动轨迹,进而获得相对位置;从GPS 定位模块也可获得经纬度,进而获得绝对位置,并可作为为位置定位提供辅助。通过HC-24 WIFI模块将信息通过WIFI网络向终端平台传输。

终端平台端由WIFI 发射器和上位机组成,是以平台上的上位机为中心,利用高增益天线和无线路由,通过WIFI网络接收来自移动端的数据信息,并对其进行解析和处理,通过基于C++图形用户界面的Qt程序[8]呈现出来。

图1 系统总体框架图

3 具体实施

3.1 基于运动轨迹的室内三维定位图的测绘

系统的移动端上整合了由陀螺仪、加速度传感器、地磁传感器所组成的9轴运动姿态传感器[9],通过此传感器,我们可以测出地磁偏角、加速度和物体运动水平旋转角,将这三组数据结合起来,通过特定算法计算可以获得运动偏转方位角和运动向量,这两个数据最终会经过事先布置的高增益WIFI网络向终端平台传输。

终端平台上搭载Qt 应用程序,运用OpenGL 开放图形库在系统上建立一个三维直角坐标系[10],当平台每次接收到运动信息时,会在三维坐标系上通过三角函数运算以及运动向量叠加,从而得到人员在室内所处的位置,并将室内人员不同时期的一系列位置坐标记录下来,形成运动轨迹记录,以此实现三维室内实时定位图。

本设计的三维图形是由三维坐标点glVertex3f(x,y,z)构成的,通过方法glBegin(type)开始连接各个坐标点,而后通过方法glEnd()结束连线,形成可视图形,若在Qt 程序上使用方法qglColor(Qt:color),能改变绘制的线段、图形的边线颜色。通过方法updateGL()实现图形界面的实时刷新[11],将绘制的三维图形呈现出来。

3.2 通过九轴运动姿态传感器获取偏转方位角

人体在行走的时候重心会近似正弦曲线般上下运动[12],此规律可用于判断佩戴设备的人员是否在行走。通过九轴运动姿态传感器内置的地磁传感器可以计算出磁场方向,再通过陀螺仪获取传感器自身的倾斜程度,最后通过九轴运动姿态传感器内部集成的姿态结算器将磁场方向和倾斜程度进行综合计算[13],处理之后直接从传感器获取的就是地磁方位角信息,此方位角就是绝对方向的偏转角度。为此还设计了消除初始角度的程序,每次启动移动端时,首先会读取前300 个角度数值,然后抛弃不稳定的前20 个值,将剩下的280 个值相加,并除以280,从而得到初始角度平均值记为θ ,从第301 个值开始,之后每次获得的角度都相应减去θ ,并将其转换成弧度,最终获得系统所要用到的相对的方位角弧度r,并将r 传到上位机进行处理。

3.3 通过九轴运动姿态传感器获取位移信息

通过内置的加速度传感器可以获取到人体运动时三个方向的加速度,这三个加速度的变化情况可以用于判断人体行走的步数,步数可作为统计间隔。具体实现为每50ms从传感器中读取到x、y、z 轴上的原始加速度,在卡尔曼滤波处理后,可实现数据降噪的效果[14],得到加速度ax、ay、az,之后每次都会将三个轴获取的新值记录下来且新的值都会与上一个值对应相减,从而得到加速度增量Dax、 Day、 Daz,代 入 以 下 公 式 :得出x、y 、z 轴的加速度向量的模D,如图2 所示向量模D 的大小反映了人体行走时重心的频率,当D 值的大于40 的次数超过3 次时记为行走一步。每次当有新的行走步数出现时会发出中断信号,系统会根据此时段每一步三轴加速度大小来判断每一步的步长,步长就会作为位移增量S ,将S 传到上位机进行处理。

图2 行走时重心改变频率指数

3.4 终端平台三维室内定位图的绘算

终端平台从移动端接收到数据后,经过数据分拣,获取到设备佩戴人员正面朝向的方向和设备启动时的起始位置正前方所成的相对夹角弧度r,以及室内人员每一步的位移增量S ,并利用三角函数计算出x 轴上的位移偏移量Sx,以及y 轴上的位移偏移量Sy。再与上一次计算得到的坐标进行叠加运算,然后运算出当前的新坐标,从而实现室内定位功能。而每个坐标点之间通过线连接成的线段,正是人员在室内的运动轨迹线段。 Sx、Sy均是由分类讨论的方式获得,具体讨论方式如下。

r 为相对偏转夹角弧度,S 为每一步伐两腿间的直线距离,Sx、Sy分别为S 在x 轴、y 轴上的偏移分量。

1)若0 ≤r<π 则有

2)若π ≤r<2π 则有

图3 不显示轨迹的三维室内定位图

图4 显示运动轨迹的三维室内定位图

3.5 绝对位置坐标的获取

当移动端正处于某个GPS信号较好的环境时,系统会自动通过GPS 定位模块获取到人员当前的经纬度信息。尤其是在作业处于就绪状态时,设备处于露天的室外环境中,若这时启动系统,系统会通过GPS 定位模块获取此时人员的经经度、纬度信息。然后将人员先前测算出的运动轨迹与GPS模块间断获取的绝对经纬度信息和百度地图结合起来,可实现在百度地图上显示人员的运动轨迹,从而实现更加精确的室内定位。

图5 通过GPS模拟作辅助性定位

4 结语

本定位系统对于某些特殊场景下的定位有着重大意义,最典型的场景就消防人员进行救援时所处的火场中。火灾现场通常是处在复杂楼内环境中,因此没有良好的露天环境去接收GPS 信号[15],仅仅进行GPS 定位,更不可能在火灾发生时布置好特定位置的WIFI 热点,所以单纯的GPS 定位和WIFI 定位不适用,同时消防员的运动范围一般不会很大,可能就在一个小范围内进行作业,因此通过基站定位的精确度也达不到这个要求。定位系统可以很好地解决在这种场景下的定位问题。上位机可以将定位信息通过三维图像的形式展现给指挥人员看,方便指挥人员了解到各个消防员现在所处位置,指挥人员能更灵活地指挥现场,提高火灾救援效率。

猜你喜欢
加速度轨迹终端
从电话到自媒体终端——信息的力量
“鳖”不住了!从26元/斤飙至38元/斤,2022年甲鱼能否再跑出“加速度”?
解析几何中的轨迹方程的常用求法
复杂线束在双BCI耦合下的终端响应机理
X美术馆首届三年展:“终端〉_How Do We Begin?”
轨迹
轨迹
创新,动能转换的“加速度”
死亡加速度
“吃人不吐骨头”的终端为王