测量机器人基于安卓系统在高铁隧道控制测量中设计与应用

2022-11-30 03:24张攀华
中国新技术新产品 2022年17期
关键词:安卓蓝牙观测

张攀华

(中铁二十二局集团第三工程有限公司,福建 厦门 361000)

0 引言

测量机器人从诞生以来凭借高精度、高稳定性、高可靠性、快速便捷以及自动观测等优点广受大家的青睐,高铁对线路施工的平稳性、准确性提出更高的要求,提高了测量机器人的使用频率。目前,高铁建设项目均装备了测量机器人[1-2];然而隧道控制测量仍停留在人工手动测量、手簿记录的阶段,功效相对较低,该文以使用率较高的徕卡TM50系列测量机器人为例来探讨基于安卓系统下的设计与应用研究。

1 测量机器人开发方案选择

1.1 TM50测量机器人

TM50全站仪是徕卡全新一代全站仪,具有测量机器人目标全自动搜索、动态目标跟踪、高精确辨识及照准目标的功能,是可以获取角度(水平角、竖直角)、距离(平距、斜距)以及空间三维坐标等信息的智能全站仪。TM50测量机器人二次开发方案有2种:1) 利用GeoBasic或Geoc++编程工具开发,编译后上传目标设备并调试使用,其优点是直接采用厂商底层API函数执行,代码执行效率较高,缺点是受限于设备本身处理器的运算能力限制,对开发者要求较高,软件开发周期较长。2) 利用GeoComm通信库或GeoCom ACSII,通过串口与计算机或移动设备进行联机数据通信,其优点是复杂扩展计算由移动设备处理,移动设备和测量机器人通信清晰透明,可以及时发现并处理异常问题,灵活性高、拓展性丰富,软件开发整个周期较短,通过网络可实现远程执行,是目前普遍采用的开发方式,缺点是需要单独采购移动开发设备。该文采用第二种方法操作TM50全站仪。

1.2 测量机器人GeoCOM接口技术要求

GeoCOM是一种测量机器人的通信接口,是基于SUN微系统的远程调用(RPC)建立的,有2种协议:1) 调用GeoCOM函数,采用编程开发工具,按照作业需求,根据流程进行应答。2) 低级的ASCII协议,由请求和应答解码,即由计算机或移动设备通过串行线向测量机器人发送一个请求,等候应答并对应答解码。

测量机器人可远程调用,且每个过程都对应一个唯一的标识,每个标识码又与一个特定的请求相连,这样可以通过发送ACSII请求,并得到ACSII应答方式来控制测量机器人,TM50系列测量机器人不支持GSI指令,由GeoCOM ASCII来代替。

1.3 测量机器人的ASCII请求协议

ASCII请求协议语法如下。

[]%R1Q,[,]:[][,,...]

格式中的[ ]表示可选项,缓冲区初始化,等待接收数据,“%R1P”为GeoCOM函数第一种类型请求标识,为远程过程调用码,其值的范围为0~65535[3];GeoCOM函数任务标识符,通常从1增加到7,且应答中包括相同的ID值,分号(:)用来分隔头与后续的参数;,...表示参数0,参数1,...;为终止字符串,可用ASCII请求参数来修改,缺省值为CR/LR。

1.4 测量机器人的ASCII应答协议

ASCII应答协议语法如下。

%R1P,[,]:[,, ...]

格式中[ ]表示可选项,“%R1P”表示GeoCOM第一种类型的应答该请求,GeoCOM返回码,反馈设备通信是否成功,返回0表示成功,与请求时发送的任务标示符相同,如果请求时没有该项则为0,为远程过程调用返回码,该码反映远程调用是否成功;分号(:)用来分隔头与后续的参数[3];,...表示参数0,参数1,...;这些参数只有当返回值为0时才有效;为终止字符串[3]。

1.5 数据通信方案的选择

目前,Android设备具备蓝牙、OTG(On-The-Go)、GPRS、IEEE 802.11以及NFC(Near Field Communication)等无线通信方案,现场一般近距离操作,采用OTG、GPRS,还需要增加额外费用,NFC与IEEE 802.11部分设备不支持;蓝牙具有功耗低、抗干扰能力强、成本低以及通信距离适中等优点,可以满足现场使用要求,通信方案采用蓝牙作为无线通信。测量机器人GeoCOM通信如图1所示。

2 通信程序设计

2.1 软件开发流程

测量机器人自动观测软件的设计基本思路:仪器在导线点上安置调整就位后,使用串口线或蓝牙与仪器连接,然后进行测站设置,主要包括测站的限差、角度、距离测回数、测站名设置以及天气情况等,然后进行初始测量,对目标点数据进行初始采集,然后开始自动观测,观测结束后观测成果自动与规范要求进行比对,如果不满足规范要求,就弹出对话框等待人工进一步干预操作。当最终获得合格的外业观测数据时,保存该数据。工作流程图如图2所示。

2.2 开发环境

操作系统为Android 12,软件基于Android studio编程实现,Android studio具有良好的扩展性和交互性,直接编译为原生代码;此外,其还具有开发周期短等优点,是目前安卓软件标准的开发环境。

2.3 程序设计

在项目中添加对蓝牙、字符操作的引用,具体如下。

import java.util.UUID;\用唯一标识符引用

import java.lang.String;\字符串操作类引用

import android.os.Handler;\线程通信引用

import java.lang.Object;\基础类引用

Import android.bluetooth.BluetoothAdapter;\蓝牙适配器引用

import java.lang.StringBuilder;\字符串操作类引用

import android.util.Log;\日志输出类引用

import android.os.Message;\添加信息操作类引用

2.3.1 连接仪器

