APP下载

基于机器学习的智能引路手环的设计与实现

2019-11-13罗成立

关键词:手环路段服务器

罗成立,黄 锋,林 伟

(1.阳光学院人工智能学院,福建 福州 350015;2.阳光学院空间数据挖掘与应用福建省高校工程研究中心,福建 福州 350015;3.阳光学院软件技术研发中心,福建 福州 350015)

随着社会的发展,智能化设备在逐渐增多,如智能手表、智能手机、智能机器人等.各类方便人们出行的设备层出不穷,给人们带来了巨大的便利;例如智能手机上安装的高德地图等电子地图,通过实时获取使用者的GPS 位置,对照电子地图中已存在的地图数据,分阶段引导使用者前行,以达到导航功能,几乎是人们出行中必不可少的工具.虽然电子地图能够实现导航功能,但是普遍存在两类问题:(1)对于一些不精通电子产品的人员来说,较难看懂导航方案,导致无法正确按照导航路径行走;此类问题的核心在于如何提高导航方式的直观性;(2)对于一些系统中没有记录的无数据路段,则无法实现导航,此类问题的核心在于如何做到导航路线的自动生成.

导航相关课题一直是研究热点,但当前国内外学者主要针对导航精度及可靠性的提高等问题,如农业机械高精度自动导航[1-4]及室内导航精度的提高[5-10]等.而较少关注导航方式直观性的提高及导航路线的自动生成[11-13].鉴于此,本文设计了一个引路手环系统旨在提供一种更加直观的导航新模式,并引入机器学习技术解决了导航路线自动生成的问题.

1 系统设计

为解决路痴、小孩、探险者等群体在出行过程中的导航问题(导航方式直观性不足及导航路线无法自动生成等问题),本文设计了一个智能引路手环系统.系统采用的技术方案如图1 所示,设计一个智能引路手环通过蓝牙4.0 与智能移动终端连接,同时智能移动终端使用TCP 协议通信与云服务器连接.

图1 系统框图Fig.1 System block diagram

该设计与其他导航系统最大的不同之处在于,导航方式更加直观形象.当用户不知道方向时,只需抬起佩戴手环的手,并水平移动手臂,当手臂方向和正确行进方向一致时,手环会发出震动,以更加直观、更加形象的方式为用户引路.为解决无数据路段的导航问题,系统具备了路径学习功能,当开启了路径学习功能后,系统自动记录沿途GPS 信号,返程或下次行走该路段时,就可以通过该段数据实现导航.

2 引路手环的设计

2.1 手环硬件的设计

智能引路手环的硬件框图如图2 所示,由STC12系列单片机作为控制器,包括CC2541 蓝牙4.0 模块、GY-26 电子罗盘模块、HMC5883 倾角传感器、微振动电机、电源模块与LCD 显示器等.蓝牙4.0 模块通过串口与单片机通信,电子罗盘模块则是通过IIC 与单片机通信,倾角传感器输出模拟量输入到单片机的AD 输入口,微振动电机采用手机上使用的振动器.为此单片机采用具有双串口和AD 功能的低功耗高性能STC12 系列单片机.

由于手环为搭载电池进行工作所以需要对电量的消耗进行严格控制,需使用低功耗器件进行设计,以增加手环的待机时间.数据传输连接采用CC2541蓝牙4.0 模块,依靠其低功耗,传输速率高的特点,用于手机与手环之间的通信,且通信仅在需要的时候发生.同时手环中不配备GPS 和GPRS 等芯片,手环将不做复杂的数据处理以及数据的存储.

图2 智能手环的硬件设计框图Fig.2 Hardware design block diagram of intelligent Bracelet

电子罗盘数据读取的正确与否直接影响导航的精度.电子罗盘芯片仅需连接电源和信号地以及DAT三个管脚,DAT 引脚与单片机的一个通用I/O 口相连.经过多次测试和数据拟合,得到电子罗盘读取流程及算法如图3 所示,首先进行初始化设置及配置IIC 接口,实现对电子罗盘内部寄存器的读取,得到三轴加速度信息[14],进一步换算得到方位角结果,并将计算结果存入SBUF.

图3 电子罗盘模块程序框图Fig.3 Program block diagram of electronic compass module

2.2 直观的导航新模式设计

普通电子地图的导航模式不够直观之处在于其导航路线及导航行进方向全部描绘在手机上,对于一些方向感较差的人士很难准确又快速的应用到自己上来,所以问题的关键在于如何将虚拟和现实相连.解决的核心思路在于将APP 上导航朝向与行进者的肢体指向联系起来.为此,在手环端安装电子罗盘模块进行手臂水平朝向方位判别,与从上位机提供的实时行进方向相比,当两者方向在误差范围内时,手环端的微振动电机及液晶显示器将会做出提示,意味着手臂的指向就是行进方向.

兼顾考虑低功耗和智能操控方式,不再采用按键控制,采用倾角传感器来实现手势控制.当用户手臂水平抬起超过1S,手环自动通过蓝牙4.0 向上位机索要实时行进方向,并判断当前手臂方向是否是正确行进方向.

3 手机端及服务器端软件设计

手机端软件设计成微信小程序形式,与APP 相比,小程序给用户手机带来的负担更轻,推广成本也更低.小程序采用了HTML5+CSS+JavaScript[15]的相关技术.小程序开发框架的逻辑层是由JavaScript来编写的.此逻辑层进行了数据的处理并发送给视图层,与此同时接受视图层的事件反馈.而小程序开发框架的视图层是由WXML 与WXSS 来编写的,由组件来进行展示.利用了逻辑层的数据反应成视图,与此同时将视图层的事件发送给逻辑层.整个小程序的功能框图如图4 所示,涵盖九大功能.

