一种多AUV水下协同作业的模拟实验平台的制作方法

文档序号:23185354发布日期:2020-12-04 14:14阅读:251来源:国知局
一种多AUV水下协同作业的模拟实验平台的制作方法

本发明属于自主水下航行器领域,尤其涉及一种多auv水下协同作业的模拟实验平台。



背景技术:

海洋占地球表面的71%,蕴藏着丰富的海洋生物资源、矿物资源和能源,是人类社会可持续发展的重要财富。随着人类越来越频繁和深入的开展海洋开发活动,在水下恶劣环境中,搭载多传感器的自主水下航行器(autonomousunderwatervehicle,auv)已成为人类延伸自己感知能力的主要工具之一。

auv进行水下作业,需要每时每刻了解自身所处的位置,才能决定下一步要进行的动作,因而高精度的融合多传感器信息的导航方法是auv完成任务的技术保障。在导航基础上,auv还要实现路径规划,任务决策,自主控制等功能,从而完成一个完整的水下作业。

然而auv的研制过程较长,多auv水下协同实验更是需要大量的财力和精力支持,因此出现了一些auv模拟实验平台。这些实验平台通常用软件仿真或者半实物模拟auv运动,将相应传感器数据上传到一台计算机中,运行核心算法程序,生成相应的运动指令信息再下发到模拟auv中。但现有的auv模拟实验平台仍存在以下不足:1.现有的模拟实验平台多是依赖纯软件来模拟auv运动或是半实物的仿真平台;2.现有的模拟实验平台多是针对单auv进行模拟,对多auv协同的模拟实验平台涉及较少。



技术实现要素:

本发明的目的在于针对现有技术的不足,提供了一种多auv水下协同作业的模拟实验平台。

本发明的目的是通过以下技术方案来实现的:一种多auv水下协同作业的模拟实验平台,是由多个互相通信的单auv模拟平台扩展得到的多auv协同平台;

所述单auv模拟平台由上位机、模拟auv组成;

所述模拟auv为遥控船组件或rov;所述遥控船组件包括遥控船、遥控器、单片机和智能终端;所述rov包括运行机构、处理机和传感器模块;

所述智能终端用于采集传感器信息,包括角速度、加速度、旋转矩阵、gps定位数据和姿态角;

所述rov的传感器模块用于采集传感器信息,包括角速度、加速度、旋转矩阵、gps定位数据、姿态角和深度;

每个单auv模拟平台在上位机上搭载一个moos平台,由数据通信模块、融合导航模块、规划决策模块和运动控制模块组成;一方面每个moos平台的pshare进程连接moosdb,获取该moos平台中其它进程的消息;另一方面不同moos平台通过pshare进程两两连接互相通信;

所述数据通信模块用于通过pcomm进程分别与各单auv模拟平台的智能终端或处理机通信,获取传感器信息并通过moosdb发送给融合导航模块,以及实时监测连接活性;

所述融合导航模块用于通过导航滤波算法处理传感器信息,得到模拟auv当前状态估计值并发送给规划决策模块;

所述规划决策模块用于根据各模拟auv当前状态估计值,通过路径规划算法结合优化方法,得到各模拟auv下一时刻的状态期望值并发送给运动控制模块;

所述运动控制模块用于根据各模拟auv下一时刻的状态期望值,通过prb_pid进程的控制逻辑转化为控制信息,再由puart进程封装成数据帧后发送给模拟auv实现运动控制;

所述puart进程用于串口通信,将控制信息组装成帧;

所述模拟auv的状态信息包括三维位置、速度、姿态角。

进一步地,所述pcomm进程采用io多路复用机制,包括一个主线程和两个子线程;其中,主线程用于获取数据和moosdb通信;一个子线程用于启动进程与moosdb通信;另一个子线程用于pcomm与客户端通信;所述客户端为智能终端或rov处理机;

pcomm与客户端通信的子线程使用基于事件驱动的支持io多路复用技术的网络通信服务器,支持多个客户端同时连接;在初始化后等待事件发生,包括连接事件、读事件、写事件和定时事件;

