一种基于数据服务的无人机控制系统的制作方法

文档序号:17900476发布日期:2019-06-13 16:24阅读:138来源:国知局
一种基于数据服务的无人机控制系统的制作方法
本发明涉及无人机控制和数据处理的研究领域,特别涉及一种基于数据服务的无人机控制系统。
背景技术
:技术的进步使得无人机的应用领域逐渐扩大,无人机也愈发受到世界各国研究学者的关注。现有技术中虽然证明无人机控制系统的重要性,然而未考虑无人机控制系统中功能组件调用频率的非对称性,也未简易组件服务间的调用方式;无人机控制系统是一个构建在有限、可更换传感器、执行器和通信设备基础资源之上的系统,传感器、执行器和通信设备作为高频使用设备被上层高级功能组件调用,随着无人机微型化、智能化的发展趋势,其高级功能组件日益增多,大量的功能组件和集成对无人机控制系统有限的运算、存储资源带来极大的冲击,因而在资源受限的情况下,协调高级功能组件和有限无人机基础资源服务效率成为急需解决的问题。技术实现要素:本发明的主要目的在于克服现有技术的缺点与不足,提供一种基于数据服务的无人机控制系统,实现了基于数据服务的无人机控制系统,对数据缓存池采用合理的数据更新方式,以多种服务策略向服务调用提供输入参数的数据服务,提高无人机基础资源的使用率和实时性,简化了组件服务的调用方式。本发明的目的通过以下的技术方案实现:一种基于数据服务的无人机控制系统,包括用户功能组件、软件总线组件、数据服务组件、基础服务组件、硬件接口层;所述用户功能组件包含任务规划组件、航迹规划组件、编队控制组件、群体智能组件、其他扩展功能组件;所述任务规划组件用于无人机任务的规划;所述航迹规划组件用于无人机飞行路线的规划;所述编队控制组件用于无人机编队队形的控制;所述群体智能组件用于无人机集群的智能控制;所述其他扩展功能组件用于扩展其他需要用到的功能;所述软件总线组件采用中间件技术,对功能相关组件进行解耦,用于消息调度服务和组件管理服务,维持系统的可扩展性和功能组件的互用性、复用性;所述数据服务组件通过获取服务调用所需输入参数,构建三级数据缓存池,采用主动固定周期和按需更新的策略对数据进行管理和处理;所述基础服务组件包含硬件数据接口组件、通信数据接口组件、数据库数据接口组件;所述硬件数据接口组件用于对接传感器和执行器;所述通信数据接口组件用于对接通信设备;所述数据库数据接口组件用于提供历史数据存储和查询;所述硬件接口层包含传感器、执行器、通信设备、数据库;所述传感器用于接收控制信号;所述执行器用于执行控制信号;所述通信设备用于信号互通;所述数据库用于数据的存储;所述组件间采用分层服务端/客户端架构,即层级server/client架构;所述数据服务组件通过获取服务调用所需输入参数,构建三级数据缓存池,采用主动固定周期和按需更新的策略对数据进行管理和处理。进一步地,组件均采用进程形式实现;组件服务以线程形式实现;进一步地,所述server/client架构形成过程如下:各组件开始运行,并以client角色通过tcp向默认port的软件总线组件发起connect请求;当软件总线组件作为server的监听服务已经启动,则client角色的组件发送组件注册消息component_register;当软件总线组件作为server的监听服务未启动,则client角色的组件等待监听服务启动;软件总线组件解析组件注册消息,并根据组件注册消息component_type判断组件类型;当组件注册消息component_type为0时,该组件为数据服务组件,则记录组件注册消息中的data_service_port,并向组件回复组件注册应答消息component_register_responed,其中包含注册状态register_status,注册状态register_status为-1,则注册失败,组件被停止运行;注册状态register_status为0,则注册成功,数据服务组件成为软件总线组件的client;注册状态register_status为1,则注册所需应答消息不足,需要延时注册;当component_type为0,且注册应答消息component_register_responed中的注册状态register_status为0时,该client组件根据回复的data_service_port向数据服务组件发送connect请求,建立连接后发送basic_register消息,数据服务组件回复basic_register_responed消息,并将basic_register_responed消息发送至软件总线组件的组件管理服务,以跟踪基础服务组件的实际注册状态,若register_status为0则注册成功,该组件成为数据服务组件的client;当component_type为1时,该组件为基础服务组件;当数据服务组件已完成注册,若register_status=0,软件总线组件回复的组件注册应答消息中的data_service_port将被设定为数据服务组件的服务监听端口;若register_status=1,基础服务组件需要延时发送组件注册消息;当component_type为2时,该组件为用户功能组件,若注册成功,则直接成为软件总线组件的client;若注册失败:则根据反馈信息对组件进行修改,并重新申请注册。进一步地,所述server/client间采用基于套接字通信方法;采用传输控制协议的通信协议;消息格式采用proto3格式;进一步地,所述软件总线组件进行解耦通过标准化模块间通讯协议实现,通过集中式消息调度对相关功能组件进行解耦;进一步地,所述软件总线组件以server角色对作为client角色的数据服务组件和用户功能组件提供组件管理服务和消息调度服务;所述组件管理服务在完成组件的注册之后,记录已注册组件服务的输入输出数据关系,并对各组件所提供的服务进行运行时状态监测,为数据服务组件的准确数据服务提供支持;所述消息调度服务对所有组件的注册、运行时状态和控制消息进行调度;依据组件管理服务记录的用户功能组件所提供服务的输入和输出关系生成用户功能组件和数据服务组件间的调度策略;对用户功能组件和数据服务组件间的消息进行调度;进一步地,所述数据服务组件以server角色对作为client角色的硬件数据接口组件、通信数据接口组件、数据库数据接口组件提供数据更新服务,构建三级数据缓存池,并以软件总线组件的client角色向用户功能组件提供数据服务;进一步地,所述数据服务组件以软件总线组件的client角色向用户功能组件提供数据服务,具体包含集中管理基础资源、数据缓存池、数据更新服务、数据关系拓扑、数据服务策略;所述集中管理基础资源具体为:数据服务组件以server角色集中管理传感器和执行器对应的硬件数据接口组件、异构通信设备对应的通信数据接口组件和提供历史数据存储及查询的数据库数据接口组件;所述数据缓存池具体为:数据服务组件依据组件服务输出参数和组件服务输入参数构建三级数据缓存池,为数据服务的实时性提供保障,从上到下依次为无人机状态和控制数据,它机状态和控制数据,本机大容量传感器数据;所述数据更新服务具体为:数据服务组件的数据更新服务支持主动/被动数据更新方式;主动数据更新时,数据服务组件主动调动对应的组件服务获取需要更新的数据,采用可配置频率对数据进行更新;被动数据更新时,数据服务组件被动接受组件服务产生的新数据;经过更新之后,对数据缓存池数据进行更新;所述数据关系拓扑具体为:记录控制系统各组件提供服务的输入参数和输出的关系拓扑,并追踪组件服务的运行状态,为持续数据服务提供结束标识;所述数据服务策略具体为:当一次请求,一次服务时,一次数据服务调用,数据服务组件仅提供一次数据服务;当一次请求,持续周期服务时,一次数据服务调用,数据服务组件将周期为数据需求组件服务提供输入数据,直到该组件服务处于等待状态;当一次请求,持续被动服务时,数据服务组件检测到需求数据发生变更时,为组件服务输入数据,直至该组件服务处于等待状态。本发明与现有技术相比,具有如下优点和有益效果:1、本发明采用层级server/client架构,以数据服务为核心,充分利用无人机基础资源,合理协调无人机基础资源和用户功能组件的数据供需关系,保证和提升了用户功能组件服务调用的实时性需求,又简化了组件服务之间的调用方式;2、本发明的数据服务组件通过集中管理无人机基础资源,构建三级数据缓存池,采用主动固定周期和按需更新的策略对数据进行更新,既合理使用了系统资源,又保证了数据缓存池数据的实时性。附图说明图1是本发明所述一种基于数据服务的无人机控制系统的系统结构图;图2是本发明所述实施例中软件总线组件的工作流程图;图3是本发明所述实施例中数据服务组件结构图;图4是本发明所述实施例中数据服务组件工作流程图;图5是本发明所述实施例中控制系统结构流程图。具体实施方式下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。实施例:一种基于数据服务的无人机控制系统,如图1所示,包含用户功能组件、软件总线组件、数据服务组件、基础服务组件、硬件接口层;所述用户功能组件包含任务规划组件、航迹规划组件、编队控制组件、群体智能组件、其他扩展功能组件;所述任务规划组件为任务规划,用于无人机任务的规划;所述航迹规划组件为航迹规划,用于无人机飞行路线的规划;所述编队控制组件为编队控制,用于无人机编队队形的控制;所述群体智能组件为群体智能,用于无人机集群的智能控制;所述其它扩展功能组件为其它扩展功能,用于扩展其他需要用到的功能;所述软件总线组件采用中间件技术,对功能相关组件进行解耦,具体为通过标准化模块间通讯协议实现,通过集中式消息调度对相关功能组件进行解耦;用于消息调度服务和组件管理服务,维持系统的可扩展性和功能组件的互用性、复用性;所述软件总线组件以server角色对作为client角色的数据服务组件和用户功能组件提供组件管理服务和消息调度服务;软件总线组件作为分层server/client架构的上层server,负责数据服务组件和用户功能组件的消息调度,在消息调度的同时,通过消息解析,将对应消息调度至对应的组件:组件注册消息、组件服务运行状态,将消息转至组件管理服务进行组件管理和组件服务运行状态的维护,依据此类消息维护组件管理服务数据表,当数据表变更时,向数据服务组件发送组件服务状态消息;数据服务消息转至数据服务组件,其它组件服务调用则依据数据请求的组件服务名称转发至目标组件,如图2所示;具体为:消息调度服务:消息调度服务的功能主要包含三个部分:①对控制系统中所有功能组件的注册、运行时状态和控制消息进行调度;②依据组件管理服务记录的用户功能组件所提供服务的输入和输出关系生成用户功能组件和数据服务组件间的调度策略;③对用户功能组件和数据服务组件间的消息进行调度。组件管理服务:组件管理服务在完成组件的注册之后,记录已注册组件服务注册信息,并对各组件所提供的服务进行运行时状态监测,为数据服务组件的准确数据服务提供支持。如下表1所示,数据名称(name)为组件管理服务自动生成,根据组件管理服务通过组件的注册消息生成,格式为“组件名.服务名.数据名”(component_name.service_name.data_name);服务名称(service)同name类似,格式为“组件名.服务名”(component_name.service_name);服务状态(status)代表服务的当前运行状态,可选值为{-1,0,1},-1代表注册失败,0代表休眠,1代表运行;更新频率(period)代表该数据的更新频率,可选值为{-1,1,p},其中p对应正整数,单位为毫秒;输入/输出(i/o)代表数据是服务的输出还是输入。表1组件管理服务数据表nameservicestatusperiodi/o数据名称服务名称服务状态更新频率输入/输出当软件总线组件启动时,作为server角色,开始接收未注册组件的连接(connect)请求和已注册组件的消息调度需求,涉及到组件注册、运行状态的消息调度转发至组件管理服务来完成,以跟踪监测组件服务的运行状态,提高数据服务的准确性,有效降低消息调度的传输;采用数据服务来获取服务输入数据的消息转至数据服务组件;未采用数据服务的服务调用则转至目的组件。由于软件总线组件采用的是socket服务监听机制,因而支持组件的运行时注册。所述组件管理服务在完成组件的注册之后,记录已注册组件服务的输入输出数据关系,并对各组件所提供的服务进行运行时状态监测,为数据服务组件的准确数据服务提供支持;所述消息调度服务对所有组件的注册、运行时状态和控制消息进行调度;依据组件管理服务记录的用户功能组件所提供服务的输入和输出关系生成用户功能组件和数据服务组件间的调度策略;对用户功能组件和数据服务组件间的消息进行调度;所述数据服务组件通过获取服务调用所需输入参数,构建三级数据缓存池,采用主动固定周期和按需更新的策略对数据进行管理和处理;即组件服务的调用可以抽象为获取输入参数、服务执行和产生输出结果三个过程,组件服务的调用流程可以用树来表示,节点代表数据,边的汇聚代表服务执行。数据服务组件正是利用该原理,通过同步、甚至超前获取服务调用所需的输入参数(该数据在服务调用时延允许范围内),缩短获取输入参数的执行时间,提高组件服务的调用效率;所述数据服务组件通过获取服务调用所需输入参数,构建三级数据缓存池,采用主动固定周期和按需更新的策略对数据进行管理和处理。具体为:数据服务组件主要包含五个服务:数据缓存池、数据关系拓扑、服务数据管理、数据更新和服务策略,如图3所示。数据服务组件的工作流程如图4所示,在组件间的分层server/client架构建立完成后,数据缓存池依据数据关系拓扑初始化,数据更新也依据数据的period属性和三级缓存池的数据更新需求对数据进行更新,在未收到消息调度服务转发的消息时,主要是数据更新服务对无人机基础资源,即基础服务组件,进行数据缓存的周期性更新;数据缓存池优选的,数据缓存池中的数据遵循proto3数据类型和字段约束(singular/repeated),便于数据的封装、传输和解析,其数据格式如表2所示,name与组件管理数据表一致;数据值(value)为数据名称对应的数值;如组件管理数据所示,period的可选值为{-1,1,p},-1值代表value变动时才更新,1代表value值更新一次,p则以固定周期p毫秒(ms)对数据进行更新,更新时间(time)代表数据值对应的更新时间,也为允许时延范围数据判断提供依据;针对无人机基础资源(传感器、执行器、通信设备和数据库)建立三级缓存,不同缓存对应不同数据更新频率。表2数据缓存池数据格式namevalueperiodtime数据名称数据值更新频率更新时间数据关系拓扑优选的,数据关系拓扑,记录组件服务的输入参数和输出的关系拓扑,并追踪组件服务的运行状态,为持续数据服务提供结束标识。数据关系拓扑数据表与软件总线组件中的组件管理模块数据基本一致,不同的是数据关系拓扑表中记录了服务均耗时(cost),通过cost为数据更新和服务策略提供支持。表3数据关系拓扑数据表nameservicestatusi/ocost数据名称服务名称服务状态输入/输出服务均耗时服务数据管理优选的,服务数据管理,组件服务的输入参数可能来源于多个不同的组件服务输出,组件服务的输出也可能影响多个服务数据,服务数据管理根据数据关系拓扑对输入参数进行合成,合成适合服务调用的输入参数,并对输出结果进行分解,分解为适合数据缓存池的数据更新。数据更新优选的,数据更新,以获取及时组件服务输入参数为目的,数据更新是实现数据服务实时性的核心。数据更新以数据本身特性和服务调用输入参数需求为基础,采用主动固定周期更新和按需数据更新相结合的方式。优选的,主动固定周期更新的对象是数据缓存池中的三级缓存数据,其周期可配置,由于本机传感器状态(位置、速度、加速度、航向角等)和执行器的控制接口是无人机的控制基础,因而位于数据缓存池最上层,其更新频率也最快;考虑到无人机可能被远程监控或执行多机协同作业,无线传输的时延,通过通信设备收发采用较次一级,频率也稍慢;无人机本身的其它附属传感器资源,将采用更慢的更新频率。优选的,按需数据更新针对的是用户功能组件,为了合理使用无人机运算资源,用户功能组件服务将采用动态运行策略,当服务调用所需要的数据(输入参数)来源于用户定义功能组件,该数据来源服务将被唤醒并执行数据更新服务,依据该数据的服务需求策略进行更新。服务策略优选的,数据服务的目标是为组件服务调用提供其所需的输入数据(参数),不同服务对数据的需求方式不一致,服务策略根据不同的数据需求提供三种不同类型的服务策略:①一次请求,一次服务,此服务策略下,一次数据服务调用,数据服务组件仅提供一次数据服务;②一次请求,持续周期服务,此服务策略下,一次数据服务调用,数据服务组件将周期为数据需求组件服务提供输入数据,直到该组件服务处于等待状态;③一次请求,持续被动服务,此服务策略下,数据服务组件检测到需求数据发生变更时才为组件服务提供输入数据,直至该组件服务处于等待状态。当数据服务组件接收到消息调度时,其执行流程如图4所示,具体为:①数据服务组件可能接收的消息为三种:data_request、data_responed和service_status。②消息为service_status时,数据关系拓扑更新对应的服务状态,如果服务运行状态由运行变为休眠,则服务策略将停止正在运行的持续数据服务消息data_responed的发送,并按如下公式(1)更新表3中的cost(costold为表当前记录的值,n为该服务调用的次数,costnow为服务此次执行的时间)。③消息为data_responed时,服务数据管理依据数据关系拓扑更新数据缓存池,如果该数据为基础服务组件的输入,则通过数据更新直接下发至对应的基础服务组件。④消息为data_request时,服务数据管理依据数据关系拓扑查询数据缓存池,如果数据缓存池存在数据,且数据在允许时延内,则此数据有效;如果数据不在允许时延内,调用数据更新服务对数据进行更新,允许时延的判断依据如下公式(2)所示(trequest为数据请求时间,tdata为数据更新时间,cost为服务均耗时,tupdate为数据的刷新频率,对应三级数据缓存池的刷新频率,如果数据为非三级数据缓存池数据,则tupdate默认为最下缓存刷新频率);如果数据缓存池不存在某个数据,数据更新模块会向数据对应的服务发送data_request。|trequest-tdata|≤max(cost,tupdate),⑤当服务数据管理收集到所有data_request需要的数据时,构造data_responed消息格式后,服务数据管理会依据服务策略提供数据服务。⑥服务数据管理会根据服务策略提供数据服务。所述基础服务组件包含硬件数据接口组件、通信数据接口组件、数据库数据接口组件;所述硬件数据接口组件用于对接传感器和执行器;所述通信数据接口组件用于对接通信设备;所述数据库数据接口组件用于提供历史数据存储和查询;所述硬件接口层包含传感器、执行器、通信设备、数据库;所述传感器用于接收控制信号;所述执行器用于执行控制信号;所述通信设备用于信号互通;所述数据库用于数据的存储;所述组件间采用分层服务端/客户端架构,即层级server/client架构;组件均采用进程process形式实现;组件服务以线程形式实现;所述server/client间采用基于套接字通信方法,即采用tcp通信;采用传输控制协议的通信协议;消息格式采用proto3格式;server/client架构形成过程,其流程如图5所述,具体描述如下:各组件开始运行,并以client角色通过tcp向默认port的软件总线组件发起connect请求;当软件总线组件作为server的监听服务已经启动,则client角色的组件发送组件注册消息component_register;当软件总线组件作为server的监听服务未启动,则client角色的组件等待监听服务启动;软件总线组件解析组件注册消息,并根据组件注册消息component_type判断组件类型;当组件注册消息component_type为0时,该组件为数据服务组件,则记录组件注册消息中的data_service_port,并向组件回复组件注册应答消息component_register_responed,其中包含注册状态register_status,注册状态register_status为-1,则注册失败,组件被停止运行;注册状态register_status为0,则注册成功,数据服务组件成为软件总线组件的client;注册状态register_status为1,则注册所需应答消息不足,需要延时注册;当component_type为0,且注册应答消息component_register_responed中的注册状态register_status为0时,该client组件根据回复的data_service_port向数据服务组件发送connect请求,建立连接后发送basic_register消息,数据服务组件回复basic_register_responed消息,并将basic_register_responed消息发送至软件总线组件的组件管理服务,以跟踪基础服务组件的实际注册状态,若register_status为0则注册成功,该组件成为数据服务组件的client;当component_type为1时,该组件为基础服务组件;当数据服务组件已完成注册,若register_status=0,软件总线组件回复的组件注册应答消息中的data_service_port将被设定为数据服务组件的服务监听端口;若register_status=1,基础服务组件需要延时发送组件注册消息;当component_type为2时,该组件为用户功能组件,若注册成功,则直接成为软件总线组件的client;若注册失败:则根据反馈信息对组件进行修改,并重新申请注册。上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1