图4 功能模块图Fig.4 Function Module Diagram

3.1 服务器与智能移动终端的通信协议

云导航服务器与智能移动终端之间使用TCP 协议通信连接,在智能移动终端在线状态下,依据用户的设置(如允许联网情况下从导航服务器获取导航信息),可以直接从导航服务器获取导航信息.导航信息采用分阶段引导用户前进,以具备更好的导航作用.分段导航数据指的是经由导航服务器将完整的导航路径数据细分成多段数据,每段都有一个过程目的地,最后一个过程目的地即为终点.

手机和服务器间每间隔预设时间段,如2s 通信一次,手机报告出用户实时GPS 位置(即经纬度)和2s 内的真实路程.服务器计算出用户的实时位置和与当前过程目的地间的距离,当距离小于0.5m 时,意味着出行人员已经到达这点,则重新计算与下个过程目的地的距离;当距离大于0.5m 时,意味着还没到达这点,则求出两点间所连直线与正北方向的夹角(正北为00),并发给手环.手环接收到角度信息后,用户通过指南针模块确定自身的朝向(依然以正北为00),两个角度相减后便可求得接下来的前进方向.在野外无网络的地方,可以在系统选择单机学习路线数据,并用于导航,但无法访问历史路线.

3.2 无数据路段的路径学习

无数据路段的路径学习功能为此智能引路手环的特色所在.所谓无数据路段就是指现有电子地图(如百度地图等),这些路段虽然现有电子地图上没有数据,但是依然可以接收到GPS 信号,用户可以自定义记录行走路线上所有点的GPS 信号,返程或下次途经同一个路段就可以用于导航.要实现该功能,首先需对定位信号进行了筛选,将获取的定位精度大于等于25 的定位认为可取定位,而小于25 的定位将其默认为定位偏移并将其抛弃.每次定位都将与上一次定位进行一次距离计算,将距离小于1m 的默认为无行走定位,将其抛弃;而距离超过正常人可行距离(3∗timeRun m)也将其认为定位偏移并抛弃;只有将其正常的定位点记录下来.每1 秒循环一次定位,直至用户手动停止学习路径.学习路径设计流程图如图5 所示.学习的路径可以保存在本地,也可以保存在服务器上,保存在本地的路径可以用于户外无网络时的导航.

图5 学习路径设计流程图Fig.5 Flow chart of learning path design

3.3 行径方向角的计算

另一个重要的算法就是行进方向的计算,每条路线都由定位后的经纬度组合而成的.通过当前目标的经纬度与用户当前定位的经纬度计算其方向做成指引方向.当用户走到一定的目标范围内,便将其定位点删除,再推出新的定位点并计算方向.定位的精度又成为方向指引的重中之重,故将其定位精度小于25 的定位都抛弃.方向指引设计的流程图如图6 所示:

图6 方向指引设计流程图Fig.6 Direction Guidance Design Flow Chart

4 系统测试

本系统的使用过程如下:使用时,手环通过蓝牙与手机相连,当用户需要知道准确方向时,用户水平抬起手臂1 秒左右,手环向手机发送读数据请求,而后智能移动终端才会将用户当前位置的经纬角数据发送到手环,手环上的CPU 判断手臂方向是否与前进方向一致,如果一致发出振动信号,提示用户按照当前方向继续前进.尤其在十字路口时,当用户不知道方向,只需抬起带着手环的手,并水平移动手臂,当手臂方向和正确行进方向一致时,手环会发出震动,以更加直观更加形象的方式为用户引路.

手机端的程序采用微信小程序形式.无数据路段路径学习部分运行界面如图7 所示,该图展示无数据路段的路径学习,路径保存及路径列表功能.路径导航部分运行界面如图8 所示,该图展示导航界面,方向指引图及利用网络数据进行导航的界面.

针对系统2 个关键性功能做了重点测试.第一是无数据路段路径学习功能测试,测试地址就放在笔者所在学校,因本校地处山上,GPS 的定位不够稳定,但我们采取抛弃定位精度低的点,同时两个定位点的距离需要超过1 米(否则默认为用户保持静止)的两个原则,最终小程序上的记录路线,与实际行走路径基本一致,无太大的误差,完全可以用于导航.第二是路线方向指引功能测试,软件上充分考虑了硬件定位可能不稳定的问题及用户不一定会完全跟随着目标点行走等问题,结果表明能够实现路径导航.

图7 无数据路段路径学习功能截图Fig.7 Screenshots of Path Learning Functions for Road Segments without Data

图8 路径导航功能界面截图Fig.8 Screenshot of Path Navigation Function Interface

5 结论

本文应用蓝牙通信技术、卫星实时定位技术、电子罗盘方位定位技术、手势检测技术及机器学习技术,设计了一个智能引路手环系统,实现了对方向感不好的用户直观形象化导航,提高导航效率;同时也实现了任意路段的路线学习并用于实时导航而不受环境限制.经过实际测试,导航模式有效且较为可靠,且手环结构简单、实用性强,具有很好的推广运用前景.

猜你喜欢

手环路段服务器
冬奥车道都有哪些相关路段如何正确通行
通信控制服务器(CCS)维护终端的设计与实现
PowerTCP Server Tool
基于XGBOOST算法的拥堵路段短时交通流量预测
高速公路重要路段事件检测技术探讨
疯狂编辑部之智能手环
基于元胞自动机下的交通事故路段仿真
基于元胞自动机下的交通事故路段仿真
得形忘意的服务器标准
计算机网络安全服务器入侵与防御