所述连接事件用于处理新客户端的网络连接并为其注册读写事件;

所述读事件用于读取客户端的传感器信息数据包,解码提取原始数据;

所述写事件用于发送命令信息,将其编码成帧后发送给客户端;

所述定时事件用于检测连接活性,客户端定时发送心跳检测数据到pcomm进程,在定时器中检查最近接收的心跳包是否超时;如超时则连接失效,尝试重新连接,同时pcomm进程自动清理失效连接有关的数据,为新连接创建所需资源。

进一步地,所述pcomm进程还将传感器信息数据包分发到moos平台中的各传感器进程,并统计传输速率和延时用来验证各模块通信是否能达到实时要求;所述传感器进程包括惯导模拟传感器进程、声传感器模拟进程、其他目标模拟进程和视觉传感器进程;所述惯导模拟传感器进程用于模拟惯导传感器的数据采集,包括模拟auv位置、速度和姿态;所述声传感器模拟进程用于模拟声传感器数据生成,包括各模拟auv之间距离和方位;所述其他目标模拟进程用于产生其他模拟auv的信息,包括三维位置;所述视觉传感器进程用于输出视觉处理信息,包括各模拟auv之间相对距离和相对姿态。

进一步地,所述prb_pid进程的控制逻辑为:首先计算模拟auv的导航航向角与期望航向角的差值;若航向角差值的绝对值小于给定阈值,则沿原方向前进;否则,如航向角差值为正则左转,为负则右转;还需要考虑rov的深度,计算导航深度与期望深度的差值,若深度差值为正,则下潜,为正则上浮;左转右转的转向速度和上浮下潜的速度均由pid控制算法根据航向角差值和深度差值得到。

进一步地,所述模拟auv采用遥控船组件;由于遥控船在水面运动,模拟auv的深度始终为0;遥控船组件的智能终端固定在遥控船上采集传感器信息,并通过wifi发送给数据通信模块,由运动控制模块发送控制信息给单片机提取出指令数据发送给遥控器;指令数据分为两部分:第一部分为标志位,取值对应遥控船直行、左转、右转;第二部分为根据左转或右转的转向速度得到螺旋桨转速映射值的电压信息;遥控器将指令数据经过da转换,根据电压信息改变两个控制引脚处的电压,遥控器再发送电机控制指令给遥控船,控制对应的两个螺旋桨转速;如两引脚电压相同,则对应螺旋浆转速相同,遥控船直行;如两引脚电压不同,电压较高的引脚对应的螺旋桨转速也较高,遥控船向转速较低的一边转向。

进一步地,所述遥控船组件的智能终端连接usb摄像头后拍摄水下图像,并通过wifi传输给上位机;所述rov连接水下声呐或水下摄像头后采集声呐数据或水下图像,并通过线缆传输给上位机。

进一步地,还包括图形交互模块,一方面是负责显示各个模块的关键数据,包括auv的实时导航数据、摄像头的图像数据和网络传输数据;另一方面接收交互命令,包括对接任务开始与对接终止命令和对auv进行手动操控的方向控制命令,均以按钮形式显示。

进一步地,所述对auv进行手动操控的方向控制命令包括前进、左转、右转、后退和停止;由图形交互模块发送控制信息给单片机提取出指令数据发送给遥控器;其中,指令数据的第一部分标志位为后退时,遥控器两引脚电压取反且相同时,对应螺旋桨则向相反方向转动且转速相同。

进一步地,所述pshare进程通过水声通信模拟模块与moosdb进行交互;所述水声通信模拟模块的数据处理包括延迟发送、限制发送数据包大小和随机丢失小量数据包,用于模拟auv水下通信过程中的时延大、带宽低、易受干扰的问题。

进一步地,所述数据通信模块基于tcp协议定义传输的数据帧格式为:

本发明的有益效果是:

(1)本发明提出了一种多auv水下协同作业的模拟实验平台,相比现有的仿真和模拟实验平台,本平台具有实验过程简便、调试效率高、设计成本低,扩展性好和可靠性高的特点;

