本发明实施例涉及无人机技术,尤其涉及一种飞行集群模拟器。
背景技术:
目前无人机已经广泛应用于军事、农业、影视、警用等各领域。无人机通过位于地面的遥控器或地面站的控制进行飞行,或者根据预设的飞行线路实现自动飞行。无论哪种飞行控制方式,对无人机的飞行控制都由飞行控制器实现对无人机的飞行控制。
由于单一无人机的载荷较小,为了采用无人机执行大规模的飞行任务,可以采用无人机集群执行大规模飞行任务。无人机集群是由多个无人机和与多个无人机一一对应的遥控器或地面站组成的系统,通过为每台无人机规划不同的飞行任务,可以由无人机集群执行复杂的大规模飞行任务。但由于无人机集群中的无人机数量众多,且许多飞行任务需要由无人机在空中密集编队飞行,众多的无人机一般也需要在相同的地点进行起降,导致无人机集群容易在空中发生碰撞。为了避免无人机集群在执行任务时发生碰撞危险,需要在飞行前对其进行飞行模拟,但目前的无人机飞行模拟主要是对单一无人机的模拟,目前对于无人机集群的飞行模拟亟需一种可靠的方案。
技术实现要素:
本发明提供一种飞行集群模拟器,提供了一种可靠的无人机集群的飞行模拟方案。
第一方面,本发明实施例提供一种飞行集群模拟器,包括:多个飞行模拟器、多个地面站和集群算法与监测服务器;
多个飞行模拟器与多个地面站一一对应,每个飞行模拟器与一个地面站通过无线通信连接,每个地面站用于接收连接的飞行模拟器发送的当前姿态信息并向连接的飞行模拟器发送飞行控制信息;
集群算法与监测服务器与多个地面站连接,用于根据飞行集群的任务目标计算确定各飞行模拟器的飞行线路,将各飞行模拟器的飞行线路发送至各地面站,以使各地面站根据飞行计划向连接的飞行模拟器发送飞行控制信息,并接收多个地面站转发的各飞行模拟器的当前姿态信息,根据各飞行模拟器的当前姿态信息判断各飞行模拟器之间的碰撞概率,调整碰撞概率大于预设阈值的飞行模拟器的飞行线路后发送至对应的地面站,以使各地面站根据调整的飞行线路向连接的飞行模拟器发送调整的飞行控制信息。
在第一方面一种可能的实现方式中,多个飞行模拟器的飞行线路和多个飞行模拟器的调整的飞行线路,满足以下条件至少之一:
所有飞行模拟器的飞行距离之和最小;
所有飞行模拟器的飞行距离相同;
各飞行模拟器的有效飞行距离与总飞行距离之比最大。
在第一方面一种可能的实现方式中,调整碰撞概率大于预设阈值的飞行模拟器的飞行线路,包括:
调整飞行线路之间相交的飞行模拟器的飞行线路,或者调整距离小于预设距离阈值的飞行模拟器的飞行线路。
在第一方面一种可能的实现方式中,集群算法与监测服务器,还用于在接收到飞行模拟器的故障信息时,修正各飞行模拟器的飞行线路或者增加新的飞行模拟器替换故障飞行模拟器并确定各飞行模拟器的飞行线路。
在第一方面一种可能的实现方式中,每个飞行模拟器包括:imu模拟器、fcu和数传单元;
imu模拟器为运行于一操作系统环境中的软件模块,imu模拟器包括至少一个传感器模块、imu模块和至少一个被控单元模块,fcu为通过实时嵌入式系统实现的硬件模块;
至少一个传感器模块用于生成模拟无人机在飞行时的至少一种飞行数据,将至少一种飞行数据输入imu模块;
imu模块用于根据至少一种飞行数据估算模拟无人机的当前姿态信息,将模拟无人机的当前姿态信息输入fcu;
fcu用于根据模拟无人机的当前姿态信息和模拟无人机的飞行控制信息,计算模拟无人机的目标姿态信息,根据模拟无人机的目标姿态信息计算至少一个被控单元的控制数据,向至少一个被控单元发送对应的控制数据;
至少一个被控单元用于根据fcu发送的控制数据计算并更新模拟无人机的当前姿态;
数传单元,用于通过无线通信连接接收地面站发送的飞行控制信息,并向fcu发送飞行控制信息;接收fcu发送的模拟无人机的当前姿态信息,并通过无线通信连接向地面站发送模拟无人机的当前姿态信息。
在第一方面一种可能的实现方式中,fcu还用于从预设的飞行控制程序中获取模拟无人机的飞行控制信息。
在第一方面一种可能的实现方式中,至少一个传感器模块,具体用于生成模拟无人机在飞行时的如下至少一种飞行数据:
导航卫星数、导航定位精度、经纬度信息、海拔信息、运动航向、模拟无人机姿态、加速度、三轴速度、三轴加速度、三轴角速度、雷达信息。
在第一方面一种可能的实现方式中,传感器模块还用于生成模拟无人机在飞行时的至少一种故障事件,将至少一种飞行数据和至少一种故障事件输入imu模块;
imu模块,还用于根据至少一种飞行数据和至少一种故障事件估算模拟无人机的当前姿态信息,将模拟无人机的当前姿态信息输入fcu。
在第一方面一种可能的实现方式中,至少一种故障事件包括如下至少一种:
导航卫星丢失、导航卫星断开连接、磁罗盘异常、雷达异常、供电不足、载荷药量不足、断药时间、遥控器异常。
在第一方面一种可能的实现方式中,imu模块具体用于根据模拟无人机的当前姿态信息建立模拟无人机的当前姿态模型,将模拟无人机的当前姿态模型输入fcu;
至少一个被控单元具体用于根据fcu发送的控制数据计算并更新模拟无人机的当前姿态模型。
本发明实施例提供的飞行集群模拟器,由多个飞行模拟器、多个地面站和集群算法与监测服务器组成,多个飞行模拟器与多个地面站一一对应,每个飞行模拟器与一个地面站通过无线通信连接,每个地面站用于接收连接的飞行模拟器发送的当前姿态信息并向连接的飞行模拟器发送飞行控制信息;集群算法与监测服务器与多个地面站连接,用于根据飞行集群的任务目标计算确定各飞行模拟器的飞行线路,将各飞行模拟器的飞行线路发送至各地面站,以使各地面站根据飞行计划向连接的飞行模拟器发送飞行控制信息,并接收多个地面站转发的各飞行模拟器的当前姿态信息,根据各飞行模拟器的当前姿态信息判断各飞行模拟器之间的碰撞概率,调整碰撞概率大于预设阈值的飞行模拟器的飞行线路后发送至对应的地面站,以使各地面站根据调整的飞行线路向连接的飞行模拟器发送调整的飞行控制信息,使用本实施例提供的飞行集群模拟器可以对无人机集群进行飞行模拟,避免无人机集群中的无人机在飞行过程中产生碰撞而影响飞行安全和飞行任务,提供了一种可靠的无人机集群的飞行模拟方案。
附图说明
图1为本发明实施例提供的飞行集群模拟的实施例一的结构示意图
图2为应用本发明实施例提供的飞行集群模拟器进行飞行模拟的流程图;
图3为典型的无人机架构示意图;
图4为典型的无人机中的飞行控制器的架构示意图;
图5为本发明实施例提供的一种飞行模拟器的结构示意图;
图6为模拟无人机的驱动电机控制示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在无人机的研发、生产和测试等过程中,为了确保无人机能够完成预定的飞行任务,需要在实际飞行之前使用飞行模拟器对无人机进行飞行模拟。由于无人机的体积较小,载荷也较小,单一无人机已经难以完成大型的飞行任务,需要使用多架无人机组成的无人机飞行集群共同完成复杂的飞行任务。目前的飞行模拟器仅针对单一无人机进行飞行模拟,而无人机飞行集群内的众多无人机一般均需要组成密集队形飞行,各无人机之间的飞行线路容易产生相互影响,特别是在起飞和降落阶段,极易由于无人机之间的相互影响而影响飞行安全。
本发明实施例为了解决上述问题,提供一种飞行集群模拟器,用于对包括多架无人机的飞行集群进行飞行模拟。
图1为本发明实施例提供的飞行集群模拟的实施例一的结构示意图,如图1所示,本发明实施例提供的飞行集群模拟器包括:
多个飞行模拟器11、多个地面站12和集群算法与监测服务器13。飞行模拟器11和地面站12的数量相同,图1中以两个飞行模拟器11、两个地面站12为例进行说明,但飞行模拟器11和地面站12的数量不以此为限。
多个飞行模拟器11与多个地面站12一一对应,每个飞行模拟器11与一个地面站12通过无线通信连接,每个地面站12用于接收连接的飞行模拟器11发送的当前姿态信息并向连接的飞行模拟器11发送飞行控制信息。每个飞行模拟器11用于模拟一架无人机的飞行,每个地面站12用于模拟无人机的地面控制端,例如无人机的遥控器或飞行控制系统。
集群算法与监测服务器13与多个地面站12连接,用于根据飞行集群的任务目标计算确定各飞行模拟器11的飞行线路,将各飞行模拟器11的飞行线路发送至各地面站12,以使各地面站12根据飞行计划向连接的飞行模拟器11发送飞行控制信息,并接收多个地面站12转发的各飞行模拟器11的当前姿态信息,根据各飞行模拟器11的当前姿态信息判断各飞行模拟器11之间的碰撞概率,调整碰撞概率大于预设阈值的飞行模拟器11的飞行线路后发送至对应的地面站12,以使各地面站12根据调整的飞行线路向连接的飞行模拟器11发送飞行控制信息。
传统的无人机飞行模拟器仅能对单一无人机的飞行状态进行模拟,仅能模拟一个飞行模拟器和一个地面站之间的交互。但无人机飞行集群中的无人机数量可能为数百或上千,众多的无人机还可能需要密集编队飞行,并可能在飞行中通过载荷完成各种任务,因此无人机的飞行线路之间可能相交而导致碰撞,另外,目前的无人机集群一般采用多轴旋翼机,多轴旋翼机之间的距离过近时,无人机产生的气流之间也会产生相互的影响而可能影响飞行安全或影响飞行线路的稳定性。因此在对无人机飞行集群进行模拟时,需要对无人机集群中的各无人机之间的相互影响进行分析和判断,在发现影响飞行安全的情况时,调整相关无人机的飞行线路,从而避免无人机飞行集群中的各无人机的飞行线路之间的相互影响。
为了对无人机飞行集群中的多个无人机的飞行线路进行综合判断,设置了集群算法与监测服务器13,集群算法与监测服务器13与多个地面站12连接。首先,飞行集群中的各飞行模拟器11的飞行线路由集群算法与监测服务器13根据飞行集群的任务目标计算,然后将计算出的各飞行模拟器11的飞行线路发送给各对应的地面站12,这样接收到飞行线路的地面站12就可以根据接收到的飞行计划向地面站12连接的飞行模拟器11发送飞行控制信息,控制各飞行模拟器11按照飞行计划模拟飞行。在飞行模拟器11模拟飞行的过程中,将实时向地面站12反馈当前姿态信息,当前姿态信息包括飞行模拟器11的当前位置信息和飞行速度、方向、飞行模拟器11的各种状态等。各地面站12将接收到的各飞行模拟器11的当前姿态信息发送给集群算法与监测服务器13。集群算法与监测服务器13就可以根据各飞行模拟器11的当前姿态信息判断各飞行模拟器11之间的碰撞概率。其中各飞行模拟器11之间的碰撞概率为飞行模拟器11之间可能发生碰撞的几率,例如包括飞行模拟器11的飞行线路在预设时间范围内相交、飞行模拟器11之间的距离小于预设距离阈值等。当集群算法与监测服务器13发现飞行模拟器11之间的碰撞概率大于预设阈值时,调整碰撞概率大于预设阈值的飞行模拟器11的飞行线路,并将调整后的飞行线路发送给相应的地面站12,这样接收到调整的飞行线路的地面站12就可以根据调整的飞行线路向连接的飞行模拟器11发送调整的飞行控制信息。这样就可以避免飞行集群内的飞行模拟器11之间发生碰撞而影响飞行集群的飞行安全。
其中,调整碰撞概率大于预设阈值的飞行模拟器11的飞行线路,包括:调整飞行线路之间相交的飞行模拟器11的飞行线路,或者调整距离小于预设距离阈值的飞行模拟器11的飞行线路。
在通过本实施例提供的飞行集群模拟器对飞行集群中各飞行模拟器11的飞行进行模拟之后,各飞行模拟器11的飞行线路均根据调整而避免了碰撞的发生。因此采用飞行集群模拟器模拟的各飞行模拟器11的飞行线路控制实际无人机集群的飞行,就可以保证无人机集群中各无人机在实际飞行过程中不会产生碰撞,确保无人机集群的飞行安全。
在一实施例中,集群算法与监测服务器13对飞行集群中的各飞行模拟器11的飞行线路的调整,不仅限于避免飞行模拟器11之间的碰撞,而是可以进一步地达到优化飞行集群中所有飞行模拟器11的飞行线路的目的。无人机无论采用电池驱动还是燃料驱动,其飞行所用能量均有限,因此飞行时间也有限。因此在规划和调整无人机的飞行线路时,需要考虑无人机的飞行时长限制。且无人机集群中的无人机数量众多,处于成本控制和环保的考虑,在飞行时也需要尽量节约能量消耗。且在为无人机集群中的无人机进行充电或燃料补充时,各无人机的电量或燃料数量相同时才能达到较高效率。因此,若在无人机集群进行飞行时,保证各无人机的能量消耗均衡,能够提高无人机集群的使用效率。
因此多个飞行模拟器的飞行线路和多个飞行模拟器的调整的飞行线路,可以满足以下条件至少之一:所有飞行模拟器的飞行距离之和最小;所有飞行模拟器的飞行距离相同;各飞行模拟器的有效飞行距离与总飞行距离之比最大。
其中,出于节约能量消耗的考虑,飞行模拟器集群中的所有飞行模拟器11的飞行距离之和最小时,可以保证整个飞行集群在飞行时消耗的总能量最少。出于平衡各飞行模拟器11的能量消耗的考虑,可以确保各飞行模拟器11的飞行距离相同。另外,在飞行集群的一些飞行任务中,众多无人机需要在起飞后进行编队后再进行统一飞行,完成飞行任务后需要解散编队后再降落。而众多无人机需要依次起飞、降落才能保证飞行安全,那么先起飞的无人机必然比后起飞的无人机的飞行时长更长,飞行距离更长。而无人机在起飞、降落阶段的飞行可能并不是有效飞行,需要尽量避免无人机集群中的无人机进行无效飞行而浪费多余的能量。因此对飞行集群中的各飞行模拟器11的飞行线路进行调整时,可以使各飞行模拟器11的有效飞行距离与总飞行距离之比最大。
上述三种条件可以根据使用需求满足其中之一或满足上述三种条件的任意组合。这样可以使飞行集群中的各飞行模拟器11在保证飞行安全的前提下,进一步地提高飞行集群的飞行性能。
另外,在一实施例中。集群算法与监测服务器13,还用于在接收到飞行模拟器11的故障信息时,修正各飞行模拟器11的飞行线路或者增加新的飞行模拟器11替换故障飞行模拟器11并确定各飞行模拟器11的飞行线路。由于无人机在飞行过程中可能由于自身故障或外界因素而产生飞行故障,因此,飞行模拟器11也可以模拟无人机产生的各种故障,例如模拟各种机械故障、电子故障或环境因素。而在飞行模拟器11产生故障时,可能对飞行姿态产生影响,因此集群算法与监测服务器13可以接收到飞行模拟器11的故障信息,判断发生故障的飞行模拟器11的飞行线路是否会发生变化,然后修正各飞行模拟器11的飞行线路,或者当故障导致飞行模拟器11无法完成飞行任务,集群算法与监测服务器13还可以增加新的飞行模拟器11替换故障飞行模拟器11并进一步确定各飞行模拟器11的飞行线路。这样就可以充分模拟出飞行集群的各种故障情况,并得到各种故障情况下的飞行调整策略。在无人机集群实际飞行过程中发生各种故障时,即可应用模拟的各种策略应对,使得无人机集群能够完成飞行任务。
本实施例提供的飞行集群模拟器,由多个飞行模拟器、多个地面站和集群算法与监测服务器组成,多个飞行模拟器与多个地面站一一对应,每个飞行模拟器与一个地面站通过无线通信连接,每个地面站用于接收连接的飞行模拟器发送的当前姿态信息并向连接的飞行模拟器发送飞行控制信息;集群算法与监测服务器与多个地面站连接,用于根据飞行集群的任务目标计算确定各飞行模拟器的飞行线路,将各飞行模拟器的飞行线路发送至各地面站,以使各地面站根据飞行计划向连接的飞行模拟器发送飞行控制信息,并接收多个地面站转发的各飞行模拟器的当前姿态信息,根据各飞行模拟器的当前姿态信息判断各飞行模拟器之间的碰撞概率,调整碰撞概率大于预设阈值的飞行模拟器的飞行线路后发送至对应的地面站,以使各地面站根据调整的飞行线路向连接的飞行模拟器发送调整的飞行控制信息,使用本实施例提供的飞行集群模拟器可以对无人机集群进行飞行模拟,避免无人机集群中的无人机在飞行过程中产生碰撞而影响飞行安全和飞行任务,提供了一种可靠的无人机集群的飞行模拟方案。
图2为应用本发明实施例提供的飞行集群模拟器进行飞行模拟的流程图,如图2所示,本实施例提供的飞行模拟流程包括:
步骤s201,各飞行模拟器11和地面站12连接到集群算法与检测服务器13,由各地面站12向集群算法与检测服务器13上报各飞行模拟器11和地面站12的标识、飞行器类型、尺寸等信息。
步骤s202,集群算法与检测服务器13确定飞行集群中的各飞行模拟器11标识,并确定每一飞行模拟器11的起飞地点,然后向每一飞行模拟器11发送起飞地点的经纬度信息。
步骤s203,集群算法与检测服务器13根据飞行集群的飞行任务及算法,规划每一飞行模拟器11的飞行线路,然后将各飞行模拟器11的飞行线路发送至各地面站12。其中集群算法与检测服务器13采用的算法根据飞行集群的飞行任务需求选择,该算法至少包括避免飞行集群中各飞行模拟器11发生碰撞的算法,或者还可以包括其他各种优化飞行集群的性能的算法。
步骤s204,各地面站12接收到集群算法与检测服务器13发送的飞行线路后,向连接的飞行模拟器11发送飞行控制信息。
步骤s205,在确认各飞行模拟器11准备完成后,集群算法与检测服务器13通过各地面站12向各飞行模拟器11发送起飞指令。
步骤s206,各飞行模拟器11起飞并根据地面站12发送的飞行控制信息,按照预设飞行线路飞行,飞行过程中飞行模拟器11通过连接的地面站12向集群算法与检测服务器13发送实时飞行姿态信息和位置信息。
步骤s207,集群算法与检测服务器13根据各飞行模拟器11的尺寸、实时速度、实时航向、实时位置等信息,判断是否有碰撞可能性。具体方法可以为:
a)因为飞行线路规划时,算法已经考虑飞行线路之间的冲突检测,因此飞行模拟器11在正常飞行线路飞行时不会产生碰撞,只会在进入飞行线路和返航时产生路线的交叉,这时才会产生碰撞的可能性。连接为飞行模拟器11分配的飞行线路的起始点到起飞点,生成线段a;连接飞行线路结束点到降落点,生成线段b。
b)计算各飞行模拟器11的线段a和线段b的相交情况,如果有相交,说明有可能碰撞;如果不相交,计算两线段的最小距离,如果距离小于两个飞行模拟器11半径之和(并可留一定余量,比如2m),则也认为可能碰撞。
c)对于可能碰撞的飞行模拟器11排序,并分配起飞高度和返航高度给不同的飞行模拟器11,使可能碰撞的飞行模拟器11在进入飞行线路和返航时采取不同的高度,这样就避免了碰撞的可能。
d)对于临时出现故障返航的飞行模拟器11,先让飞行模拟器11在飞行线路内飞至航线终点(飞行线路规划范围应为凸包,因此在飞行线路内任意两点连接都会在凸包内部),然后再按原返航高度返航,从而避免直接从返航点返回穿过其他飞行线路而产生的复杂碰撞检测情况。
步骤s208,飞行模拟器11可以自行模拟故障,例如电量不足等,故障产生后,可能导致飞行模拟器11降落或坠机,此时地面站12将相关信息发送给集群算法与监测服务器13。
步骤s209,集群算法与监测服务器13根据飞行集群的任务目标及算法决定是否增加新的飞行模拟器11,并决定是否对各飞行模拟器11的飞行线路进行修正。如果需要修正飞行线路或新增飞行模拟器11,则执行步骤s203。
根据步骤s207的结果,对算法进行调整后,重复执行步骤s201进行新的模拟。
集群算法与监测服务器13计算飞行集群中各飞行模拟器11的飞行线路的具体算法可以任意设计,只要能够满足飞行集群的任务需求以及避免飞行模拟器11之间相互碰撞或者优化飞行集群的飞行线路。例如可以包括如下两种算法。
1、简单覆盖算法任务:目标飞行区域为一个多边形,使用n架飞行模拟器对该区域进行完全覆盖。
算法:
1)选择合适的飞行线路方向对多边形进行飞行线路规划,目的是使有效飞行距离和总飞行距离之比最大。
2)根据飞行模拟器数目,将飞行线路切割成n个部分,尽量保证有效飞行距离一致。
3)将飞行线路分别分配给不同的飞行模拟器,开始作业。
2、多地块算法任务:目标飞行区域为n个多边形,使用n架飞行模拟器对该区域进行完全覆盖。
算法:
1)首先对所有多边形进行切割,保证每个可供规划的多边形都是凸多边形。
2)选定n个可能的起飞/降落点,根据各多边形的位置和面积,找出最合适的m个起飞点,使起飞点到周边多边形中心距离加权和最小。
3)根据每个起飞点周边的多边形面积大小,将飞行模拟器分配到几个起飞点上,周边多边形面积大则需要多分配飞行模拟器。
4)将飞行线路分配给不同飞行模拟器,在同一起降点的飞行模拟器尽量分配方向不同的飞行线路,比如一个分配给北边的飞行线路,一个分给南边的飞行线路,这样使飞行线路基本不会产生交叉,最大可能避免碰撞可能性。
由于飞行集群模拟器中各飞行器模拟器与实际飞行器的行为一致,使飞行集群模拟器可以使用实际集群算法与监测服务器、无人机地面站,而不需要重新开发。节省大量的开发时间和测试的成本开销。
无人机中的飞行控制器主要由各类传感器、惯性测量单元(inertialmeasurementunit)、飞行控制单元(flightcontrolunit,fcu)和被控单元组成。其中各类传感器用于对无人机飞行过程中的各种数据进行测量,imu根据各类传感器测量的数据估算无人机的姿态以及位置。fcu负责导航以及应用相关的逻辑控制,通过被控单元对无人机进行实际的飞行控制。无人机中的imu和fcu一般都是使用实时嵌入式系统,以保证实时响应。目前的飞行模拟器一般都是运行于windows或linux系统上的纯软件模拟器,这就意味着,在实际无人机与飞行模拟器之间,存在运行环境的巨大差异。那么飞行模拟器与实际无人机之间存在很多行为的不一致。
图3为典型的无人机架构示意图,如图3所示,典型的无人机架构分为空中端31和地面站32两部分,其中空中端31包括无人机用于进行飞行的结构,各种传感器、控制器件以及通信器件,以及无人机承载的任务载荷。地面站32用于通过无线通信连接对空中端31进行通信,包括对空中端31进行飞行空中和/或接收空中端31反馈的各种信息。
其中典型的无人机架构如图3所示,空中端31包括飞行控制器311、能源312、任务载荷313、空气动力装置314、数传315。地面站32包括地面站或者遥控器。能源312为空中端31中各种器件提供所需能源。能源312可以为电池,通过电能为空中端31中的各器件提供所需能源;或者能源312也可以为汽油、柴油或其他动力的发动机,通过发动机提供的能源为空中端31中的各器件提供所需能源。
空气动力装置314为无人机实现飞行所需的各种器件以及结构的组合,包括机体和驱动装置,机体和驱动装置匹配设计,使得空气动力装置314符合空气动力学的要求。典型的无人机的空气动力装置314例如为四轴旋翼式,或者空气动力装置314例如为固定翼式。
任务载荷313为无人机完成任务所需配置的器件组合,例如无人机为农用无人机,那么任务载荷313可以为药罐和喷洒结构,若无人机为巡查或监视无人机,那么任务载荷313可以为摄像设备或红外探测设备,若无人机为中继通信无人机,那么任务载荷313可以为中继通信设备等。
飞行控制器311为无人机中的核心控制器件,飞行控制器311将能源312提供的能源分配给空气动力装置314,以驱动无人机实现所需飞行状态,并且飞行控制器311控制任务载荷313实现无人机所需执行的任务。飞行控制器311还通过数传315与地面站32进行通信,包括接收地面站32发送的各种控制指令以及向地面站32反馈无人机的飞行状态信息和任务载荷信息。数传315通过无线通信连接于地面站32连接。飞行控制器311可以通过地面站32发出的飞行控制指令进行飞行,也可以根据预设的飞行指令程序进行飞行。
图4为典型的无人机中的飞行控制器的架构示意图,如图4所示,无人机中的飞行控制器包括传感器41、imu42、fcu43和被控单元44。其中传感器41和被控单元44的数量为一个或多个。
传感器41用于对无人机在飞行时的飞行数据进行检测,不同种类的传感器41用于对无人机在飞行时不同种类的飞行数据进行检测。传感器41例如包括导航芯片、加速度计、陀螺仪、地磁仪、雷达等,其中每种不同类型的传感器41对一种或多种飞行数据进行检测。例如导航芯片用于获取无人机在飞行时的导航卫星数、导航定位精度、经纬度信息等飞行数据,导航芯片可以是任一种卫星导航系统的导航芯片,例如全球定位系统(globalpositioningsystem,gps)、北斗、格洛纳斯(glonass)等。加速度计用于获取无人机在飞行时的加速度数据。陀螺仪用于获取无人机在飞行时的角速度和角加速度数据。地磁仪用于获取地球磁场数据。雷达用于对无人机飞行时无人机附近的物体使用雷达探测,得到雷达探测数据。总之,根据无人机所需执行的任务,为无人机配置一种或多种传感器41,每种传感器41包括一个或多个。
各传感器41检测到的飞行数据均发送至imu42,imu42负责根据各传感器41发送的飞行数据估算无人机的姿态以及位置等信息。也就是说,imu42负责进行数据的融合处理,将多种、多个传感器41发送的飞行数据输入预设的无人机模型,从而得到无人机的飞行姿态、位置等信息。
fcu43负责导航以及应用相关的逻辑控制,imu42经过处理估算出的无人机的姿态和位置等信息发送给fcu43。fcu43中可以预设无人机的自动飞行程序,那么fcu43可以将imu42发送的数据结合在自动飞行程序中,判断正在飞行的无人机的姿态、位置等飞行状态是否满足自动飞行程序中预设的飞行状态。fcu43还可以通过数传315与地面站32进行通信,将无人机的飞行状态数据发送至地面站32,使得地面站32获知无人机的飞行状态。或者当无人机为遥控飞行时,fcu43可以通过数传315接收地面站32发送的飞行控制信息。
被控单元44为无人机中可控的,能够改变无人机的飞行状态的单元,被控单元44通过fcu43的控制,使得无人机的飞行状态符合fcu43指定的飞行状态。被控单元44的数量根据无人机的类型和飞行需求所设置,例如当无人机为四轴旋翼无人机时,被控单元44为4个连接有螺旋桨的电机。
在目前的无人机中,imu和fcu一般都使用实时嵌入式系统,以保证实时响应。采用实时嵌入式系统,当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应。因此当imu和fcu采用实施嵌入式系统时,无人机能够做出十分灵敏的飞行响应。
在无人机的开发过程中,需要通过试飞对无人机的飞行状态进行测试,但使用实体无人机进行测试耗时、耗力,且在需要对无人机的软、硬件进行修改时,需要较长的时间和成本。因此在无人机的开发过程中经常使用飞行模拟器,飞行模拟器通过软件的方式对无人机的各种参数进行模拟,从而仅使用软件模拟无人机的飞行,这样能够快速地找到无人机存在的问题且便于对无人机的参数进行调整。与实际无人机相比,飞行模拟器的成本较低,且节约时间和人力。飞行模拟器仅是对无人机的各种参数进行模拟,通过对各种输出数据进行分析对无人机的实际飞行状态进行模拟,因此飞行模拟器中一般主要对飞行控制器,以及飞行控制器与地面站的交互进行模拟。
但是目前的飞行模拟器都是运行于windows或linux系统上的纯软件模拟器,而实际无人机中的fcu采用的是实时嵌入式系统。那么飞行模拟器与fcu之间的内部架构存在巨大差异,导致运行结果也存在很大差异。因此飞行模拟器与实际无人机之间存在很多行为的不一致。此外,fcu涉及了大量与业务场景相关的逻辑,因此fcu需要经常进行更新,也因此,传统的飞行模拟器也需要跟随fcu的更新而经常需要移植更新。再者,每次fcu的更新,都需要对fcu进行实际测试,传统的测试,就是实际飞行测试,开销比较大。而,传统的飞行模拟器只是对fcu的移植及模拟,并没有把真正的实际的fcu引入模拟器内,因此原有的传统模拟器也不能起到对fcu进行实际测试的作用。
为了克服传统飞行模拟器与实际无人机之间存在差异的问题,本发明实施例提供的飞行集群模拟器中的飞行模拟器可以采用下述各实施例所提供的结构。
图5为本发明实施例提供的一种飞行模拟器的结构示意图,如图5所示,本实施例提供的飞行模拟器包括:imu模拟器51、fcu52和数传单元53。
imu模拟器51为运行于一操作系统环境中的软件模块,imu模拟器51包括至少一个传感器模块511、imu模块512和至少一个被控单元模块513,fcu52为通过实时嵌入式系统实现的硬件模块。
由于传统的飞行模拟器是运行于windows或linux系统上的纯软件模拟器,由于飞行模拟器与实际无人机之间存在差异,导致飞行模拟器与实际无人机之间存在许多行为的不一致。在对图4所示飞行控制器的架构进行分析后可知,飞行控制器内的imu主要是涉及姿态的估算,其算法比较经典,因此一般而言改动的机会较小。而fcu涉及了大量与业务场景相关的逻辑,因此fcu需要经常更新。因此传统的飞行模拟器需要随着fcu的更新而进行同步的移植更新。每次对飞行模拟器中的fcu进行更新后,都需要对fcu进行实际测试,而在传统的飞行模拟器中,无法起到对fcu进行实际测试的作用。
因此在本实施例中,提出一种飞行模拟器,其中采用软件模拟的imu模拟器和实际无人机中的fcu共同组成飞行模拟器的主要结构。imu模拟器51为运行于一操作系统环境中的软件模块,该操作系统可以是任一种操作系统,imu模拟器51根据运行的操作系统的架构进行设计,该操作系统例如是windows或linux操作系统。而fcu52为通过实时嵌入式系统实现的硬件模块。
imu模拟器51包括至少一个传感器模块511、imu模块512和至少一个被控单元模块513。其中至少一个传感器模块511用于生成模拟无人机在飞行时的至少一种飞行数据,将至少一种飞行数据输入imu模块512;imu模块512用于根据至少一种飞行数据估算模拟无人机的当前姿态信息,将模拟无人机的当前姿态信息输入fcu52;至少一个被控单元513用于根据fcu52发送的控制数据计算并更新模拟无人机的当前姿态。
imu模拟器51相当于对图4所示实际无人机的飞行控制器中的至少一个传感器、imu和被控单元通过软件方式进行模拟。imu模拟器51中的imu模块512和被控单元513与fcu52具有传输接口。
至少一个传感器模块511,具体用于生成模拟无人机在飞行时的如下至少一种飞行数据:导航卫星数、导航定位精度、经纬度信息、海拔信息、运动航向、模拟无人机姿态、加速度、三轴速度、三轴加速度、三轴角速度、雷达信息。传感器模块511的种类为一个或多个,每种传感器模块511包括一个或多个。传感器模块511用于对图4所示传感器51进行模拟,例如分别对导航芯片、加速度计、陀螺仪、地磁仪、雷达等传感器进行模拟。至少一个传感器模块511例如对导航卫星数、导航定位精度、经纬度信息、海拔信息、运动航向、模拟无人机姿态、加速度、三轴速度、三轴加速度、三轴角速度、雷达信息中的至少一种进行模拟。传感器模块511可以根据飞行模拟器所模拟的无人机的需求进行配置。
进一步地,传感器模块511还用于生成模拟无人机在飞行时的至少一种故障事件,将至少一种飞行数据和至少一种故障事件输入imu模块512;imu模块512,还用于根据至少一种飞行数据和至少一种故障事件估算模拟无人机的当前姿态信息,将模拟无人机的当前姿态信息输入fcu52。
由于实际无人机在飞行过程中可能由于机械故障、电子故障或环境因素导致故障,因此传感器模块511除了对模拟无人机的飞行数据进行模拟外,还可以模拟无人机在飞行时的至少一种故障事件。例如传感器模块511可以根据预设的程序,或者通过外部输入,生成飞行模拟器中各模块或单元的故障信息,并将模拟为故障的模块或单元关闭。或者传感器模块511还可以对模拟无人机的外部因素进行模拟,例如模拟不同风向、风速的外界风,或者模拟不同雨、雪量的雨、雪,或者模拟外界的电磁干扰等。
传感器模块511将至少一种飞行数据和至少一种故障事件输入imu模块512。imu模块512,在接收到传感器模块511发送的飞行数据和故障事件后,就可以根据至少一种飞行数据和至少一种故障事件估算模拟无人机的当前姿态信息,将模拟无人机的当前姿态信息输入fcu52。在模拟无人机出现故障事件时,无人机的姿态信息可能受到故障事件的影响而发生变化,因此imu模块512就需要同时根据至少一种飞行数据和至少一种故障事件估算模拟无人机的当前姿态信息。这样可以使飞行模拟器能够对实际无人机在综合工况下的飞行状态进行模拟。
其中,传感器模块511生成的至少一种故障事件包括如下至少一种:导航卫星丢失、导航卫星断开连接、磁罗盘异常、雷达异常、供电不足、载荷药量不足、断药时间、遥控器异常。但传感器模块511生成的故障事件不限于上述故障事件,只要是能够对无人机的正常飞行产生影响的内部或外部因素都可以作为故障事件。
由于目前大部分无人机都为多轴旋翼无人机,因此至少一个被控单元513包括模拟无人机的至少一个驱动电机,也就是多轴旋翼无人机中驱动每个旋翼的驱动电机。多轴旋翼无人机通过改变各驱动电机的转速,可以对无人机的飞行姿态进行调整。
当至少一个被控单元513为模拟无人机的至少一个驱动电机时,目标姿态信息包括目标姿态角和目标角速度信息,至少一个被控单元513的控制数据包括模拟无人机至少一个驱动电机的脉冲宽度调制(pulsewidthmodulation,pwm)数据。
可以认为imu模拟器51中的模拟无人机为理想的控制模块,fcu52输入的目标角度是多少,模拟无人机的姿态角就是多少,不需要额外计算。假设模拟无人机为四轴旋翼无人机,设定模拟无人机悬停的各轴驱动电机的pwm值为1500,4个电机输出pwm的平均值x即为无人机的悬停油门值,其中各驱动电机的正常输出pwm值为1000-2000。设定最大油门输出2000时,无人机向上的加速度为5m/s2,设定最小油门输出1000时,无人机向下的加速度为5m/s2。那么imu模拟器51的模拟无人机模型中无人机的天向加速度(假设飞机水平)为:acc(天向)=(x-1500)*5/500。并且由无人机的天向加速度与时间积分计算垂直速度和高度(默认每次起飞时高度为0)。
无人机驱动电机输出的合力,一个分量f(垂直)用来提供升力,另一个f(水平)用来提供水平移动的动力,如图6,图6为模拟无人机的驱动电机控制示意图。设模拟无人机4个驱动电机的平均输出pwm值为x,那么垂直加速度acc(天向)和水平加速度acc(水平xb)、acc(水平yb)分别为:
acc(天向)=((x-1000)*cos(ang_tilt)-500)*5/500;上正下负
acc(水平xb)=(x-1000)*sin(ang_roll)*5/1000;右正左负
acc(水平yb)=-(x-1000)*sin(ang_pitch)*5/1000;前正后负
其中,ang_tilt=arcos(cos(ang_roll)*cos(ang_pitch)),ang_tilt为俯仰角度、ang_roll为横滚角度、ang_pitch为航向角度。这里面由于涉及到的是三个角度(航向,横滚,俯仰),所以最终形态是一个三维的矩阵,但原理如图4所示。
由上述的天向和水平加速度,则可以与时间积分计算三维的速度和位置,这里面计算积分直接在模拟器内以最少100hz与时间片累计即可。
fcu52用于根据模拟无人机的当前姿态信息和模拟无人机的飞行控制信息,计算模拟无人机的目标姿态信息,根据模拟无人机的目标姿态信息计算至少一个被控单元的控制数据,向至少一个被控单元513发送对应的控制数据。fcu52与图4所示实际无人机的飞行控制器中的fcu相同,仅是在与imu和被控单元的传输接口之间进行适当改动,以适应于软件模拟的imu模拟器51进行连接。fcu52具体可以通过模拟无人机的当前姿态信息和模拟无人机的飞行控制信息,计算模拟无人机的目标姿态角、目标角速度信息,最终确定各被控单元513对应的输出量。
fcu52可以根据预设的自动飞行程序获取模拟无人机的飞行控制信息,也可以接收地面站发送的飞行控制信息。其中地面站可以为图3中所示的对实际无人机进行控制的地面站。由于实际无人机的飞行控制分为两种方式,一种为飞行控制器根据预设的自动飞行程序进行飞行,另一张为飞行控制器接收地面站发送的飞行控制指令飞行。那么对于飞行模拟器而言,也可以分别对这两种不同的飞行控制方式进行模拟。其中,在对自动飞行模式进行模拟时,fcu52可以从预设的飞行控制程序中获取模拟无人机的飞行控制信息;在对手动飞行模式进行模拟时,fcu52可以接收地面站发送的飞行控制信息。
进一步地,imu模块512还用于提供模拟无人机的初始状态设置界面,通过初始状态设置界面获取模拟无人机的初始姿态信息。也就是可以提供界面使得用户直接设置模拟无人机的初始姿态信息,这样就无需在使用飞行模拟器时每次都从无人机的起飞状态开始模拟,从而可以提高使用飞行模拟器的模拟效率。imu模块512可以提供地图界面,由用户在地图中直接点击选取模拟无人机的初始地点信息,或者imu模块512可以接收用户输入的经纬度信息,从而确定模拟无人机的初始地点信息。
进一步地,imu模块512具体用于根据模拟无人机的当前姿态信息建立模拟无人机的当前姿态模型,将模拟无人机的当前姿态模型输入fcu52;至少一个被控单元513具体用于根据fcu52发送的控制数据计算并更新模拟无人机的当前姿态模型。在imu模块512中,可以根据模拟无人机的当前姿态信息建立模拟无人机的当前姿态模型,也即将模拟无人机的各种飞行数据进行整合,得到模拟无人机的当前姿态模型。那么fcu52中将获取模拟无人机的当前姿态模型,然后fcu52向各被控单元513发送控制数据,至少一个被控单元513根据控制数据进行计算后,对模拟无人机的当前姿态模型进行更新,从而得到更新后的模拟无人机的当前姿态模型。在imu模块512中建立模拟无人机的当前模型,能够使飞行模拟器更贴近实际无人机的状态,fcu52能够更加快速地完成数据处理。
数传单元53,用于通过无线通信连接接收地面站或遥控器发送的飞行控制信息,并向fcu52发送飞行控制信息;接收fcu52发送的模拟无人机的当前姿态信息,并通过无线通信连接向地面站或遥控器发送模拟无人机的当前姿态信息。
数传单元53与图3所示真实无人机中的数传单元相同,通过无线通信连接与地面站连接,负责在fcu52和地面站之间进行数据中转,其中地面站可以为地面站或者遥控器。在飞行模拟器模拟无人机的自动飞行控制模式时,数传单元53可以接收fcu52发送的模拟无人机的当前姿态信息,并向地面站或遥控器发送模拟无人机的当前姿态信息。在飞行模拟器模拟无人机的手动飞行控制模式时,数传单元53可以在接收fcu52发送的模拟无人机的当前姿态信息,并向地面站或遥控器发送模拟无人机的当前姿态信息的基础上,通过无线通信连接接收地面站或遥控器发送的飞行控制信息,并向fcu52发送飞行控制信息。
本实施例提供的飞行模拟器,由通过软件模拟的imu模拟器和硬件形式的fcu组成,一方面通过软件方式对无人机的飞行控制器中的传感器数据、imu和被控单元进行了模拟,大大降低了无人机的测试开销,另一方面采用硬件形式的fcu消除了真实fcu和软件模拟fcu之间存在的差异,使飞行模拟器更接近真实无人机,且减少了大量的fcu代码移植到软件模拟器中的工作,因此本实施例提供的飞行模拟器能够贴近真实无人机的飞行状态,且节约对无人机进行模拟的成本和时间。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。