协同导航定位系统中无人艇导航数据的误差分析
2023-09-01夏红兵
夏红兵
(江苏航运职业技术学院, 江苏 南通 226010)
0 引 言
协同导航定位系统的出现,标志着人类太空文明的开始。在国外,关于较为先进的定位系统有俄罗斯的GLONASSG 系统,欧盟的GALILEO,以及美国的GPS 系统[1–3]。而我国北斗导航系统(以下简称"北斗系统")是一种专注于国际安全和社会经济发展,自主创建,20 世纪末独立运作的协同导航定位系统。据此,本文以北斗系统为例,以SLAM算法作为辅助手段,通过对无人艇展开相关设计,并将该协同导航定位系统应用其中,旨在分析其导航数据的误差,为后续研究奠定一个较为详备的理论基础。
1 SLAM 算法基础
1.1 SLAM 算法简介
目前关于无人艇技术的发展日新月异,各科研团队也已经显示出很强的研究能力。无人艇技术的发展,极大地降低了出海作业中工作人员的安全问题,这种依据人类实际需求而进行的相关设计与调整,不仅可以协助人类避免危险环境,节约驾驶成本,还可以借助无人艇在高压强海底进行相关作业。
然而,若是想要实现无人艇在如此复杂外部环境中的自主运行,就必须能够在这些复杂场景中安全的进行地图绘制和导航。大多数研究学者都认为解决SLAM 问题是实现完全自主无人艇控制的关键先决条件,这个问题一直是过去十多年学界研究的重点,SLAM 问题也引起了人们对无人艇研究的重视。
现如今,随着时代的发展以及相关技术的不断进步,关于SLAM 算法也得到了较为瞩目的提升,并可以很好地解决了无人艇先前移入环境时位姿预估不可实现等问题。比如有设计人员可以基于无人艇的外形特征、工作环境,以及水域实际运动情况,对无人艇进行针对性的研发,在确保无人艇观察到的信息不被破坏的同时,还可以借助SLAM 为无人艇重建全局环境地图,由此引导无人艇得以在安全行驶路径中开展工作[4–6]。
基于以上研究经验,经整理后认为,要想实现SLAM 算法的过程,可以按照如图1 所示的SLAM思路,将其分为预测和更新2 个阶段。
图1 SLAM 算法实现过程Fig. 1 Implementation process of SLAM algorithm
1.2 SLAM 程序设计
本文开发了一个基于SLAM 程序的完整的无人艇软件系统,以解决无人艇协同导航定位方案和映射任务。
无人艇执行各SLAM 任务的联系如图2 所示,当无人艇进行协同导航定位和映射任务时,远程无人艇可以在未知环境中使用用户终端PC 和键盘进行控制,并显示了各个关键节点与实现无人艇SLAM 的主题之间的关系。
图2 无人艇执行各SLAM 任务的联系Fig. 2 Connection of Unmanned Craft to Perform Various SLAM Tasks
在创建无人艇SLAM 系统时,本文创建了用于无人艇与客户端末端计算机之间的通信ROS 网络。同时在无人艇操作端,也通过PC 方式为技术人员提供了节点“/ keyop”,“/ slam_gmapping”和“/ rviz”,方便其工作同时优化硬件配置的影响。此外,每个坐标系之间的坐标变换比率在主题“/ tf”中公布。“/Slam_gmapping”节点订阅“/tf”和“/scan”主题,并基于时变调节因子EKF-SLAM 算法,以通过放置无人艇来创建渐变递增的栅格地图。
2 无人艇坐标系模型建立
2.1 无人艇数学模型
为无人艇创建SLAM 算法问题模型,考虑到由于每个模型的准确性,都将直接影响到SLAM 系统的误差评估,从而影响后续的协同导航定位系统性能。因此借助SLAM 算法开始部署无人艇时,首先创建3 个坐标系,其中无人艇的局部坐标系为X-O-Y,所有坐标系都源于无人艇的原始位置,局部坐标系的坐标位于机体的几何中心。
为了确定无人艇在环境中的位置变化,本文假设其在各种水域中,都可以借助坐标系确定其自身的位置。
如图3 所示,本文在整体的规划思路上,是希望无人艇可以在各种水域中得以移动,本文将其移动的方向固定为无人艇坐标系X轴方向,然后再将航行角度与X轴的夹角进行计算,得到其在全局坐标系中的位置(x(t),y(t),θ(t))。由于无人艇在各种水域中只存在平动和转动,因此得出以下公式,来表示无人艇在全局坐标系中的位姿。
图3 无人艇数学模型示意图Fig. 3 Schematic diagram of the mathematical model of an unmanned boat
2.2 无人艇运动模型
按照以上思路设计出来的无人艇,再对其运动模型进行构建,可以让该无人艇能于短时间内进行受控圆周运动,以便改变其运动轨迹。不过也有考虑到系统误差,因此在进行运动模型的设计中,依据无人艇的理论运动与无人艇输入控制量,得到运动误差,因此有必要通过合理的计算减小其误差。最终,使用差动驱动对无人艇进行转换编码,得出其增量式编码器△t内的平均速度:
用l与r分别表示左轮和右轮的速度,则:
无人艇的合速度可以表示为:
假设在t-1 时刻,无人艇的位姿为(xt−1,yt−1,θt−1)T,在 ∆t时间内,以恒定线速度v和角速度ω作为输入,在t时刻时,无人艇的位姿为(xt,xt,θt)T。
按以上思路,可以求出无人艇的线速度v 和角速度 ω,无人艇进行半径为R的圆弧运动,半径R的计算如下所示:
可知,无人艇的运动模型方程如下:
3 协同导航定位系统误差分析
3.1 协同导航定位系统可见性的计算
设时刻t 无人艇的位置向量为:
协同导航定位系统位置的向量为:
则无人艇的归一化位置坐标向量为:
此时无人艇的位置方位仰角为:
其中:
根据以上理论推导,经过仿真计算得:当天可以同时观察到9 颗可见协同导航定位系统,对上述的协同导航系统进行3 次测试模拟,得到3 种测试巡航模式下的航迹分布图如图4 所示,可以发现无人艇可以很好的对轨迹进行导航和跟踪。
图4 3 种测试模式下的航迹分布图Fig. 4 Track distribution diagrams in three test modes
3.2 可见星空间位置坐标的计算
根据协同导航定位系统电文提供的轨道参数,按一定的公式可计算出观测瞬间无人艇在坐标系中的位置。具体计算步骤如下:
首先,根据开普勒第三定律,对计算协同导航定位系统运行的平均角速度n进行计算:
其中的实际平均角速度为:
然后,考虑协同导航定位系统的轨道参数是相对于参考时间的,计算观测时刻的平近点角Mk:
计算偏近点角Ek:
计算真近点角Vk,由于:
因此:
应用SPSS 18.0统计软件对数据进行统计学分析。计量数据采用±s表示,计数资料采用频数百分比表示,两组数据比较采用独立样本t检验以及卡方检验,多组比较采用方差分析以及LSD两两比较,重复测量数据采用重复测量的方差分析。P<0.05为差异有统计学意义。
计算升交点角距∅k:
式中:w为导航电文中给出的近地点角距,据此计算摄动改正项:
最后,计算协同导航定位系统在轨道平面坐标系的坐标:
3.3 协同导航定位参考点位置坐标的计算
解算方程写为矩阵形式为:
根据观测协同导航定位系统个数,定位解算方程可以分为以下3 种情况:
1)当观测量n<4 时,无解;
2)当n=4 时,AX-L=0,故有唯一解,X=A-1L。
3)当n>4 时,方程个数大于未知数个数。此时,可用最小二乘法获得无人艇位置和时间。
本次同时观察到9 颗可见协同导航定位系统,因此可以采用最小二乘法对无人艇位置进行定位计算。依照上述的协同导航定位系统坐标,编写程序,设置初始值。高度角:α=10°,采样率:s=10 min。共仿真12 个小时,仿真结果如表1 所示。
表1 协同导航定位仿真结果Tab. 1 Simulation results of collaborative navigation and positioning
3.4 坐标误差分析
通过以上分析,初步计算出了“协同导航定位参考点”的位置坐标。为了分析数据误差,再次利用接收机于同一地点得到一组真实的位置坐标数据。通过比较,两者误差如表2 所示。
表2 误差结果对比Tab. 2 Comparison of error results
说明该仿真程序能够较为精确的实现对无人艇协同导航定位参考点的定位,达到了设计目的。
4 结 语
采用协同导航定位系统的无人艇具有良好的系统性能,能够满足高精度高速度的作战要求,而国外在协同导航定位系统技术上,也都取得了较为广泛的应用,并逐步得到了广泛传播。