(2)现有技术多是针对单auv设计的实验平台,本发明针对多auv模拟实验平台设计的关键问题,设计实现了多auv的消息通信方案,并利用心跳检测机制保证了可靠性;

(3)本发明实现的auv软件平台,使用扩展卡尔曼滤波(extendedkalmanfilter,ekf)算法,可融合速率不同的多源传感器信息,解决了传感器测量延迟问题,并且能够自动检测和剔除野值,提高导航精度。

附图说明

图1为单auv模拟平台的总体框架示意图;其中,(a)是使用水面遥控船模拟auv的总体框架,(b)为使用rov模拟auv的总体框架。

图2为多auv之间消息通信的原理框图;

图3为一个moos应用的具体流程图;

图4为单auv软件平台的整体框架示意图;

图5为通信进程pcomm的流程图;

图6为融合导航进程pfusionnav的流程图;

图7为ekf迭代过程流程图;

图8为多auv协同作业场景示意图;

图9为水池auv回坞对接实验的场景图;

图10为一次水池auv回坞对接实验中auv的导航轨迹图;其中,(a)为完整轨迹图,(b)为局部放大轨迹图。

具体实施方式

本平台包括软件平台和硬件平台设计。软件平台运行在上位机中,由一组互相通信的模块组成,每个模块负责完成一部分任务,其中核心模块涉及数据通信模块,融合导航模块,路径规划模块以及自主控制模块。硬件平台由遥控船,或是遥控无人航行器(remoteoperatedvehicle,rov)来模拟auv,一方面遥控船通过搭载智能终端设备(比如手机、平板电脑等)携带的传感器模块或者rov通过其自带传感器模块来采集传感器数据,并将数据上传到通信模块,另一方面上位机将通过特定的指令来操控遥控船和rov的航行运动。多auv协同作业时,每个auv可在同一个上位机中独立运行自己的软件处理平台,也可各自独占一个上位机,auv之间通过各自的桥接模块互相进行通信。

为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。将按照单auv总体框架,多auv协同平台设计,单auv硬件平台,单auv软件平台四部分依次展开说明。

(1)单auv总体框架

单auv总体框架如图1所示,可以使用遥控船或者遥控无人航行器(remoteoperatedvehicle,rov)两种方法来模拟单auv。

若使用遥控船模拟单auv,总体框架如图1(a)所示。单auv模拟实验平台由上位机、遥控船、智能终端、遥控器和单片机组成。遥控船背部固定智能终端设备(注意防水保护),通过智能终端设备中开发的软件应用采集其携带的gps,惯性测量单元(inertialmeasurementunit,imu)以及电子罗盘传感器数据,并通过wifi网络将这些传感器数据传给岸上上位机,岸边上位机接收到传感器数据后输入给融合导航模块;融合导航模块中的导航算法根据传感器信息估计出auv当前状态,包括三维位置、速度和姿态信息,输入给路径规划模块,路径规划模块输出期望航向和速度信息给控制器等模块,控制器模块生成实际的航行控制指令信息;这些指令信息通过串口通信方式输出给单片机,单片机程序处理后输出电压信息给遥控器,遥控器通过无线电将航行控制指令发送给遥控船的推进器,进而操控遥控船的水面航行,最终模拟出auv的整个自主航行。

若使用rov模拟auv,总体框架如图1(b)所示。单auv模拟实验平台由上位机和rov两部分组成。rov的上位机软件平台的处理过程与遥控船基本类似,不同的是rov与上位机通过线缆连接,rov中处理机采集到rov所携带的各传感器信息,包括gps、imu、电子罗盘以及深度计,通过线缆传输给上位机。rov的上位机也是通过线缆将航行控制指令发送给rov的推进器,进而操控rov的水面/水下航行,模拟auv的整个自主航行过程。

此外,遥控船和rov均添加了面向任务的扩展模块。固定在遥控船上的智能终端设备可以通过usb线连接usb水下摄像头或水下声呐,并将水下摄像头拍摄的图像数据或水下声呐接收的水声数据通过wifi传输给上位机。rov具有扩展接口,可以连接水下声呐或者水下摄像头,并通过线缆将水声数据或图像数据传输给上位机。

