井下位置服务系统设计

2022-03-28 11:51杜志刚储楠罗克
工矿自动化 2022年3期
关键词:位置服务基站定位

杜志刚,储楠,罗克

(1.中煤科工集团常州研究院有限公司,江苏 常州 213015;2.天地(常州)自动化股份有限公司,江苏 常州 213015)

0 引言

煤矿井下是一个特殊的作业空间,位置信息对于井下安全生产作业具有重要作用。一方面,矿井作业人员位置跟踪为考勤管理提供了有效手段,灾时救援人员实时定位可保障救援行动安全可控,采掘装备对操作人员实时位置感知可以有效保证人机作业安全;另一方面,机车位置跟踪可提高运输调度管理水平和生产效率,采掘装备自身位置感知和相互位置感知是实现装备之间协同作业的重要基础[1]。

位置服务旨在提供目标对象精准的实时位置信息,包括位置获取、位置传输和位置信息服务[2],是建立在定位基础上的服务,井下定位系统的定位精度、实时性直接决定位置服务的成败。然而,国内井下定位系统存在以下问题[3]:①目前大部分定位系统仍是区域定位,定位精度普遍小于3 m,容量标准是80 个并发标志卡,响应时间一般大于1.5 s,无法满足高精度、快速移动的位置监测和服务需求。② 定位系统初期针对单一需求设计,采用单体式架构,所有业务固化在一个复杂的单体应用中,各业务之间耦合性强,可扩展性差,而井下不同应用场景要求位置服务系统必须开放服务架构。③单体式定位系统所有的业务数据存储在同一个数据库中,每一个业务的处理能力都受到数据库承载能力的制约。④ 定位系统仅支持区域或巷道一维定位,智能化采掘设备不仅有水平方向运动,还有垂直方向等多自由度运动过程,人机协同安全作业需要二维或三维空间的位置服务信息。

为避免井下定位系统对位置服务的影响,本文设计了一种井下位置服务系统。该系统采用基于Docker 的微服务架构,松散各业务之间的耦合性;采用超宽带(Ultra Wide Band,UWB)无线定位技术实现对井下目标厘米级定位,并通过数据优化算法对测距结果进行优化;引入时序数据库,提高数据访问能力;具有面向服务的应用层位置服务接口,可提供井下目标高精度实时位置信息。

1 系统架构

井下位置服务系统采用基于微服务架构的开发框架[4],主要由井下位置服务基础设施、数据驱动模块、位置服务管理控制中间件、位置服务接口和数据库组成,如图1 所示。

图1 井下位置服务系统架构Fig.1 Architecture of underground location service system

1.1 井下位置服务基础设施

井下位置服务基础设施主要由定位标志卡、定位基站、接收器和网关等硬件设备组成。接收器与定位标志卡实时通信,通过UWB 定位技术获得定位标志卡到锚节点的距离信息,定位结果经算法优化后,汇聚存储至定位基站,等待相关模块读取。

1.2 数据驱动模块

数据驱动模块是系统的核心,主要实现数据巡检、数据接入、数据优化和控制命令转发等功能,模块内部数据传输采用AES 对称加密算法,保护系统数据安全和井下敏感数据。①数据巡检:采用线程池管理多线程,并发巡检定位基站,获取目标对象基本位置信息。② 数据接入:按照相关协议和规范,对定位数据进行解析,并且按照统一数据规范写入软总线中。③数据优化:主要通过高精度定位数据优化算法、轨迹关键数据提取算法和数据压缩算法等对定位数据进行优化,保证定位数据的精度和稳定性。④ 控制命令转发:模块接收上位机控制命令,并将接收到的命令信息解析成硬件设备能够识别的命令字段,下发到定位基站,支持TCP/IP、UDP 通信协议。

1.3 位置服务管理控制中间件

