一种水面艇与浮标时序位置数据匹配方法与流程

文档序号:29864159发布日期:2022-04-30 12:13阅读:118来源:国知局
一种水面艇与浮标时序位置数据匹配方法与流程

1.本发明属于水下设备检测定位技术领域,主要涉及两种或者多种不同gps采集频率的时序数据进行基于时间戳的匹配技术,具体为一种水面艇与浮标时序位置数据匹配方法。


技术实现要素:

2.水面艇的航行测试是测试水面艇性能和功能直接有效的方式。例如在测试水面艇适航性及续航力的测试中,通过在布放有4个动态智能浮标的矩形测试区域中测试能否安全的进入每个智能浮标的环绕区域内,且是否能够完成更多的浮标的环绕动作,这要求水面艇具有实时监测动态浮标位置的能力;在水面多目标规避能力测试中,水面艇需要对三种不同颜色、不同威胁区域范围的浮标进行识别,为了获取到更准确威胁区域的浮标类别,同时又需要避开多个不多威胁范围的威胁区域,水面艇需要对智能浮标的实时位置有着更准确的判断能力。而在正式比赛结束后,测评系统需要复盘比赛时,水面艇的实时位置与对应时刻的智能浮标位置的匹配尤为重要,这是决定了测评系统是否公正、专业、严谨最核心的因素。
3.水面艇岸基测评系统的复盘分系统,主要是使用离线采集到的水面艇的时刻-位置数据来实现轨迹的回放。为了实现复盘的准确性,需要在加载艇端轨迹点的同时加载对应时刻的浮标数据。但是在实际测试情况中,离线数据的点有可能会有丢失的情况,或者水面艇的数据采集频率和浮标的采集频率不同,不同种类的浮标可能也会出现采集频率不同的情况。所以,为了能够使复盘系统更准确快速地复现各时刻点对应浮标位置数据,结合实际测试与复盘情况使用一种基于时间戳的水面艇与浮标位置匹配方法计算艇端时刻点各浮标最佳匹配的位置。发明内容
[0004][0005]
为解决上述现有技术存在的不足和缺陷,发明人经过研发设计,现提出了一种能够对水面艇与多个智能浮标的时序数据进行匹配的方法,针对在水面艇进行避障等测试项目中水面艇与智能浮标的匹配问题,解决了在后期应用,例如水面艇的轨迹复盘中,能够准确得到水面艇航行过程中每个时间戳各浮标的准确位置和其他状态。
[0006]
具体的,本发明是这样实现的:一种水面艇与浮标时序位置数据匹配方法,包括以下步骤:步骤s1、获取无人艇与浮标各自的所有时刻-位置数据;步骤s2、对步骤s1中两种数时序数据进行筛选,去除重复数据,并各自按照时间进行升序排列;步骤s3、于无人艇的时间戳上逐一获取距离当前水面艇数据点时刻最近的浮标时刻数据;步骤s4、基于每个水面艇的时刻点,算法返回各浮标对应各水面艇端点时间戳上最近的浮标位置数据;步骤s5、判断是否还有未匹配的无人艇时序位置数据,若是,则对每个浮标进行无人艇的时刻-位置数据匹配后再进行判断,重复步骤s3,若为否,则基于步骤s4获取的浮标位置数据完成时序数据匹配。将获取到无人艇艇端数据为数组v,浮标数据为数组b_f(f=1,2,

f),数组元素均
为[tms,pos]的二元组;对数组v与b_f数据按照时间升序标准排序;令f=1,并且初始化s_i=1,i用来遍历艇端数据,初始化一个二维数组res[f][len_v],用来保存v中第i个时刻点对应的浮标f位置;再检查浮标是否遍历完毕(f>f),若为否,则初始化s_i=1,b_f=1,并且初始化res[f][s_i]=b_f[b_fk].bpos,lasttimediff=abs(v[s_i].utms-b_f[b_fk].btms),再检查是否遍历完水面艇端数据s_i不大于len_v,若为否,则以f=f+1再判断浮标是否遍历完毕(f>f);若为是,则计算abs(v[s_i].utms-b_f[b_fk].btms),并赋值为tempdiff,且如果tempdiff小于lasttimediff则将tempdiff赋值为lasttimediff并记录res[f]s_i]为b_f[b_fk].bpos,否则更新s_i=s_i+1再次遍历水面艇端数据;若b_fk小于lenb_f,则更新b_fk=b_fk+1再判断tempdiff是否小于lasttimediff,若为否,则更新s_i=s_i+1再次遍历水面艇端数据;直至浮标遍历完毕f>f。
[0007]
本发明的工作原理为:输入的是水面艇实时航行轨迹数据与多浮标位置数据,输出的是水面艇航迹时刻点对应各浮标的最佳匹配矩阵,水面艇在轨迹复盘过程中,通过读取最佳匹配矩阵可动态加载准确的浮标位置,最终可以得知全面的水面艇环境态势信息。本发明是一种改进的时序数据匹配方法,具体是遍历离线的水面艇时刻-位置数据与浮标时刻-位置数据,找到时间戳上距离当前水面艇数据点时刻最近的浮标时刻,最终对每个水面艇的时刻点,算法返回各浮标对应各水面艇端点时间戳上最近的浮标位置。
[0008]
本发明的有益效果:与传统的查找、匹配方法不同,由于输入数据具有时序性,及所有的序列v与b_f均为时间升序排序后的数组,以第s_i个艇端时刻点为例,第f个浮标当前最佳匹配的点为第b_fk个位置,那么迭代到第s_i+1个艇端时刻点时,当前浮标f最佳匹配点的下标一定大于或者等于b_fk,以此为依据,在寻找第i+1个最近浮标匹配点时,匹配算法不需要从起始浮标点开始遍历,在实际的应用测试中,改进后的时间匹配算法的时间复杂度为o(n),而传统的查找匹配算法的时间复杂度为o(n2)。
附图说明
[0009]
图1为本发明的方法整体流程示意图;
[0010]
图2为本发明的方法主要算法流程图。
具体实施方式
[0011]
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
[0012]
步骤(1):读取试验信息,获取智能浮标的数目f与对应时序数据b_f;
[0013]
步骤(2):获取当次试验的水面艇的时序位置为序列v,保存从试验开始到试验结束的时序位置信息,其序列长度为lenv,序列的元素为二元组[utms,upos],其中utms表示水面艇端时间戳,upos表示当前水面艇端点的位置,upos含有地理坐标经度值upos.lon、地理坐标纬度值upos.lat两个元素;
[0014]
步骤(3):对序列v、b_f(f取值为1,2,3,...,f)进行时间升序排序;
[0015]
步骤(4):获取排序后的智能浮标的时序位置序列b_f,即f个智能浮标对应的时序
位置序列为b_1,b_2,...b_f,其序列长度分别为lenb_1,lenb_2,...,lenb_f,序列元素为二元组[btms,bpos],其中btms表示智能浮标数据时间戳,bpos表示对应时间戳的浮标坐标信息,bpos含有地理坐标经纬度bpos.lon,bpos.lat两个元素;初始化一个维度分别为[f,len_v]的二维数组res,用以各浮标在时间尺度上的与序列v中各元素与最佳匹配位置点,其中res[f][s_i],表示v序列中第s_i个元素与第f个浮标的最佳匹配点;
[0016]
步骤(5):对浮标数目f进行遍历,f从1开始被赋值,直到f等于f+1时,方法结束;每次遍历f开始时,初始化两个变量s_i、b_fk分别为指向v序列与b_f序列的指针,s_i、b_fk被赋值为1,执行步骤(6);
[0017]
步骤(6):初始化变量lasttimediff为s_i、b_fk所指向数据的时间戳的绝对差值,即lasttimediff赋值为abs(v[s_i].utms-b_f[b_fk].btms);
[0018]
步骤(7):计算当前s_i、b_fk所指向的序列元素的时间戳的绝对差值为tempdiff,即tempdiff赋值为abs(v[s_i].utms-b_f[b_fk].btms);
[0019]
步骤(8):如果tempdiff的值小于等于lasttimediff,即lasttimediff赋值为tempdiff,并且更新res对应位置的值,即res[f][s_i]元素赋值为b_f[b_fk].bpos,同时更新b_fk的值为b_fk+1;否则,更新s_i的值,即s_i更新为s_i+1,并保存当前新的s_i,b_fk所指向的元素的时间戳的绝对差值,即lasttimediff赋值为abs(v[s_i].utms-b_f[b_fk].utms);
[0020]
在更新指针变量s_i时,如果s_i被赋值为vlen+1,方法完成当前浮标的匹配,这时返回步骤(5)进行浮标编号的更新;
[0021]
步骤(9):如果步骤(6)在更新b_fk的时候发现b_fk等于lenb_f,则b_fk的值保持不变,并将当前b_fk所指向元素的位置信息b_f[b_fk].upos,作为v序列中s_i以及其后元素的浮标最佳匹配位置保存到res中,即res[k][f]赋值为b_f[b_fk].upos,其中k=i,i+1,...,lenv;方法完成当前浮标的匹配,返回步骤(4)继续遍历浮标编号;
[0022]
步骤(10):当按照5-8步骤遍历完所有的浮标,即f等于f+1时,res矩阵中的元素被全部赋值完成,所得到的res矩阵,即是水面艇与浮标的最佳匹配矩阵。
[0023]
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1