(2)多auv协同平台

扩展多个遥控船或多个rov,将单auv模拟平台的实现框架扩展至多auv协同平台,并实现各单auv模拟平台的消息通信机制。每个单auv模拟平台在上位机中搭载一个moos(missionorientatedoperatingsuite)平台,多个单auv模拟平台可单独配置自己的上位机或共用同一台上位机。本发明利用moos应用进行各auv的moos平台之间通信的方法,并且在moos平台中加入了水声通信模拟模块,用来模拟auv实际水下通信的过程,,其原理框图如图2所示。

图2显示了三台模拟auv(auv_1、auv_2、auv_3)之间消息通信的原理框图,更多台模拟auv之间的通信与之类似。如图2所示,每台auv上位机moos平台中心为moosdb,moosdb与pcomm通信系统互相通信,接收遥控船或rov的传感器信息。moosdb将传感器信息传给上位机中核心处理模块,包括融合导航模块、规划决策模块、运动控制模块、图形交互模块等。然后再将处理后的信息(位置、速度、姿态等),通过水声模拟模块处理后,经过pshare进程完成各auv的moos平台之间的信息交互。水声模拟模块通过延迟发送、限制发送数据包大小、随机丢失小量数据包等方法来真正模拟auv水下通信过程中的时延大、带宽低、易受干扰等问题。图2中的pshare进程为各auv的moos平台之间的通信模块,该进程利用了moos本身的通信模式,其工作分为两部分:一方面pshare进程与moosdb连接,获取同一个moos平台中其它进程的消息;另一方面所有pshare进程两两连接,互相发送消息,从而间接实现了不同moos平台之间的消息通信。各moos平台之间的pshare进程通信机制采用上位机通信模块中pcomm进程的通信原理,采用io多路复用机制完成多个pshare进程的通信,这里每个pshare进程的地位都是平等的,同时发送和接收消息。

pshare还需要将一条特定的消息发送到目的进程中,即路由过程;这里采用的配置文件的方法,将感兴趣的消息配置为一条路由记录,格式为<消息方向><源消息名><目的消息名><目的ip>;这样pshare便可在初始化时读取路由记录获取每条感兴趣消息的路由信息,发送到指定的moosdb中,目的进程也可根据消息名从moosdb中获取指定的消息。

(3)单auv硬件部分

考虑到实际auv的尺寸较大,成本较高且调试费时费力等缺点,本平台使用遥控船搭载智能终端或rov来实现auv的自主航行任务。使用rov模拟auv在硬件上基本不需要进行改造,而使用遥控船还需进行以下两点改造:

第一,模拟auv的自主航行功能,即通过上位机发送指令,遥控船自主航行完成任务。这主要通过一个单片机(型号为stm32f103vet6)实现,单片机程序负责与上位机的通信过程,接收到上位机发送的串口数据后,触发中断,进入中断处理程序;经过成帧、解析、校验等步骤,提取出指令数据内容。指令数据分为两部分:第一部分为标志位,取值对应遥控船直行、左转、右转和后退等操作;第二部分为螺旋桨转速映射值,这些映射值经过da转换改变遥控器两个控制引脚处的电压,进而操控对应两个螺旋桨的转速,实现对遥控船的控制,具体的控制策略为:两引脚电压相同,则对应螺旋浆转速相同,直行;两引脚电压不同,引脚电压较高的对应的螺旋桨转速也较高,往转速较低的方向转向;假设左边引脚电压高,则左螺旋浆转速高于右螺旋桨,右转;左转类似;两引脚电压取反且相同时,对应螺旋桨则向相反方向转动且转速相同,后退。

第二,auv进行自主运动需要实时获取自身状态信息,包括位置,速度和姿态角等,为此在遥控船上绑上一个智能终端设备(比如手机、平板电脑等),利用智能终端内置的传感器来获取一些测量数据,这些数据经过wifi传输到上位机软件平台,进一步处理即可获取遥控船的导航信息。

(4)单auv软件平台