位置服务管理控制中间件主要功能是对各功能模块的数据进行管理,包括坐标管理、基站管理、状态管理、位置信息管理、时钟同步管理和位置服务接口权限管理等。①坐标管理:主要负责井下地标信息维护、井下巷道节点坐标及节点关系的信息维护。② 基站管理:主要提供井下基站定义、基站参数修改、基站搜索等功能。③状态管理:负责基站实时运行状态和电源信息状态监控、基站电源充放电管理等。④ 位置信息管理:对井下所有标志卡的位置信息进行记录和管理。⑤ 时钟同步管理:查看井下各基站的时钟同步情况和状态,管理基站的时钟同步间隔,保证定位数据的准确性。

1.4 位置服务接口

位置服务接口分为数据接口和控制命令接口。数据接口主要提供基站/接收器位置信息查询、目标对象实时位置信息查询、目标轨迹查询、报警信息查询等接口;控制命令接口提供井下基站/标志卡报警下发、短信息下发、井下设备配置等接口。接口设计为WebAPI 方式,可跨平台使用,通过Post 请求,获取JSON 或XML 格式的数据信息,为各种应用提供实时位置服务信息。

1.5 基于混合存储模式的数据库

数据库采用MySQL+InfluxDB 混合存储模式,系统基本配置数据、目标对象实时位置数据等存储于关系型数据库MySQL 中,基于时间的目标历史位置数据、设备历史状态数据等使用时序数据库InfluxDB存储。混合存储模式既保证了系统对基本数据的维护需求,又利用了时序数据库处理高频变化的海量历史数据的性能优势,极大提高了系统的数据处理能力。

2 系统关键技术

2.1 基于Docker 的微服务

传统的应用程序大多采用单体式架构,即所有软件功能集成在单独的项目工程中,应用界面和后台数据是分离的,性能提升和扩展主要通过后端部署数据库集群。这种架构开发和部署比较方便,但随着业务不断增加,开发迭代和性能瓶颈等问题会增加维护难度。为解决这些问题,采用微服务架构,如图2 所示。

图2 微服务架构Fig.2 Architecture of microservice

微服务将复杂系统切分为数十个乃至上百个小服务,这些小服务带来了语言和框架选择上的灵活性,缩短了应用开发上线时间,可根据不同的工作负载和资源要求对服务进行独立缩扩容。微服务采用分散管理方式,所有服务都是松耦合的,这种架构最大好处就是可以独立开发某个业务,每个服务都有自己私有的数据库持久化业务数据[5],无需考虑与其他服务的交互和影响。同时微服务采用的接口为WebAPI 接口[6],使得数据的输入输出更便捷、规范。

Docker 是一个开源应用容器,可将开发的业务、运行环境及依赖包打包成镜像文件,利用Docker 创建容器后加载镜像即可独立运行和维护。容器之间完全使用沙盒机制,相互之间不会有任何接口,且封装在Docker 中的服务具有跨平台特性。1 台服务器同时运行多个容器,从而可轻松地模拟出复杂的微服务架构,满足各种业务需求。

2.2 算法库

UWB 无线定位技术因功耗低、抗多径效果好、安全性高和系统复杂性低[7]被广泛应用于井下高精度定位系统。基于UWB 的精确定位分为同步定位和异步定位两大类,对应的主流定位技术分别为基于到达时间差(Time Difference of Arrival,TDOA)和飞行时间(Time of Flight,TOF)的技术[8]。TDOA 定位技术具有系统容量大、定位灵活性好等特点,但要求锚基站之间的时钟保持高度一致,时钟同步精度将直接决定定位精度,使得TDOA 定位技术难度大,在井下复杂条件下难以部署。

2.2.1 定位算法

井下位置服务系统采用多标签多锚节点同时测距(Asymmetric-Double-Sided Two-Way Ranging Multi-Tag Multi-Anchor,ADS-TWR-MTMA)方法[9]进行测距,该方法基于TOF 定位技术,在多次回应非对称双边双向测距(Asymmetric-Double-Sided Two-Way Ranging Multi-Ack,ADS-TWR-MA)方法[10]的基础上,进一步复用非对称双边双向测距过程中的测距消息,可让多标志卡与多锚节点同时进行TOF 测距,在保证测距精度的前提下大大提高了测距效率和定位系统容量。

