基于安卓手机的移动物体位置与运动参数远程采集方法

文档序号:10637745阅读:1084来源:国知局
基于安卓手机的移动物体位置与运动参数远程采集方法
【专利摘要】本发明涉及一种基于安卓手机的移动物体位置与运动参数远程采集方法,手机Android操作系统通过手机内方向传感器、加速度传感器、陀螺仪和GPS采集获取物体在运动过程中的航向角、空间三轴加速度值、空间三轴角速度值和经纬度位置信息,对数据进行中值滤波算法误差矫正处理后,通过3G/4G网络将参数实时传输到服务器端,服务器端保存指定时刻的经纬度位置信息,GPS行驶距离每超过200米采集一次位置信息,服务器端同时对多个移动物体运动数据与位置信息进行监控,服务器端监控界面连接后台数据库保存或调取某一时刻位置数据在地图上进行区域性定位。仅一部安卓智能手机即可实现,不需要专用的仪器与无线通信模块,运行维护费用较低。
【专利说明】
基于安卓手机的移动物体位置与运动参数远程采集方法
技术领域
[0001]本发明涉及一种远程监测领域,特别涉及一种基于安卓手机的移动物体位置与运动参数远程采集方法。
【背景技术】
[0002]如何实时异地监控汽车,船舶等移动物体的经玮度位置信息,以及运动参数,是一个值得研究的问题。在安全监控,防盗设计等领域有重要的应用价值。
[0003]目前,对移动物体的位置与运动参数的远程监控一般采用专用的传感器、仪器仪表与无线传输设备,普遍存在系统复杂,运行维护费用较高的问题。

【发明内容】