单auv软件平台是基于开源软件moos进行二次开发完成的,搭载在上位机中;moos最初是由paulnewman于2001年在美国麻省理工学院做博士后时编写的软件,广泛应用于自主机器人特别是自主水下航行器领域。从拓扑结构看,软件平台中所有应用的信息交互以moos数据库(moosdatabase,moosdb)为中心,呈现出星型拓扑结构。用户编写的应用与moosdb之间的通信是通过发布订阅(publish-subscribe)模式来完成的,一个应用的具体流程如图3所示:应用启动后,该应用首先与moosdb连接,然后通过onstartup()函数完成应用初始化的任务。此时,该应用创建了一个子线程用于该应用与moosdb通信,该子线程有两个工作:一为从moosdb中取出该应用订阅的消息,并存放在收件箱inbox中;二为从发件箱outbox中取出该应用发布的消息到moosdb中,如果取出的消息中有应用退出信号,则整个应用运行结束。除了子线程外,该应用的主线程用于该应用的数据处理,主要包括两个核心函数:onnewmail()函数和iterate()函数。onnewmail()函数实现从收件箱inbox取出消息,并做数据解析处理。iterate()函数为该应用核心功能,处理从moosdb接收到的消息,并将处理过的消息发送给发件箱outbox。单auv的软件平台是由上位机中运行的一组相互通信的应用组成,每个应用都由接收消息、主循环完成运算、发送消息的重复迭代组成,迭代的频率由apptick时钟决定。

单auv的软件平台整体框架设计如图4所示,整个框架按照功能划分为数据通信、融合导航、规划决策和运动控制与图形交互这五个模块。数据通信模块为pcomm进程,该进程用于上位机与遥控船绑定的智能终端或者rov处理机通信;融合导航模块为pfusionnav进程;规划决策模块包括ppathplan进程和phelmivp进程以及预先定义的任务文件;运动控制模块为prb_pid进程;图形交互模块为pvisongui进程;图中还有pins、pusbl、pmobileobject、pvision四个进程,这四个进程为传感器进程,pcomm进程采集的传感器信息经过传感器进程后到达融合导航模块;其中惯导模拟传感器进程pins,用于模拟惯导传感器的数据(模拟auv位置、速度、姿态)采集;声传感器模拟进程pusbl,用于模拟声传感器数据(各模拟auv之间距离、方位)生成;其他目标模拟进程pmobileobject,用于产生其他模拟auv的信息(三维位置);视觉传感器进程pvision,用于输出视觉处理信息(各模拟auv之间相对距离,相对姿态),下面将按照数据流动的方向依次介绍每个模块的功能,重点是数据通信与融合导航模块。

(4.1)数据通信模块

数据通信模块中的pcomm进程负责与遥控船上绑定的智能终端或者rov处理机进行通信,采集各类传感器原始数据并将数据分发给各类传感器进程。根据多auv协同作业的需求,pcomm进程必须与多个智能终端或者rov处理机建立连接,以便采集每个模拟auv数据进行分析,并实时监测连接活性。智能终端和rov处理机传输的数据包括角速度、加速度、旋转矩阵、gps定位数据、姿态角和心跳检测数据。数据通信模块基于tcp协议完成,定义传输的数据帧格式如表1所示。

表1:数据通信模块基于tcp协议定义传输的数据帧格式

考虑到导航模块对数据速率的要求,pcomm进程与智能终端中开发的软件应用或者rov处理机以一定频率进行数据通信;智能终端或者rov处理机中的传感器数据以较高频率上传,而pcomm进程以较低频率采集传感器数据,并做时间对齐,分发到各传感器进程。