采用多源数据融合定位算法[11]判断定位标志卡相对锚基站的方向。首先测量标志卡与锚基站的TOF,计算接收信号强度,然后根据标志卡历史轨迹,采用多项式插值方法拟合、预测当前标志卡位置,根据多源数据组合判断标志卡相对基站所在方向,最后通过加权数据融合优化定位结果。

2.2.2 数据优化算法

ADS-TWR-MTMA 方法能较有效地保证定位的实时性和稳定性,但在实际应用中,井下存在多种影响定位精度的噪声,如定位标志卡间相互遮挡、多径效应和非视距传播干扰等。基于卡尔曼滤波和加权LM(Levenberg-Marquard)法的定位算法[12]能在不影响定位速度前提下,大大提高定位精度,有效降低噪声干扰。首先,利用卡尔曼预测模型获取先验估计结果,根据该结果和各锚节点的测距值得到锚节点的测距权值矩阵;然后,利用权值矩阵、各锚节点的坐标和测距值,使用加权LM 法得到新的定位结果;最后,利用卡尔曼更新模型获取最终的优化定位值。

井下位置服务系统要求井下重要区域定位信号全覆盖,导致定位基站出现重叠覆盖,会出现同时刻多个锚基站对移动目标定位数据信息相同或相近,加上定位数据采集速度较目标位置变化速度快,使同一目标在相邻时间上采集的数据相同或相近。定位数据具有时空相关性[13],使得系统存在大量冗余数据,这些数据消耗大量计算、传输、存储等资源。因此采用一种复杂度低的特征提取方法过滤冗余数据。例如根据定位目标一段时间内的历史轨迹信息提取出移动特征,将出现明显距离跳变、距离变化微小、不符合目标运动特征的数据剔除,同时不断修正目标特征以保证定位精度。

2.3 时序数据库

井下位置服务系统中,移动目标的位置信息随着时间推移不断变化,根据时间确定的历史位置信息数据将不断累积,且定位于服务无人驾驶的井下位置服务系统要求实时位置信息更新频率更高。传统关系型数据库注重增删改查和事务功能,存储采用B-tree 形式,对于随机数据读写操作,会在磁盘寻道上消耗大量时间,使得关系型数据库逐步制约着系统对海量历史数据的处理能力。因此,系统引入开源时序数据库对数据进行分类存储,将系统基本配置数据、目标对象属性信息、实时位置信息等存储于关系型数据库MySQL,将历史轨迹信息等时序数据存储于时序数据库InfluxDB,极大地提高了系统数据处理能力。

单机版InfluxDB 采用时间结构合并树(Time Structured Merge Tree,TSM)对时序数据的读写分别进行优化设计,引入series-key 的概念,根据时间特征对数据进行分类,减少冗余存储,提高数据压缩率[14-16]。另外,InfluxDB 采用Go 语言编写,运行无环境依赖;内置HTTP API,方便数据读写和检索;采用类SQL 查询语句,易于开发。

2.4 扰动数据处理

受系统数据传输网络环境、基站网络通断等情况影响,在实际应用环境中,定位数据并不会严格按照时间先后顺序传输至位置服务管理控制中间件,这些延后到来的定位数据被称为扰动数据。及时、有效地处理扰动数据,可保证目标对象区域定位的准确性,防止出现轨迹丢失和轨迹跳变。

假设位置服务系统中仅有1 个移动目标,扰动数据处理流程如图3 所示。表PosReport 用来存储区域定位信息,主要包括移动目标定位在某个锚节点PosId 的初次时间startTime 和末次时间endTime,数据按照startTime 升序存储;表DetailReport 用来存储精确定位信息,主要包括移动目标定位的锚节点PosId 和定位时间rTime,数据按照rTime 升序存储。

图3 扰动数据处理流程Fig.3 Disturbance data processing flow

2.5 发布订阅模式

井下位置服务系统开发完成后将以微服务形式运行在统一框架中,各服务模块之间、服务模块内部需要进行共享信息的数据交换、传输,以增加公共信息的重用性和共享性。数据传输需要保证数据的可靠性、高并发性等,系统引入发布订阅模式(图4)实现公共信息共享。

图4 发布订阅模式Fig.4 Publish and subscribe mode