采用无线蓝牙连接移动设备和仪器,首先设置蓝牙串口服务 (SPP) 的 UUID,开启对串口的操作。其次,开始与设备匹配连接,实例代码如下。

private final static String MY_UUID = "00001101-0000-1000-8000-00805F9B34FB";

private BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); Toast.makeText(getApplicationContext(), "请先连接设备", Toast.LENGTH_ SHORT).show(); return;

2.3.2 数据采集

采用JSON格式对测量机器人开发的参数进行存储,实例代码如下。

指定测量机器望远镜照准目标,HZ代表望远镜水平角位置,V代表望远镜竖直角位置,响应和超时时间限制,返回参数。

"SetDirection":{

"Enabled":true,

"Request":"%R1Q,9027:Hz,V,2,0,0 ",

"Response":"",

"ResponseDelimiter":" ",

"ResponsePattern":"(?:%R1P,0,0:)(?P\d+)",

"SleepTime":10.0,

"Timeout":30.0

}

测量机器采集水平角和距离,响应和超时时间限制,返回参数。

"GetCoordinate":{

"Enabled":true,

"Request":"%R1Q,2108:1,0 ",

"ResponseDelimiter":" ",

"ResponsePattern":"(?:%R1P,0,0:)(?P\d+)(?:,(?P\d*\.?\d+),(?P\d*\.?\d+),(?P-?\d*\.?\d+))?",

"SleepTime":10.0,

"Timeout":30.0

}

测量机器换面并转换望远镜,响应和超时时间限制,返回参数。

"ChangeFace": {

"enabled": true,

"request": "%R1Q,9028:1,0,0 ",

"responseDelimiter": " ",

"responsePattern": "(?:%R1P,0,0:)(?P\d+)",

"sleepTime": 10.0, "timeout": 30.0

}

2.3.3 常见通信错误处理

测量机器人调试反馈指令约228个,施工作业常遇到错误见表1,根据返回的参数提示操作者,等待人工干预,实例代码如下。

表1 部分错误列表

public static String LeicaError(String p0){

String str;

switch (Integer.parseInt(p0)){

case 0:\返回结果0代表函数执行完毕

str = "函数成功执行完成。";

break;\跳出循环判断

2.3.4 注意事项

GeoCOM ASCII提供设定气压、温度以及湿度操作指令,在实际操作中,不建议在Android手簿上设置温度、气压以及湿度等参数,直接进入测量机器人内进行设定,避免因通信或操作不当而导致气象参数未修改正确。

2.3.4.1 获取气象参数

ASCII请求指令:%R1Q,2029

ASCII应答指令:%R1P,0,0:RC,Lambda[double],Pressure[double],DryTemperature

2.3.4.2 设置气象参数

ASCII请求指令:%R1Q,2028:Lambda[double],Pressure[d

ouble],DryTemperature[double],WetTemperature[double]

ASCII应答指令:%R1P,0,0:RC

3 应用案例

3.1 观测成果比对分析

以浙江南部某特长隧道导线测量为例,表2、表3分别为软件自动观测和人工观测整理后的部分手簿。气温、气压分别在现场用气压计量测后输入仪器,软件主界面如图3所示。由表2、表3可知,软件观测数据汇总平均准值为81 °31 '1.83 ",人工观测成果为81 °31 '2.67",在导线测量前已经提前通知隧道班组停工,观测时不存在外界机械扰动等影响,由图4的观测数据和图5数据聚合性分析可知,人工观测和基于安卓系统开发的软件自动观测精度一致,测量机器人至少能节省一倍的观测时间(在复杂工况下可以节约更多的时间)。

表2 水平角观测软件

表3 人工观测观测数据汇总

3.2 现场常见问题处置

测站观测数据超限的问题。在实际作业过程中会遇到某站观测频繁数据限差不合格的情况,问题大多出现在仪器本身或气候不适合观测,可以考虑采用以下方式解决:1)检查测量机器人电子气泡是否偏离中心位置,如果严重偏离,就需要重新整平;并全面检查脚架的螺栓是否拧紧,保证拧紧适中;检查后该测站重新观测。2)检查温度测量结果是否存在突变;避免光源直接对着仪器照射,保留必要照明即可,测量机器人在夜间同样能完成作业任务。3)测量机器人相对附近震动源敏感性强,如果发现及时,就可以进行协调解决。

观测过程中偶尔出现测量机器人目标找寻错误或无法发现目标的情况,可以考虑采用以下方式解决:1)检查目标范围是否存在障碍物干扰(障碍物与目标视线距离大于10 cm),并及时加以排除。2)目标点虽然距离很远,但是二维面上距离较近,该问题多出现在曲线和直线过渡段、桥梁路基过渡段,提前筹划观测位置,保证观测到足够的目标。3)在沿海隧道凌晨水汽变化较大,保证目标棱镜清晰可见。

4 结语

经实践证明,利用安卓系统开发的自动测量程序具有较高的实用性,减少了因人工操作不当导致的观测误差,在外业观测时大大提高了观测的效率;利用GeoCOM ASCII二次开发充分利用测量机器人和安卓设备的硬件优势,同时拓展了仪器的功能,可广泛的应用铁路、公路施工控制测量。安卓设备比windows morble有更高的执行效率,但是开发时需考虑适配设备厂商细节差异。另外安卓手簿带有高精度的温度、气压的传感器,实现气压、温度的自动改正,那将具有更好的实用性。

猜你喜欢
安卓蓝牙观测
观测到恒星死亡瞬间
文物表情包
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
天测与测地VLBI 测地站周围地形观测遮掩的讨论
紧急:蓝牙指尖陀螺自燃!安全隐患频出
一种基于安卓系统的手机侧抓包分析方法
可观测宇宙
高分辨率对地观测系统
安卓L未至安卓M来了!安卓首泄漏M系统