pcomm进程的主要流程如图5所示,该进程在完成初始化后,共运行三个线程,包括一个主线程和两个子线程;其中,主线程用于获取数据和moosdb通信;一个子线程用于启动该进程与moosdb通信;另一个子线程用于pcomm与智能终端通信,该线程使用基于事件驱动的支持io多路复用技术的网络通信服务器,同时支持多个客户端连接。pcomm与智能终端通信的线程在初始化后等待事件发生,每种事件设置不同的回调函数处理,这些回调函数是用户处理的核心;共有以下四种事件:连接事件用来处理新客户端的网络连接,并为其注册读写事件;读事件用来读取智能终端或rov处理机的传感器数据包,按表1定义的数据帧格式数据包解码,提取出原始数据;写事件用来发送命令信息,将其编码成帧后发送给智能终端或rov处理机;定时事件用来检测连接活性,每隔一段时间(默认为2s),智能终端或rov处理机定时发送心跳包到上位机中pcomm通信进程,在定时器中检查最近接收的心跳包是否超时来判断连接的有效性。若连接失效,智能终端开发的软件应用或rov处理机会自动检测到这种情况,尝试一定次数的重新连接,而pcomm进程也会自动清理失效连接有关的数据,为新连接创建所需资源,这样就保证了通信的可靠性。此外,pcomm进程还完成了相关数据包分发到上位机moos平台中的各传感器进程,并统计传输速率和延时用来验证上位机与模拟auv之间通信是否能达到实时要求。

(4.2)融合导航模块

融合导航模块主要负责加工各类传感器数据,对模拟auv状态进行实时估计。各个传感器进程会根据需要进行数据预处理,包括时间配准和空间配准,生成相应的传感器测量数据,这些传感器包括惯性导航系统、usbl传感器以及视觉引导系统等。融合导航进程pfusionnav负责接收各个传感器进程的实时测量数据,并实现相应的导航滤波算法,得到auv状态的估计值,供规划决策模块使用。如图6所示,pfusionnav进程启动后,先进行初始化工作,并创建一个子线程用于与moosdb通信,主线程用于实现融合导航模块核心功能。其中,onnewmail()函数收取各传感器的测量信息,整理后作为当前的测量向量;iterate()函数执行ekf算法的迭代过程,并且导航进程还实现了对测量信息的野值检测,判断标准为:若测量值的新息协方差超过阈值,则直接舍弃当前测量值。同时,如果iterate()函数产生了进程退出信号,则该进程运行结束。

其中,导航算法采用ekf算法;ekf是一种典型的非线性滤波方法,采用函数泰勒展开并略去二阶及更高阶项的方式去近似非线性函数,将非线性问题线性化,然后再使用标准的卡尔曼滤波进行状态估计;ekf算法优点是形式简单,在非线性不强的系统中估计性能较好。ekf算法的状态输入量主要包括auv自身的绝对位置,姿态和速度以及auv与移动目标的相对位置和相对姿态。如图7所示,ekf的一次递推过如下:

(4.2.1)时间更新

pk|k-1=fk-1pk-1f'k-1+qk-1

式中,为上一时刻状态的估计值,为当前时刻状态的预测值,f(·)为非线性状态转移函数,pk|k-1为当前时刻预测状态协方差矩阵,fk-1为过程雅克比矩阵,pk-1为上一时刻状态估计的协方差矩阵,f'k-1为过程雅克比矩阵的转置,qk-1为状态转移函数的噪声方差矩阵(4.2.2)测量更新

kk=pk|k-1h'k(hkpk|k-1h'k+rk)-1

pk=(i-kkhk)pk|k-1

式中,为测量预测值,h(·)为非线性函数;kk为卡尔曼增益,hk为测量雅克比矩阵,h'k为测量雅克比矩阵的转置,zk为测量向量,pk为后验误差协方差矩阵,rk为测量方程噪声方差矩阵,为当前时刻状态估计值,i为单位矩阵。。

(4.3)规划决策模块

规划决策模块负责分析auv当前执行的任务,采用一定的路径规划算法,并结合一些优化方法(如蚁群算法、遗传算法等)给出auv下一时刻的期望值,包括航向角,速度和深度信息。

ppathplan进程主要负责路径规划过程,假设一个auv需要执行回坞对接任务,该进程将这个任务分成多个阶段完成,在每个阶段ppathplan会根据当前的auv及目标状态,规划出基本的定点航行任务,定向航行任务或是其它的自定义任务,直到auv满足各阶段任务完成的要求(比如定点航行任务达到目标点的要求)会进入下一阶段,最终完成整个回坞对接任务。