在软件结构中,发布订阅是一种消息模式,包括非直接传递消息的发布者和接收消息的订阅者:发布者将不同的消息进行分类,不需要知道订阅者是谁;订阅者只接收订阅的分类消息,不需要知道发布者是谁。发布者与订阅者之间通过信息中介进行交流。发布者产生消息并传入队列,根据消息的可被消费次数,采用至少被消费1 次的方式,确保消息能被处理。订阅者在消费完消息后,需要有确认机制,将确认消息返回队列,同时消费失败的消息将被重新放回队列。

在发布订阅模式中,提供了一对多的消息发布机制,实现了模块之间消息的异步传输,降低了各模块的耦合度,同时使得系统具有更好的扩展性、灵活性。

2.6 系统接口安全

系统接口设计采用WebAPI 方式实现,任何匿名用户只要知道接口的URL,就可以模拟HTTP 请求访问服务接口,从而驱动底层设备甚至修改数据库,因此必须考虑接口的安全性。Bearer 验证是HTTP协议标准验证,随着开放授权(Open Authorization,OAuth)协议而流行,为资源拥有者(Resource Owner,RO)、资源服务器(Resource Server,RS)和客户端(Client)三者之间提供了一个安全可靠的协议标准[17]。OAuth 授权验证基本流程如图5 所示。具体步骤如下:①Client 请求RO 的授权,请求中包含请求资源路径、Client 身份等,RO 批准授权并将“授权证据”发给Client。② Client 将“授权证据”发给授权服务器(Authorization Server,AS),请求访问令牌(Access Token,AT),AS 验证通过后,将AT 发给Client。③Client 携带令牌访问RS 上的资源,RS 验证令牌有效性后为Client 提供服务。

图5 OAuth 授权验证基本流程Fig.5 Basic process of OAuth authorization verification

Bearer 验证中访问令牌的颁发和验证完全由自身应用程序控制,不依赖于系统和Web 服务器,采用的编码方式为JWT(JSON Web Token)。JWT 作为在网络应用环境间传递声明而执行的基于JSON 的开放标准(RFC 7519),可以进行跨语言支持,结构简单,字节占用很小,可放在HTTP 请求的Header 中,便于传输,且JWT 是自我包涵的,不需要在服务端保持会话信息,非常易于应用的扩展。

3 系统应用

井下位置服务系统在山东能源兖州煤业鲍店煤矿和陕煤渝北煤业曹家滩煤矿进行了应用,经过大量测试优化,取得了良好效果。通过井下位置服务系统提供的高精度移动目标实时位置信息,工作面限员监测系统能够及时将区域人员信息反馈至井下信号牌,实现超员预警报警,提高了煤矿安全保障能力;应用于工作面液压支架、转载机等大型机械的人机接近保护装置根据井下位置服务系统提供的人员移动趋势动态调整定位周期,定位精度达0.3 m,人员接近到闭锁响应时间不大于500 ms,在危险区域人员接近监测方面取得了较好效果;辅助运输系统通过井下位置服务系统提供的人员、车辆实时位置信息,实现了车辆超员/超速报警、车速控制、红绿灯控制、车内人员信息可视化展示等功能;自动驾驶系统通过井下位置服务系统提供的车辆实时位置信息,实现了车速自动控制、障碍自动躲避、危险预判预警等功能。

4 结语

通过井下位置服务系统提供的井下各类目标(人、车辆和装备)实时位置信息,为工作面限员监测系统、人机接近保护装置、辅助运输系统、自动驾驶系统提供了基础数据支撑。今后将在提高定位数据精度和实时性、丰富位置服务接口、提高系统稳定性等方面做进一步研究,使井下位置服务系统满足不同场景多种目标的定位跟踪、数据溯源、调度管理等要求。

猜你喜欢
位置服务基站定位
定位的奥秘
《导航定位与授时》征稿简则
5G IAB基站接入网络方案研究*
Smartrail4.0定位和控制
5G基站辐射对人体有害?
银行业对外开放再定位
基于移动通信基站建设自动化探讨
第六届中国卫星导航与位置服务年会暨首届卫星应用国际博览会
可恶的“伪基站”
智能车辆专利技术综述