[0004]本发明是针对对移动物体的位置与运动参数的远程监控存在的问题,提出了一种基于安卓手机的移动物体位置与运动参数远程采集方法,充分利用安卓智能手机内部的MEMS传感器(MEMS加速度计与陀螺仪)和GPS芯片实现对移动物体位置与运动参数的采集,并借助手机移动通信网络(3G/4G)将上述信息实时发送到特定的远程服务器上。
[0005]本发明的技术方案为:一种基于安卓手机的移动物体位置与运动参数远程采集方法,手机Android操作系统通过手机内方向传感器、加速度传感器、陀螺仪和GPS采集获取物体在运动过程中的航向角、空间三轴加速度值、空间三轴角速度值和经玮度、海拔位置信息,对传感器采集数据进行中值滤波算法误差矫正处理后,通过手机移动通信3G/4G网络将参数实时传输到服务器端,服务器端保存指定时刻的经玮度位置信息,GPS检测行驶距离每超过200米采集一次位置信息,服务器端同时对多个移动物体运动数据与位置信息进行监控,服务器端监控界面嵌入地图模块,同时连接后台数据库保存或调取某一时刻位置数据在地图上进行区域性定位。
[0006]所述方向传感器数据采集包括如下步骤进行:首先调用sensorManager获得传感器管理器,其次为方向传感器Sens0r.TYPE_ORIENTAT1N注册监听器,接着通过SensorEventListener接口监听传感器事件,从而获取传感器的值,仅提取方向传感器沿Yaw(Z)轴转过的角度值作为航向角,同时设置传感器数据频率为5Hz。
[0007]所述加速度传感器和陀螺仪数据采集步骤与方向传感器采集相同,仅注册监听器改为TYPE_ ACCELEROMETER和TYPE_ GYROSCOPE。
[0008]所述3G/4G网络传输采用TCP/IP协议作为通信协议,在通信两端各建立一个套接字,被用于描述IP地址和端口,一旦Socket被建立,通信两端之间便形成网络虚拟链路进行通信;
在服务端,需先对本地的通信端口进行初始化并开始监听等待客户端的连接请求;客户端同样需要先初始化本地的通信端口然后连接服务端的端口,当服务端同意客户端发出的连接请求后服务端与客户端就建立了一个连接,建立连接后服务端与客户端之间就能进行数据传输。
[0009]本发明的有益效果在于:本发明基于安卓手机的移动物体位置与运动参数远程采集方法,只需要一部安卓智能手机即可实现上述功能,不需要专用的仪器与无线通信模块,运行维护费用较低。随着智能手机的日益推广,本发明提出的测试方法无疑具有较好的适用性。
【附图说明】
[0010]图1为本发明基于安卓手机的移动物体位置与运动参数远程采集系统原理示意图;
图2为本发明基于TCP的Socket通信基本流程图;
图3为本发明系统采集端界面图;
图4为本发明系统监控端界面图。
【具体实施方式】
[0011]1、系统架构
移动物体运动参数采集系统是一个实时性采集多项运动参数的系统,该系统以当前发展最为迅速且功能强大的Android操作系统为参数采集开发平台。通过方向传感器、加速度传感器、陀螺仪和GPS来获取物体在运动过程中的航向角、空间三轴加速度值、空间三轴角速度值和经玮度、海拔等位置信息。并通过手机移动通信3G/4G网络将上述参数实时传输到服务器端,并可保存指定时刻的经玮度位置信息。由于智能手机中的传感器采集数据会有一定的误差,所以引入中值滤波算法进行误差矫正处理。矫正后,航向角精度为0.1°,加速度值和角速度值精度为0.01XPS行驶距离每超过200米(通常GPS误差相关性大于200米)采集一次位置信息。
[0012]服务器监控端界面主要采用Java语言编程,通过多线程(Thread)的编程思想可实现同时对多个移动物体运动数据与位置信息的监控。除了实时显示移动端获取数据外,监控界面还嵌入地图模块,可实时进行搜索,同时连接后台数据库保存或调取某一时刻位置数据在地图上进行区域性定位,系统原理示意图如下图1所示。
[0013]服务器端监控界面地图调取,位置信息的保存、调取与定位是本系统中的一个关键问题。鉴于对系统实际应用中的考虑,做了以下要求与技术处理:
1)考虑到操作系统的稳定性及API的扩展,要求Android系统采用4.0及以上版本,这样可以尽量保障系统运彳丁的稳定性以及功能的完整实现;
2)考虑到数据传输时的当前环境与传输距离,系统采用基于TCP/IP通信协议的手机移动通信3G/4G网络技术传输,这样可以尽量保障其实时性,并不受距离的影响;
3)考虑到传感器数据获取更新较快,系统服务器端仅保存由GPS获取的经玮度值,这样可以保障位置信息的有效保存,防止数据库崩溃。
[0014 ] 2、移动物体运动参数与位置信息获取方法
移动物体的速度、加速度、角速度、方向、位置信息等运动参数需要依靠相应的传感器和测试模块来获取。Android系统对传感器提供了强大的支持管理服务,移动物体硬件配置所需传感器后便可获取设备的外界条件,包括设备的运行状态、当前位置方向、外界的磁场、温度和压力等。Android系统提供驱动程序去管理这些传感器硬件,当传感器硬件感知到外部环境发生改变时,Android系统会通过传感器获取外部环境的数据,并将数据传给监听器。
[0015]在Android系统中开发传感器应用的步骤如下:
(I)调用 Context 的 getSystemService(Context.SENSOR_SERVICE )方法获取SensorManager对象,SensorManager对象代表系统的传感器管理服务。
[0016](2)调用SensorManager的getDefaultSensor(int type)方法来获取指定类型的传感器。
[0017](3)通常选择在 Ac t i V i t y 的 onRe sume ()方法中调用 Sen sorManager 的registerListener()为指定传感器注册监听即可。程序通过实现监听器即可获取传感器传回来的数据。
[0018]系统采用GPS功能对汽车运动的位置信息进行获取,Android系统为GPS功能也提供了强大的支持管理服务,以下对相关传感器采值与GPS定位作简要说明。
[0019]2.1移动物体运动方向获取方法
方向传感器又称“姿态传感器”,Android智能手机内部有配备。该传感器用于检测移动物体的方位变化。主要有三个参数,分别是移动物体沿Yaw值、Pitch轴和Roll轴转过的角度,或可简化为沿X、Y和Z轴转过的角度。Yaw(Z)轴的值表示方位,其方向垂直于地面而固定不变,读数就是一个电子指南针,当读数为零的时候移动物体首部指向正北,该角度的取值范围是0° —360° Witch(X)轴的值表示倾斜度,方向会随着移动物体姿态的变化而发生变化,且始终与Yaw( Z)轴垂直。Ro11 (Y)轴的值则表示移动物体沿着Ro 11 (Y)轴的滚动角度,其方向是与移动物体绑定的,始终是沿着屏幕向上。本系统仅提取方向传感器沿Yaw(Z)轴转过的角度值作为航向角。
方向传感器数据采集的方法可按照以下步骤进行:首先调用sensorManager获得传感器管理器,其次为方向传感器SensOr.TYPE_0RIENTAT10N注册监听器,接着通过SensorEventListener接口监听传感器事件,从而获取传感器的值,同时设置传感器数据频率为5Hz。最后对不需要的传感器解除掉,特别是当activity处于失去焦点的状态时,否则会使移动物体处于高耗电状态。
[0020]由于手机在测试移动物体的过程中,受到外界因素的干扰,容易出现偶然干扰信号,对结果产生一定的影响。因此,对于手机中方向传感器获取数据所产生的误差使用中值滤波法进行矫正处理。
[0021]2.2移动物体运动加速度获取方法
加速度传感器又称“重力感应器”,主要采集移动物体的运动状况,其获取的三个读数分别表示空间坐标中X、Y和Z方向上的加速度减去重力加速度在相应轴上的分量。Z轴方向垂直于移动设备向上,Y方向沿着屏幕方向向上,X方向沿着屏幕方向向左,其Y轴与Z轴的位置与方向传感器相反,X轴位置相同。本系统中需提取加速度传感器Χ、Υ和Z三个方向上读数。
[0022]加速度传感器数据采集的方法与方向传感器基本相同,API中定义ΤΥΡΕ_ACCELEROMETER 为 sensor 的加速度传感器常量,需改动 sensorManager.reg is terListener的第二个参数值,即传感器类型,第三个参数值即传感器数据获取频率仍为5Hz。
[0023]对于加速度传感器获取数据所产生的误差同样使用中值滤波法进行矫正处理。
[0024]2.3移动物体运动角速度获取方法
陀螺仪的读数主要反映了移动物体转动时的角速度变化率。陀螺仪的坐标系与加速度传感器的相同。逆时针方向旋转用正值表示,也就是说,从x、Y、z轴的正向位置观看处于原始方位的设备,如果设备逆时针旋转,将会收到正值。这是标准的数学意义上的正向旋转定义,而与方向传感器定义的转动不同。陀螺仪数据采集的程序设计与方向传感器,加速度传感器的基本相同,API中定义TYPE_ GYROS⑶PE为sensor的加速度传感器常量,需改动sensorManager.registerListener的第二个参数值,即传感器类型,第三个参数值即传感器数据获取频率仍为5Hz。
[0025]陀螺仪获取数据的误差矫正处理与方向传感器和加速度传感器的相同。
[0026]2.4移动物体海拔与经玮度位置信息获取方法
对于移动物体如手机用户来说,手机就是GPS定位系统的接收机,也就是说GPS定位需要手机硬件支持GPS功能。对于硬件满足GPS功能的Android移动设备来说,Android系统为GPS功能的开发提供了较为完整并且简便的应用程序,其为GPS功能支持提供了三个核心AP1: Locat1nManager,Locat1nProvider和Locat 1n ο Locat1nManager类用于产生GPS定位相关的服务、对象,通过调用Context的getSystemService()方法来获取。Locat1nProvider (定位提供者)对象就是定位组件的抽象表示,通过Locat1nProvider可以获取该定位组件的相关信息。Locat1n是一个代表位置信息的抽象类。GPS通过三个核心API获取位置信息的步骤为:首先获取系统的Locat1nManager对象,其次使用Locat1nManager,通过指定Locat1nProvider来获取定位信息,定位信息由Locat1n对象来表示。最后通过指定Locat 1nProvider获取经度、玮度、海拔等定位信息。
[0027]3、手机终端与监控服务器的数据通信方法
移动物体的运动参数与位置信息需通过无线网络才能保障实时传输,所以系统采用手机移动通信3G/4G网络技术。3G/4G网络是在2G网络的基础上发展的新一代支持高速数据传输的蜂窝移动通讯技术,并提高了语音通话安全性。
[0028]系统采用TCP/IP协议作为3G/4G网络传输的通信协议。TCP/IP通信协议是一种可靠的网络协议,它在通信两端各建立一个Socket,Socket又称为“套接字”,被用于描述IP地址和端口,是支持TCP/IP协议的网络通信基本操作单元。一旦Socket被建立,通信两端之间便形成网络虚拟链路。建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。基于TCP的Socket通信流程如图2所示。
[0029]在服务端,程序需先对本地的通信端口进行初始化并开始监听等待客户端的连接请求。客户端同样需要先初始化本地的通信端口然后连接服务端的端口,当服务端同意客户端发出的连接请求后服务端与客户端就建立了一个连接,建立连接后服务端与客户端之间就能进行数据传输。本系统采用的是Android与Java服务端通信,基于TCP的Socket通信客户端(Android端)的实现流程如下:
1)创建套接字(Socket)1JP地址和PORT号为非指定,由用户向输入框输入;
2)向服务端发送连接请求(Connect);
3)与服务端进行通信(Send/Recv);
4)关闭套接字。
[0030]Java对基于TCP协议的网络通信提供了良好的封装,在Java服务端的程序设计中主要通过ServerSocket类对象建立起一个服务端程序,并指定一个监听的通信端口。创建一个用户列表用于存放处理客户端连接的Socket对象,然后再创建一个线程池用于存放处理客户端通信的线程,每与一个客户端程序创建连接,程序就会创建一个线程专门负责服务端与客户端的数据传输。基于TCP的Socket通信服务端(Java端)的实现流程如下:
1)指定通信端口,创建线程池进入监听模式准备接受来自客户端的请求(Listen);
2)等待客户端请求,客户端发来请求后,服务端接受该请求并返回一个新的对应于该连接的套接字(Accept);
3)利用返回的套接字与客户端实现通信(Send/Recv);
4)返回等待另一个客户端的请求;
5)关闭套接字。
[0031]4、远程监控界面设计
系统服务器监控端主要包含两个部分:数据监控与地图搜索定位。数据监控部分用来实时显示Android智能手机传来的移动物体运动参数与位置信息,开发语言为Java语言。地图搜索定位部分用来实时搜索,并对某一时刻位置数据进行区域性定位,主要利用JavaScript脚本语言调用百度地图,并通过Java界面开发组件SWT的Browser控件动态显示地图。
[0032]监控界面的开发主要运用了 Java基础库中的Swing组件,Swing组件是由java最初的GUI组件AWT扩展而来的,提供了更多丰富的组件,并引入了新的概念和性能,使得基于Swing开发的⑶I应用程序更为灵活、方便、效率高。Swing是由javax.swing包提供的,主要包括两种类型的组件:顶层容器和轻量级组件。它们都以“J”开头。其中,顶层容器主要包含JFrame、JApplet、JDialog、JWindow等;轻量级组件主要是继承自AWT的Container类的JComponent类及其子类,主要包括JTextArea、JTextFielcUJButton、JMenu、JPanel、JScrollbar等。使用Swing编写⑶I程序时,利用JFrame类创建窗体,JTextArea控件用来显示接收到的数据。以下对监控端典型模块设计作简要说明。
[0033]4.1百度地图调用方法
百度地图API是百度为应用程序开发者提供的一个接口函数,开发者只需要在百度官网上申请一个开发者密钥,然后就可以引用百度地图的API,为自己的网站添加基于地图服务的功能实现二次开发。百度地图API有WEB、Android和1S三个版本,WEB版本是由JavaScript语言编写的应用程序接口。调用的百度地图API需要嵌入在SWT的Browser组件中才能进行动态显示,SWT组件是Java的另一种⑶I组件,常用于做资源管理器和浏览器之类。然后通过AWT中Canvas类创建一个shell窗口,将Browser嵌入到shell窗口中,则可在Swing开发的监控界面上同时显示地图。
[0034]4.2地图定位方法
地图定位功能采用AJAX+PHP+Apache+MySQL系统架构来实现。AJAX即“AsynchronousJavascript And XML”(异步JavaScript和XML),是现有DOM、JavaScript和XML等技术的集合。可有效改善以“请求-等待-请求”为交互方式的传统B/S网络结构响应速度慢,数据传输量低的缺陷。AJAX采用异步通信原理:用户将操作请求提交到Ajax引擎,由Ajax引擎带向服务器请求数据,在请求数据的同时可对服务器的返回数据进行解析,实现页面的局部刷新。整个过程是异步进行,在用户发出请求后可执行其他操作。
[0035]PHP( α Hypertext Preprocessor”,超文本预处理器)是一种被广泛应用的开放源代码的多用途脚本语言,可嵌入到HTML中,支持很大范围的数据库,用于连接后台编写需数据库支持的网页。
[0036]MySQL是目前最流行的一种关系型数据库管理系统,关联数据库将数据保存在不同的表中,增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言,且开放源码,便于做相关开发。
[0037]统将移动端发送的位置信息数据保存到MySQL数据库中,地图定位时,点击“调取数据”控件,服务器上的Apache获得请求,根据请求,PHP调取后台数据。发送“定位”信息给网页后,Apache将数据返回,Ajax局部刷新地图页面,对调取的数据在地图上做区域性标注。
[0038]4.3系统运行测试
以汽车运动参数采集为例,将Android智能手机水平固定于汽车内,测试并采集其运行时的运动参数及位置信息。手机端打开3G移动数据网络,监控端连接ChinaNet网络,服务器的IP地址为:101.225.224.191,端口号:80。监控端显示的为手机当前分配的IP地址和端口号。测试后系统采集端与监控端界面分别如图3、图4所示。由于加速度和陀螺仪的数值更新速度较快,所以截取两部分界面时无法达到完全同步,数值请参考航向值与位置信息。
[0039]测试结果表明:本系统具有采集精度较高,数据上传延迟低,操作简便等优点,可有效实现对移动物体运动参数与位置信息的采集与远程监控。
【主权项】
1.一种基于安卓手机的移动物体位置与运动参数远程采集方法,其特征在于,手机Android操作系统通过手机内方向传感器、加速度传感器、陀螺仪和GPS采集获取物体在运动过程中的航向角、空间三轴加速度值、空间三轴角速度值和经玮度、海拔位置信息,对传感器采集数据进行中值滤波算法误差矫正处理后,通过手机移动通信3G/4G网络将参数实时传输到服务器端,服务器端指定时刻的经玮度位置信息,GPS检测行驶距离每超过200米采集一次位置信息,服务器端同时对多个移动物体运动数据与位置信息进行监控,服务器端监控界面嵌入地图模块,同时连接后台数据库保存或调取某一时刻位置数据在地图上进行区域性定位。2.根据权利要求1所述基于安卓手机的移动物体位置与运动参数远程采集方法,其特征在于,所述方向传感器数据采集包括如下步骤进行:首先调用sensorManager获得传感器管理器,其次为方向传感器Sensor.TYPE_0RIENTAT10N注册监听器,接着通过SensorEventListener接口监听传感器事件,从而获取传感器的值,仅提取方向传感器沿Yaw(Z)轴转过的角度值作为航向角,同时设置传感器数据频率为5Hz。3.根据权利要求2所述基于安卓手机的移动物体位置与运动参数远程采集方法,其特征在于,所述加速度传感器和陀螺仪数据采集步骤与方向传感器采集相同,仅注册监听器改为TYPE_ ACCELEROMETER和TYPE_ GYROSCOPE。4.根据权利要求1至3中任意一项所述基于安卓手机的移动物体位置与运动参数远程采集方法,其特征在于,所述3G/4G网络传输采用TCP/IP协议作为通信协议,在通信两端各建立一个套接字,被用于描述IP地址和端口,一旦Socket被建立,通信两端之间便形成网络虚拟链路进行通信; 在服务端,需先对本地的通信端口进行初始化并开始监听等待客户端的连接请求;客户端同样需要先初始化本地的通信端口然后连接服务端的端口,当服务端同意客户端发出的连接请求后服务端与客户端就建立了一个连接,建立连接后服务端与客户端之间就能进行数据传输。
【文档编号】G01C21/00GK106017453SQ201610332647
【公开日】2016年10月12日
【申请日】2016年5月18日
【发明人】勾灿, 孙玉国
【申请人】上海理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1