phelmivp进程根据当前任务给出决策信息,首先它读取预先写好的任务配置文件设初始化和参数设置,比如auv的起点设置。随后它将接收到ppathplan进程发送的任务信息,对于定点航行任务是连续的定位点,对于定向任务是目标航向角,若是自定义任务,也需按照一定规则编写处理逻辑即可。经过对多个任务的优化计算,该进程会最终给出auv下一时刻的期望航向角,速度和深度。

(4.4)运动控制模块

运动控制模块负责接收auv下一时刻的期望值。其中,若使用遥控船模拟auv,auv接收到的下一时刻期望值经过prb_pid进程中的控制算法转化为控制信息,再由puart串口进程将控制信息封装成数据帧,发送给遥控器,puart进程负责串口通信,将控制信息组装成帧,帧格式类似于数据通信模块给出的表1数据帧格式,包括8位大小的帧头,用于识别帧信息,16位大小的数据,以及8位大小的检验码,用于检验帧数据的正确性。这些数据经过串口进入单片机后,会触发中断,在中断处理程序中进行解析数据,改变遥控器两个控制引脚处的电压,然后遥控器通过无线电将电机控制指令发送给遥控船,从而实现对遥控船的自主控制。

prb_pid进程根据当前的期望值结合pid(proportionalintegraldifferential,比例积分微分)控制算法进行控制。若使用遥控船模拟auv,此时控制比较简单,不需要考虑深度,只需给出两个螺旋桨的转速信息即可;若使用rov模拟auv,prb_pid控制进程还需要考虑深度信息,具体的控制逻辑与遥控船类似。

使用遥控船时prb_pid进程的控制逻辑为:

(4.4.1)计算导航航向角与期望航向角的差值;

(4.4.2)若航向角差值的绝对值小于给定阈值(本实施例为1),则前进;否则,如差值为正则左转,为负则右转;

(4.4.3)遥控船左右转的转向速度由pid算法给出。

使用rov时prb_pid的控制逻辑为:

(4.4.1)计算导航航向角与期望航向角的差值,计算导航深度与期望深度的差值;

(4.4.2)若航向角差值的绝对值小于给定阈值(本实施例为1),则前进;否则,如差值为正则左转,为负则右转;若深度差值为正,则下潜,为正则上浮。

(4.4.3)rov左右转转向速度以及上浮下潜的速度由pid算法给出。

(4.5)图形交互模块

图形交互模块pvisiongui进程主要有两个作用:一方面是负责显示各个模块的关键数据,展示给用户,如auv的实时导航数据(位置、速度和姿态),摄像头的图像数据,网络传输数据(网络连接情况、传输速率等)等;另一方面接收用户下达的交互命令,如对接任务开始与对接终止命令;以及对auv进行手动操控的方向控制命令,如前进、左转、右转、后退和停止命令;这些以按钮形式显示;由图形交互模块发送控制信息给单片机提取出指令数据发送给遥控器;其中,指令数据的第一部分标志位为后退时,遥控器两引脚电压取反且相同时,对应螺旋桨则向相反方向转动且转速相同。

综上所述,就是多auv水下协同的模拟实验平台设计完整过程。下面以水池auv回坞对接任务为场景,介绍本平台的具体实验应用。图9为实验场景,其中auv(使用遥控船模拟)下边固定一个摄像机用于捕获图像,作用距离5~10米。对接目标下边固定一个灯架,十字形对称布放四个led灯源。图中虚线为移动目标的航行轨迹,实线为auv的航行轨迹。另外,在岸边还有两台计算机,分别运行auv与移动目标的软件平台。移动目标的软件较为简单,只需要实时导航定位其位置,航向等信息,然后做定向航行。而auv则需要定期获取对接目标的相对位置和相对航向角,并结合视觉导引提高精度,整个对接过程auv的轨迹通过路径规划进程计算得到。图10展示了整个对接过程auv的导航轨迹,图中三角为auv的起点,圆圈为auv的终点。十字线为惯性导航系统的输出轨迹,点线为ekf算法的估计轨迹,可以看出ekf算法具有较高的估计精度和可靠性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1