任 兵, 陈卫国, 饶银辉, 崔 彬,, 洪晓斌
(1. 华南理工大学机械与汽车工程学院,广东 广州 510640; 2. 广船国际有限公司,广东 广州 511462)
随着人工智能技术的发展,无人驾驶技术得到快速发展,无人艇无需人员艇上作业,可完成水文勘测、水质监测、渔业养殖、海上搜救、海上巡逻、海上扫雷、反潜、火力打击和海上拦截等任务[1-3]。同时对无人艇航行性能的评估至关重要,评估无人艇自主航行性能需要获得无人艇航行过程中的实时位置、航行轨迹等状态信息,倘若把测量仪器直接安装在被测无人艇上,被测无人艇自主航行性能容易受影响,故需要一种独立于被测无人艇的监测手段获取被测无人艇航行信息。
相对于其他海洋监测手段,以浮标为载体的检测技术在自动化、连续性以及长期等方面具有良好特征表现,是现代海洋环境立体监测系统的重要组成部分[4]。近年来,利用浮标为载体的监测与导航定位平台在各个领域已经取得一定成果。如Kato T等利用海洋浮标组成GNSS阵列,设计了海啸等地质灾害预警系统[5];王朋朋等基于BANG设计了海洋浮标岸站接收系统,实现与浮标系统的通信、数据实时存储,服务于气象、水文要素需求[6];王柏林等通过GPRS与岸基数据中心对接,基于STM32设计了用于测量海水域的风速、风向、气压、气温等气象要素的海洋浮标[7];唐原广等以浮标作为观测平台,采用螺旋桨式风传感器、电子罗盘以及水文气象数据采集器,采集和处理风速风向[8];周金金等为解决浮标成像系统不稳定问题,设计了一套基于ARM11的云台稳定控制系统,可用于船舶监控[9];李鹏等针对近海海底观测网的安全问题,设计了一套多警戒浮标的实时监控系统,该警戒浮标可获取浮标本身工作状态,并能实时、动态、连续地将警戒浮标的运行状态发送到陆基站,实现对目标海域的实时监控[10]。
目前浮标主要用于水文气象信息采集观测和海域监控,而针对无人艇性能测试的监测浮标研究尚处于起步阶段。结合无人艇性能测试需求,本文设计一种移动式浮标,该浮标即可作为监测平台载体,又可作为性能测试时的静态障碍物和动态障碍物。采用DGPS接收机、三维激光雷达和摄像机作为传感设备,通过三维激光雷达测量无人艇在浮标空间坐标系上的相对位置,融合DGPS数据解算无人艇实时的位置信息,便可绘制无人艇实时航行轨迹,进而计算各项技术指标对其自主航行性能进行评估。
无人艇航行监测系统基于ROS(robot operating system)实现,由电源系统、信号处理及控制系统、电机驱动系统、传感信息采集系统、通信系统和岸基可视无纸化系统组成,各个传感设备作为ROS系统的一个节点和信号处理及控制器通信传输数据,系统框架如图1所示。其中,外接电源采用24 V直流电池。树莓派4B、摄像机、三维激光雷达、电机驱动和图传电台需12 V供电,树莓派4B、DGPS接收机、电机控制器需5 V供电,因此需要设计降压稳压电路,如图2所示。选取电源芯片LM2596降压稳压模块,它内含固定频率振荡器(150 kHZ)和基准稳压器(1.23 V),并具有完善的保护电路、电流限制、热关断电路等,降压稳压电路为可调节状态,根据实际需要调节输出为5 V和12 V。
图1 无人艇航行监测平台系统框图
图2 降压稳压电路原理图
信号处理及控制器采用树莓派4B,拥有4个USB端口,40针pin引脚,其CPU为高性能的64位 ARM Cortex-A72,拥有 4GB RAM,能够支持无人艇航行监测平台系统的计算需求和功能扩展。
传感器采集系统由高精度厘米级别DGPS接收机、摄像机和三维激光雷达组成。DGPS接收机通过转换器连接到信息处理与控制器的USB口上。将DGPS主机站安置在基准站上进行观测,基准站已知精密坐标,计算出基准站到卫星的距离改正数,并由基准站实时将这一数据发送出去。浮标上的DGPS接收机在获取位置信息的同时,也接收到基准站发出的改正数,并对其定位结果进行改正,从而提高定位精度。三维激光雷达通过RJ45接口连接到信息处理与控制器上,该激光雷达内部装有16对激光发射接收模组,电机以5 Hz转速驱动进行 360°扫描。其垂直方向上视场角为–15°~15°,角分度2°;水平方向上视场角为360°,分辨率为0.09°。激光雷达安装在防抖云台上,其内置Y轴指向正北方向。摄像机通过RJ45接口连接到信息处理与控制器上。清晰度4 MP,180°大广角,在浮标上安装2个摄像机便可实现360°监测。摄像机视频传输至岸基实现实时无人艇航行实时画面显示,既可作为无人艇自主航行功能测试的参考依据,又可实时监控无人艇,在无人艇遇到危险状况时能及时采取相应措施。
推进系统选用螺旋桨为推进器,由无刷电机控制其方向。电机驱动模块通过RS485转USB模块连接到信息处理及控制器的USB口上,可以直接给定目标位置(绝对位置或相对于当前的位置)使驱动器转动到目标位置。驱动器将根据设定的加、减速加速度和最大速度,自动控制电机按照牛顿运动定律迅速、平稳地运动到目标位置。
通信系统用于实现浮标上信息处理及控制器与岸基可视无纸化平台之间的远距离通信,工作在2.4 GHz频段,传输距离可达 15 km,通过 RJ45接口和信息处理及控制器连接。
以浮标上的三维激光雷达点云数据和DGPS位置信息为基础,无人艇航行监测方法分为四个部分,解算出无人艇的航行位置精确数据,为计算无人艇性能评估技术指标奠定数据基础。
在三维激光雷达获取无人艇坐标位置时,雷达会不可避免地检测到海面上其他浮标、无人艇、海面和岸上陆地。为减轻后续雷达点云数据处理的计算压力,首先过滤过高的点云数据,因此可过滤三维激光雷达点云Z轴的值大于无人艇高度与激光雷达安装高度之差的点云。在三维激光雷达获取点云数据时,由于存在电磁干扰、浮标晃动等环境因素影响,点云数据中会存在一些不合理的离散干扰点。为滤除这些离散噪声点,可计算每个点云数据离附近k个点云数据的平均值,若该值超过设定阈值,则认为该点云数据为离散噪声点,应当滤除。
海面点云数据量较大,且对后续聚类分割效果影响大,因此应当先对海面点云-非海面点云滤除。本文采用 Ray Ground Filter方法[11],将点云数据的(x, y, z)三维空间降到(x,y)平面来看,计算每一个点到浮标正方向的平面夹角,对360°进行微分,分成若干等份,每一份角度为0.09°(镭神智能16线雷达的水平光束发散间隔),这个微分的等份近似地看作一条射线,如图3所示是激光雷达的纵截面与横截面的示意图,雷达从下至上分布16个激光器,发射如图所示的放射状激光束,同一夹角上由16束这样的射线。为方便对同一角度的线束进行处理,要将原来的直角坐标系的点云转换成柱坐标描述的点云数据结构,转换公式为:
图3 激光雷达扫描纵截面与横截面
将同一夹角的线束上的点按照半径大小进行排序,设定两个阈值,一个是同一夹角下邻近两点的坡度阈值,一个是整个海面的坡度阈值,单位均为度。通过这两个坡度阈值以及当前点的半径求得高度阈值,再判断当前点的高度即当前点的z值是否在海面加减高度阈值范围内来判断当前点是否是海面。过滤后的海面点云和非海面点云可视图如图4所示,被过滤的海面点云采用白色显示。
图4 海面-非海面点云图
如图4所示,经过滤之后的点云数据除了包含无人艇之外,还包含其他物体点云。因此,为进一步准确分割无人艇信息,基于欧氏聚类分割方法对过滤之后的点云数据聚类分割,提取无人艇的轮廓边缘,这是准确计算无人艇外形集合尺寸的基础。
欧氏聚类分割是一种基于欧氏距离度量的聚类算法,其流程如图5所示。对于空间某点P,通过KD-Tree近邻搜索算法[12]找到n个离P点最近的点,这些点中距离小于设定的聚类搜索半径阈值的便聚类到集合Q中。如果Q中元素的数目不再增加,整个聚类过程便结束;否则须在集合Q中选取P点以外的点,重复上述过程,直到Q中元素的数目不再增加为止。
图5 欧氏聚类流程
KD-Tree是在一个欧几里德空间中组织点的基本数据结构,它本质上就是一个每个节点都为k维点的二叉树。在PCL中,由于点云的三维属性,所用到的K维树即为3维树。本文使用一个2维树,将点云压缩成了2维——即将所有点的z值(高度)设为0,因为两个物体在Z轴方向叠在一起可以将其视为一个障碍物,并且压缩成2维能加快聚类速度以满足监测系统感知实时性的需求。构造KDTree时需对数据排序,排序规则为:在二维空间中在根和偶数层比较X轴坐标值(假设根的深度为0),在奇数层比较Y轴坐标值。构造KD-Tree构造流程如图6所示。
图6 KD-Tree构造流程
对欧氏聚类分割得到的物体进行几何特征计算。采用PCL开源点云库中的有向包围盒(oriented bounding box,OBB)计算每个聚类点云簇的长宽高,和无人艇几何特征进行验证,若其在无人艇几何特征范围内,则认为它是无人艇点云簇,计算其中心点坐标。若此中心点坐标与上一帧无人艇点云簇中心点距离超过设定阈值,则摒弃这一点云簇,继续计算下一点云簇的几何特征。
浮标上的DGPS接收机经差分计算后可得到浮标的精确经纬坐标,和2.3中计算的无人艇相对浮标的三维坐标值(x, y, z)融合即可计算出无人艇经纬坐标值。DGPS和三维激光雷达分别作为ROS的一个节点,其各自的传感信息通过话题形式发布到主程序上,主程序通过ROS同步订阅机制,根据消息的时间戳对DGPS和三维激光雷达发布的消息在时间上进行融合。
如图7所示,假设浮标在位置O,其经纬度为(lonO,latO),无人艇在位置A,其经纬度为(lonA,latA)。无人艇相对于浮标坐标为(x,y)。
图7 无人艇坐标图
水平平移的距度x除以点O浮标所在纬度的切面周长,乘以360°,可求得水平横向平移了多少度,再加上lonO,即得lonA的值。同理,计算点A浮标的纬度,为垂直平移的距离y除以地球纵向周长,再乘上360 °,求得纵向平移多少度,再加上latO,即求得,latA的值。计算公式如下:
其中,ARC 为地球半径,本文取 6 371.393 km。
计算出无人艇经纬坐标之后,附上时间戳通过图传电台发送至岸基可视无纸化平台,保存无人艇航行定位数据,并绘制出无人艇航行轨迹,实现无人艇航行监测,为后续计算性能测试评估指标提供数据基础。
为验证无人艇航行监测系统的定位测量效果,在广州市南沙区龙穴岛近海海域进行试验,海域测试场长 900 m,宽 800 m,深 8 m,把浮标放置在测试场内,场内有一位置固定且经纬度已知的长18.12 m、宽5.24 m、高5.49 m无人艇,即为图4所示无人艇1号。浮标实物如图9所示。浮标分别安置在距离无人艇 30~40 m、60~70 m 和 90~100 m 的位置,通过浮标上的无人艇航行监测系统测量解算无人艇的位置信息,与无人艇真实位置数据比较,计算误差评估其定位测量效果。
图9 浮标实物图
三维激光雷达离海面高度约为2.10 m,根据无人艇的高度,先过滤z值大于3.50 m的点云。依据测试场内风速和浪高,设置滤除海面点云时的邻近两点坡度阈值为25°,整个海面的坡度阈值为15°,欧氏聚类分割搜索半径为1.0 m,经滤除海面点云、聚类分割和利用包围盒计算点云簇的几何特征后,检测识别出无人艇点云包围盒。计算无人艇中心点的X、Y和Z坐标轴的值即为无人艇相对于浮标的坐标。表1为实验过程浮标定位信息和三维激光雷达扫描的无人艇相对位置坐标,表2为无人艇实际位置数据和浮标传感系统解算的无人艇位置信息及其误差。
表1 浮标传感设备数据
表2 监测系统定位数据对比分析
从实验结果可以看出,基于浮标的无人艇航行监测系统解算的无人艇位置信息与无人艇传感系统定位数据的最小误差为0.33 m,最大误差为2.03 m,约为0.11个固定无人艇长度,平均误差为1.34 m,约为0.074个固定无人艇长度,满足无人艇性能测试要求。
本文设计了一种基于移动式浮标的无人艇航行监测系统,对监测系统相关硬件结构框架进行分析设计,提出一种用DGPS和三维激光雷达融合解算无人艇航行位置的方法,从而实现监测无人艇航行。通过实验测量海上固定无人艇的信息,验证了监测系统监测艇航行位置平均误差为1.34 m,约为0.074个无人艇艇身长度,这对无人艇的性能(自主航行性能、避障性能等)测试结果影响极小,表明了基于移动式浮标的无人艇航行监测系统的有效性,为后续无人艇性能测试奠定基础。