用于模拟可移动物体状态的方法和系统与流程

文档序号:17931907发布日期:2019-06-15 00:57阅读:359来源:国知局
用于模拟可移动物体状态的方法和系统与流程

所公开的实施例总体上涉及模拟和测试可移动物体的操作,并且更具体地但非排他地涉及模拟可移动物体状态。



背景技术:

诸如无人机(uav)的可移动物体可以用于执行针对军事和民用应用的监视、侦察和勘探任务。可移动物体通常与配置为执行各种功能的多个传感器相关联。在各种环境下测试可移动物体的性能以及多个传感器的性能是相当重要的。



技术实现要素:

需要一种可移动物体模拟系统,所述可移动物体模拟系统在各种模拟环境下模拟可移动物体的操作以便测试可移动物体的机械故障、传感器的故障、和/或可移动物体和环境中的其他物体之间的交互。

根据一些实施例,一种模拟可移动物体的操作的方法。所述方法包括通过执行可移动物体模型来模拟可移动物体的一个或多个状态。每个模拟状态与可移动物体的模拟状态数据相关联。所述方法包括:通过执行多个传感器模型,确定分别与所述一个或多个模拟状态相对应的一组或多组模拟传感器数据。所述方法还包括:通过执行环境模型来确定所述可移动物体周围的模拟环境的环境数据。所述方法还包括:向可移动物体控制器提供所述一组或多组的模拟传感器数据,所述可移动物体控制器被配置为生成用于调整可移动物体的状态的控制信号。所述方法还包括:向视觉模拟器提供模拟状态数据和环境数据,其中所述视觉模拟器被配置为可视化可移动物体在一个或多个模拟状态下的操作。

根据一些实施例,一种系统可以包括:一个或多个处理器;存储器;以及一个或多个程序。该一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行。该一个或多个程序包括用于执行上述方法的操作的指令。根据一些实施例,非暂时性计算机可读存储介质已经在其中存储有指令,该指令在由电子设备执行时使电子设备执行上述方法的操作。

根据一些实施例,一种用于模拟视觉数据的方法包括:获得与可移动物体的一个或多个状态相关联的状态数据、与所述可移动物体周围的环境相关联的环境数据以及承载在所述可移动物体上的一个或多个成像传感器的位置数据。所述方法还包括:基于状态数据、环境数据和位置数据来模拟一个或多个成像传感器的视图。所述方法还包括:提供用于显示的模拟视图。

根据一些实施例,一种系统可以包括:一个或多个处理器;存储器;以及一个或多个程序。该一个或多个程序存储在存储器中并被配置为由一个或多个处理器执行。该一个或多个程序包括用于执行上述方法的操作的指令。根据一些实施例,非暂时性计算机可读存储介质已经在其中存储有指令,该指令在由电子设备执行时使电子设备执行上述方法的操作。

根据一些实施例,一种系统包括:状态模拟器,被配置为执行用于以下操作的一个或多个程序:(1)模拟可移动物体的一个或多个状态,每个模拟状态与可移动物体的模拟状态数据相关联;(2)确定与一个或多个模拟状态相对应的一组或多组模拟传感器数据;以及(3)确定可移动物体周围的模拟环境的环境数据。所述系统还包括:可移动物体控制器,与状态模拟器通信耦接并配置为生成用于调整可移动物体的状态的控制信号。所述系统还包括视觉模拟器,与状态模拟器以及可移动物体控制器通信耦接。视觉模拟器被配置为可视化可移动物体在一个或多个模拟状态下的操作。

附图说明

图1示出了根据一些实施例的可移动物体模拟系统。

图2示出了根据一些实施例的可移动物体模拟系统的状态模拟器的图。

图3示出了根据一些实施例的可移动物体模拟系统的可移动物体模型的图。

图4a-4c示出了根据一些实施例的可移动物体模拟系统的示例环境模型的图。

图5a-5e示出了根据一些实施例的可移动物体模拟系统的示例传感器模型的图。

图6a示出了根据一些实施例的由可移动物体模拟系统的视觉模拟器模拟的、来自可移动物体视角的示意性图像。

图6b示出了根据一些实施例的示意性图像对,其中模拟出所述示意性图像以表示可移动物体模拟系统的视觉模拟器的前成像设备的对应视场。

图6c示出了根据一些实施例的示意性图像对,其中模拟出所述示意性图像以表示可移动物体模拟系统的视觉模拟器的底部成像设备的对应视场。

图6d示出了根据一些实施例的包括示例可移动物体模拟系统的多个硬件模块和软件模块的图。

图7a-7d是示出了根据一些实施例的用于由可移动物体模拟系统的状态模拟器确定状态数据的方法的流程图。

图8a-8c是示出了根据一些实施例的由可移动物体模拟系统的视觉模拟器执行的方法的流程图。

图9a-9c是示出了根据一些实施例的可移动物体模拟系统的流程图。

具体实施方式

现在将详细参考实施例,其示例在附图中示出。在以下详细描述中,阐述了许多具体细节以便提供对所描述的各种实施例的透彻理解。然而,对于本领域的普通技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践各种所述实施例。在其他实例中,没有详细描述公知的方法、过程、组件、电路和网络,以免不必要地模糊实施例的方面。

以下描述使用无人机(uav)(例如,直升机)作为可移动物体(例如,可移动平台)的示例。无人机包括例如固定翼飞机和旋翼飞机(例如直升机、四轴飞行器和具有其他数量和/或配置的旋翼的飞机)。在一些实施例中,可移动平台还包括但不限于自动驾驶汽车(即,自主汽车、无人驾驶汽车)、虚拟现实(vr)耳机、增强现实(ar)耳机、具有摄像机和图像处理功能的手持式万向节。对于本领域技术人员而言显而易见的是,其他类型的可移动平台可以替代如下所述的uav,诸如移动电话、平板电脑或遥控器。

本发明提供与模拟和可视化可移动物体的操作相关的技术。在一些实施例中,状态模拟器用于分别执行可移动物体模型、传感器模型和环境模型以模拟状态数据、传感器数据和环境数据。在一些实施例中,视觉模拟器用于模拟与可移动物体相关联的视觉数据、环境的场景数据和来自在可移动物体上承载的成像设备或成像传感器的视角的图像数据。通过使用包括状态模拟器和视觉模拟器的可移动物体模拟系统,模拟并测试各种控制器或由诸如飞行控制器、基于视觉的算法等的可移动物体执行的算法的功能和操作是高效的、实用的且经济的。例如,可移动物体模拟系统可以用于测试可移动物体的机械故障、传感器的故障、以及可移动物体和环境中的其他物体之间的交互。通过使用可移动物体模拟系统,无需真实的可移动物体和/或认证环境来测试可移动物体的性能。

图1示出了根据一些实施例的可移动物体模拟系统100。可移动物体模拟系统100包括状态模拟器102、视觉模拟器140和可移动物体控制器170,它们之间彼此通信耦接。状态模拟器102用于通过执行多个模型来模拟可移动物体102的一个或多个状态。在一些实施例中,多个模型包括一个或多个可移动物体模型104、多个传感器模型106和一个或多个环境模型108。在一些实施例中,通过使用/软件来在一个或多个计算设备上实现多个模型。

在一些实施例中,状态模拟器102包括一个或多个通信接口,诸如,根据用户数据报文协议(udp)的用于在状态模拟器102和视觉模拟器140之间交换数据的udp接口110。例如,状态模拟器102经由udp接口110向视觉模拟器140发送状态数据116,并经由udp接口110从视觉模拟器140接收模拟视觉数据146。在一些其他实施例中,状态模拟器102包括其他适合的通信接口,诸如,根据传输控制协议(tcp)或串行端口的接口以便与视觉模拟器进行通信。例如,代替使用udp接口110和142,状态模拟器102和视觉模拟器140之间的通信可以使用tcp或串行端口来在这两个模拟器之间交换数据。

在一些实施例中,状态模拟器102还包括通用串行总线(usb)接口112,用于与可移动物体控制器170的通用异步接收器/发射器(uart)接口172来经由usb-uart转换器113进行通信。usb接口112、usb-uart转换器113和uart接口172可以被称作usb-uart接口。在一些示例中,状态模拟器102经由usb-uart通信接口向可移动物体控制器170发送模拟传感器数据118,并经由usb-uart通信接口从可移动物体控制器170接收整合的数据178(例如,基于传感器数据118和图像数据148整合的数据,从而表示可移动物体的估计状态)。在一些其他实施例中,状态模拟器102和可移动物体控制器170之间的通信包括其他适合的通信接口,诸如,控制器局域网(can)接口、串行端口或其他类型的适合通信接口。

在一些实施例中,状态模拟器102还包括数据采集系统114,用于从可移动物体控制器170接收控制信号180。在一些实施例中,可移动物体控制器170基于从视觉模拟器140接收的图像数据148和从状态模拟器102接收的传感器数据118,生成脉宽调制(pwm)信号。在一些实施例中,电子速度控制(esc)接口176将pwm信号作为输入,并输出用于控制可移动物体的一个或多个电机的控制信号180,以便实现可移动物体的某些运动和/或空间部署。在一些实施例中,控制信号180包括三相(或ac)电力,包括用于控制电机的低电压源。例如,数据采集系统114包括nipci6602数据采集板。备选地,数据采集系统114可以包括其他适合的数据采集系统的模型。在一个示例中,数据采集系统114被配置为经由多个信道(例如,8个信道)接收控制信号180。

视觉模拟器140可以被配置为使可移动物体的模拟状态可视化。例如,视觉模拟器140基于从状态模拟器102接收的状态数据116来提供可移动物体的模拟状态的可视化。通过使用计算机视觉算法,视觉模拟器140可以生成与可移动物体的这种可视化状态相关联的视觉数据146。这种模拟状态的可视化的示例可以包括与环境中的物体的碰撞、诸如可移动物体飞行高度的状态数据、碰撞产生的扭矩、机翼拍打、风施加给可移动物体的力等。视觉模拟器140还模拟3维场景,其中可移动物体在该3维场景中模拟运行。例如,视觉模拟器140模拟可移动物体周围的3维环境,包括山峰、建筑物、树等。此外,视觉模拟器140提供来自可移动物体上承载的一个或多个成像设备(诸如,由云台系统携带的主成像设备(搭载物)和/或一个或多个成像传感器(例如,立体相机、诸如飞行时间(tof)相机的深度相机、红外相机、超声成像传感器、视觉里程计系统的多个相机等))的视角的模拟图像数据148。在一些示例中,图像数据148包括可移动物体上承载的多个成像传感器的模拟视场,诸如,来自位于可移动物体前方的两个成像传感器(例如,立体相机对)的模拟视场,以及来自位于可移动物体底部的两个成像传感器的模拟视场。在一些实施例中,图像数据148表示一个或多个对应的成像传感器的第一人视角(fpv)图像。

在一些实施例中,视觉模拟器140包括通信接口,诸如udp接口142,用于与状态模拟器102进行通信。例如,视觉模拟器140经由udp接口142向状态模拟器102发送视觉数据146(例如,与可移动物体的状态相关联的)。视觉模拟器140还可以包括通信接口,诸如,移动工业处理器接口(mipi)和/或uart接口144,用于向可移动物体控制器170的通信接口174发送图像数据148(例如,来自可移动物体承载的一个或多个成像设备和/或成像传感器的角度)。

可移动物体控制器170用于控制多个操作并调整可移动物体的状态。在一些实施例中,可移动物体控制器170可以用于操作可移动物体。在一些实施例中,可移动物体控制器170基于从状态模拟器102接收的传感器数据118和从视觉模拟器140接收的图像数据148,生成脉宽调制(pwm)信号。在一些实施例中,esc接口176基于pwm信号生成控制信号180,且控制信号180用于控制可移动物体的一个或多个致动器(例如,电机),以便实现可移动物体的某些运动和/或空间部署。例如,控制信号180可以用于使可移动物体加速、减速、转弯或停止。控制信号180可以用于调整可移动物体的取向和/或可移动物体上承载的云台系统的取向。在一些实施例中,可移动物体控制器170通过诸如使用kalman滤波器、扩展kalman滤波器或任何适合的传感器融合算法,整合传感器数据118和图像数据148,以获得可移动物体的估计状态。可移动物体控制器170确定的估计状态由整合数据178来表示。可移动物体的这种估计状态与状态模拟器102确定的模拟状态(也被称为真实状态(groundtruth))是不同的。在一些实施例中,整合数据178表示的估计状态可以包括位置、取向、角速度、线速度、角加速度、线加速度、可移动物体和环境中物体(例如,目标)之间的相对位置、可移动物体和环境中物体之间的相对速度和/或与可移动物体的估计状态相关联的其他适合类型的状态数据。经由usb-uart通信接口将整合数据178发送给状态模拟器102。接着状态模拟器102将接收到的与可移动物体的估计状态相关联的整合数据178和与可移动物体的模拟状态(例如,真实状态)相关联的状态数据116(也被称为真实数据)进行比较。在一些实施例中,可移动物体控制器170基于传感器数据118、图像数据148和整合数据178,生成脉宽调制(pwm)信号。

在一些实施例中,可移动物体控制器170包括一个或多个通信接口,用于分别与视觉模拟器140和状态模拟器102进行通信。例如,可移动物体控制器170包括用于从状态模拟器102接收传感器数据118的uart接口172以及用于从视觉模拟器140接收图像数据148的mipi接口(例如,采用由mipi协会发布的mipi规范)和/或uart接口174。在一些实施例中,可移动物体控制器170向状态模拟器102发送由电子速度控制(esc)接口176基于脉宽调制(pwm)信号生成的用于控制可移动物体的电机的控制信号180。

在一些实施例中,基于从可移动物体控制器170接收的控制信号180,执行可移动物体模型104以输出与可移动物体的一个或多个模拟状态相对应的状态数据116。在一些示例中,状态数据116(也可以被称为模拟状态数据)包括位移(例如,位置的变化)、速度、加速度、取向角(或姿态)、角速度和其他类型的状态数据。在一些实施例中,状态数据116被称为真实数据且可移动物体的模拟状态被称为真实状态。如本公开中其他地方所述,状态数据116被发送给视觉模拟器140以供视觉模拟器140处理并生成与可移动物体状态的可视化相关联的视觉数据146。

在一些实施例中,执行传感器模型106以输出传感器数据118。在一些实施例中,基于状态数据116和根据环境模型108生成的环境数据(例如,环境数据204,图2)生成传感器数据118。在一些实施例中,传感器模型106包括分别用于模拟与可移动物体相关联的多个传感器的测量的多个模型。这些传感器用于测量与可移动物体的状态相关的数据。传感器数据118分别包括与来自多个传感器的模拟测量相对应的多组数据。例如,传感器数据118包括来自gps接收器、惯性测量单元(imu)、加速度器、陀螺仪、罗盘、气压计、温度计和/或与可移动物体相关联的其他类型传感器的模拟测量。

在一些实施例中,执行环境模型108以输出环境数据(例如,环境数据204,图2)。在一些实施例中,环境数据204包括可移动物体进行操作的模拟环境内的数据。在一些实施例中,环境数据204包括被配置为测量可移动物体进行操作的环境内的一个或多个传感器的模拟测量。例如,环境数据204包括可移动物体所在的位置处的高度(也被称作海拔)、纬度、经度、时间和地磁场强度以及其他适合类型的环境数据。

如本公开其他地方所述,状态模拟器102还将可移动物体控制器170确定的整合数据178与状态模拟器102确定的状态数据116进行比较,以测试并评估可移动物体控制器170是否正确运行。例如,比较结果可以用于测试可移动物体控制器170执行的惯性导航系统算法是否正确运行。

如图1所示,包括状态模拟器102、视觉模拟器140和可移动物体控制器170的模拟系统形成硬件在环(hil)模拟,用于测试和模拟可移动物体的操作。本公开所讨论的hil模拟系统相较于在实际操作场景下的实际可移动物体测试可以节约测试成本和测试时间。hil模拟系统还可以在某些场景下提供测试,而这些测试在实际物体测试下是难以创建的或创建成本昂贵。

图2示出了根据一些实施例的状态模拟器102的图。在一些实施例中,状态模拟器102由单个计算设备来实现。在一些其他实施例中,状态模拟器102由一同工作以执行相关动作的多个计算设备来实现。在一些实施例中,状态模拟器102的功能的一个或多个部分经由云计算来实现。在一些实施例中,状态模拟器102实现在被配置为执行实时硬件在环(hil)模拟的一个或多个计算设备上,诸如,由dspace或speedgoat开发的系统。在一些实施例中,状态模拟器102实现在计算设备上,其中在计算设备上使用simulinkdesktopreal-timetm来实时地编译、保存和执行多个模型(例如,可移动物体模型104)。采样率可以是约1khz。采样率还可以被选择为小于或大于1khz,诸如,100hz、500hz、800hz、1.2khz、1.5khz、2khz或5khz。在一些备选实施例中,状态模拟器102实现在至少两个计算设备上,其中第一计算设备用于编译模型(例如,可移动物体模型104),且编译模型被发送给第二计算设备并保存在第二计算设备处,第二计算设备用于执行模型(例如,可移动物体模型104)以获得模拟数据(也可以被称为模拟状态数据)。这种场景的采样率可以高达10khz、15khz、18khz、20khz、25khz、30khz或50khz。第一计算设备和第二计算设备可以经由tcp/ip通信、udp通信接口、uart通信接口、usb-uart通信接口、串行端口、或其他类型的适合通信接口来彼此通信。

如图2所示,在一些实施例中,可移动物体模型104用于确定与可移动物体的模拟状态相关联的状态数据116。在一些示例中,可移动物体模型104用于模拟升力(例如,推力)、扭矩和/或由可移动物体的螺旋桨产生的离心力。可移动物体模型104经由数据采集系统114从可移动物体控制器170接收控制信号180。可移动物体模型104还经由udp接口110从视觉模拟器接收视觉数据146。可移动物体模型104然后基于控制信号180和视觉数据146来确定与可移动物体的模拟状态(例如,真实状态)相关联的状态数据116(例如,真实数据)(如参考图3的各种示例实施例中所述)。在一些实施例中,状态数据116包括位置(例如,坐标)位移、速度、加速度、取向角(或姿态)、角速度和与可移动物体的状态相关联的其他类型的状态数据。在一些实施例中,使用可移动物体模型104(例如,主体模型304,图3)来确定状态数据116。

状态数据116被发送给视觉模拟器140、环境模型108和传感器模型106。执行环境模型108以确定环境数据204,诸如,海拔、纬度、经度、时间和地磁场强度以及其他适合类型的环境数据。环境数据204经由udp接口110被发送给视觉模拟器140并被发送给传感器模型106。

执行传感器模型,以便确定传感器数据118(如参考图5a-5e的各种示例实施例所述),诸如与可移动物体相关联的多个传感器的模拟测量。传感器数据118可以是基于环境数据204、状态数据116和从可移动物体控制器170接收的整合数据178确定的。传感器数据118经由usb接口112被发送给可移动物体控制器170。在一些实施例中,状态模拟器102将状态数据116和从可移动物体控制器170接收的整合数据178进行比较,以确定可移动物体控制器是否正确操作。

图3示出了根据一些实施例的示例可移动物体模型104。在一些实施例中,可移动物体模型104包括电机模型302和主体模型304。电机模型302可以模拟无刷dc电机(bldc电机)。在一些实施例中,电机模型302的输入数据包括从可移动物体控制器170的esc接口176接收的控制信号180(例如,基于pwm信号)。输入数据还包括与可移动物体的螺旋桨相关联的螺旋桨规格数据306。例如,螺旋桨规格数据指示螺旋桨的状态,诸如,螺旋桨的断裂、裂缝、长度和/或断裂点。执行电机模型302以基于控制信号180和螺旋桨规格数据306输出与螺旋桨动态相关联的一组数据308。例如,所述一组数据308可以包括螺旋桨推力(fz)、螺旋桨扭矩(mz)、离心力(fcent)、离心扭矩(mcent)、螺旋桨的角速度(pw)和螺旋桨的角度(theta)等。对于电机模型302,在一些实施例中,可以使用一个或多个参数(包括左翼和右翼的螺旋桨规格、升力系数、动态螺旋桨旋转速度和其他适合参数)来确定螺旋桨推力(fz)、螺旋桨扭矩(mz)、离心力(fcent)和/或离心扭矩(mcent)。

来自电机模型302的输出数据被馈送到主体模型304。此外,从视觉模拟器140接收的视觉数据146也被馈送到主体模型304。在一些实施例中,视觉数据146包括与可移动物体和环境中一个或多个物体之间的交互相关的数据。在一些示例中,视觉数据146包括但不限于:风施加到可移动物体的力(fw)、在可移动物体和环境中另一物体之间的碰撞期间施加到可移动物体的力(fcrash)、碰撞产生的扭矩(mcrash)以及从状态数据116中选择的一个或多个数据项,诸如可移动物体和地之间的高度(例如,海拔)。执行主体模型304以输出与可移动物体的模拟状态相关联的一组数据310。在一些实施例中,所述一组数据310可以包括时间(time)(在模拟可移动物体的操作期间)、位移(shift)(或行驶距离、当前位置和初始位置之间的可移动物体位移)、线速度(vel)、线加速度(ab)、姿态(att)(或取向角)、角速度(w)、角加速度(dw)、以及经度、纬度和海拔(统称为lla)。所述一组数据310从可移动物体模型104输出作为状态数据116,如本公开其他地方所讨论。

在一些实施例中,可移动物体模型104用于模拟不同类型可移动物体(诸如,四轴x翼直升机、六轴x翼直升机或八轴x翼直升机)的操作状态和动态。例如,可移动物体模型104可以模拟由于可移动物体的螺旋件(或翼)的断裂而引起的可移动物体状态,诸如,电机动态和主体振动。在一些实施例中,可以改变螺旋桨规格数据306,以模拟响应于相应的螺旋桨断裂或裂缝场景的可移动物体状态。

图4a-4c示出了根据一些实施例的多个环境模型108的图。环境模型108基于状态数据116确定环境数据204。图4a示出了地磁场强度模型402。在一些实施例中,与可移动物体的纬度、经度、海拔(统称为lla)和时间相关联的数据被馈送到地磁场强度模型402。执行地磁场强度模型402以输出可移动物体的位置处的磁场强度。

图4b示出了用于确定可移动物体的环境的压力和温度的压力与温度模型410。可移动物体的海拔被输入到模型410,以便获得在该高度下的温度数据和气压数据。

图4c示出了用于确定可能影响用于导航可移动物体的罗盘的磁干扰的磁干扰模型420。在一些实施例中,与磁扰动(例如,地磁暴)位置相关联的数据(扰动位置)、磁场线的变化(扰动形状)、磁场的当前强度(当前强度)和可移动物体的位置(直升机位置)被馈送到模型420,以输出磁干扰强度(magdisturb)。在一些实施例中,在模拟期间,磁场线可以是从双极磁场、环形磁场、u形磁场、其他适合类型磁场中选择的,或是一个或多个磁场的组合。

图5a-5e示出了根据一些实施例的多个示例传感器模型106。传感器模型106可以用于基于状态数据116和/或环境数据204来确定传感器数据118。图5a示出了加速度计和陀螺仪模型510,用于模拟来自承载在可移动物体上的这种设备的测量。诸如加速度(ab)、角速度(w)和角加速度(dw)的状态数据被输入到模型510,以导出包括加速度计的模拟测量(accmeas)和陀螺仪的模拟测量(gyromeas)在内的输出传感器数据。在一些实施例中,承载在可移动物体上的加速度计和陀螺仪包括阻尼设备,诸如,阻尼弹簧。加速度计和陀螺仪模型510可以被简化,以使用二阶系统。在一些实施例中,所确定的传感器数据118还包括各种传感器噪声,诸如,陀螺仪的漂移和/或加速度计的漂移。

图5b示出了用于模拟来自可移动物体的气压计的测量的气压计模型520。诸如环境的气压(气压)的环境数据以及诸如可移动物体的速度(vel)的状态数据被输入到模型520,以确定承载在可移动物体上的气压计的模拟测量。在一些实施例中,气压是基于可移动物体的高度以及可移动物体周围的风运动的动态而确定的。

图5c示出了用于模拟承载在可移动物体上的温度计的测量的温度计模型530。大气温度(t)被输入到温度计模型530以便获得温度计的模拟测量。在模拟期间还可以考虑固有的设备噪声。

图5d示出了用于模拟可移动物体的磁力计的测量的磁力计模型540。例如,磁力计可以是三轴磁力计(罗盘)。诸如可移动物体位置处的地磁场强度(magearth)以及磁干扰强度(magdisturb)的环境数据以及诸如可移动物体的姿态数据(att)的状态数据被输入到模型540,以获得磁力计的模拟测量(magmea)。

图5e示出了用于模拟承载在可移动物体上的gps接收器的测量的gps接收器模型550。与可移动物体的纬度、经度、海拔(统称为lla)、速度(vel)相关联的数据以及来自与可移动物体相关联的各种源(诸如附近频带内的无线电辐射、有意或无意的干扰台和/或自然发生的空间天气)的gps干扰(gpsinterf)被输入到模型550,以获得gps接收器的模拟测量(gps数据分组)。在一些实施例中,gps数据分组包括测量数据,包括但不限于:海拔、纬度、经度、沿三个方向的速度、垂直精度、水平精度、gps接收器状态和可用的gps卫星的数量。

在一些实施例中,通过使用不同输入数据或调整不同类型的模型(如参考图3、图4a-4c以及图5a-5e所述),可以使用可移动物体模拟系统来测试各种场景。在一个示例中,为了测试可移动物体的机械故障,与螺旋桨的断裂相关联的动态模型可以与可移动物体模型104相结合,以获得与可移动物体的一个或多个螺旋桨断裂的场景相关联的状态数据。在另一示例中,为了测试传感器故障,与数据丢失或数据传输失败相关联的模型可以被添加到传感器模型106中的一个或多个传感器模型(例如,加速度计和陀螺仪模型510),以便获得在这种类型的传感器故障场景下的传感器数据。在再一示例中,为了测试来自外来物体(诸如环境中的磁体)的磁干扰,与这种类型的磁干扰相关联的模型可以被并入环境模型108中的一个或多个(例如,磁干扰模型420),以获得磁干扰数据。然后,可以将磁干扰数据馈送到传感器模型106(例如,磁力计模型540)作为环境数据的一部分,以获得在这种场景下承载在可移动物体上磁力计或罗盘的模拟测量。

图6a示出了根据一些实施例的由可移动物体模拟系统100(例如图1)的视觉模拟器140模拟的、来自可移动物体视角的示意性图像552。图6b示出了根据一些实施例的示意性图像对562和564,其中模拟出示意性图像562和564以表示视觉模拟器140的前成像设备(例如,立体相机对)的对应视场。图6c示出了根据一些实施例的示意性图像对566和568,其中模拟出示意性图像566和568以表示视觉模拟器140的底部成像设备(例如,另一立体相机对)的对应视场。如上所述,视觉模拟器140从状态模拟器102接收状态数据116(例如,可移动物体的姿态信息),并使用计算机视觉算法来确定视觉数据146、场景数据和图像数据148。视觉数据146、场景数据和图像数据148被馈送给图像光栅化模块以基于由视觉模拟器140确定的数据和一个或多个3维(或2维)图形模型来获得模拟视图。模拟视图包括来自承载在可移动物体上的一个或多个成像传感器的视角的视场。

视觉模拟器140提供来自承载在可移动物体上的一个或多个成像设备(包括但不限于,由云台系统携带的主成像设备、和/或一个或多个成像传感器(例如,立体相机、飞行时间(tof)相机、红外相机、视觉里程计(vo)系统的多个相机和/或超声成像传感器))的视角的模拟图像数据148。图像数据148涉及基于可移动物体的位置信息(例如,位置和/或姿态信息)和/或成像设备的位置信息(例如,主成像设备的取向角)的一个或多个成像设备的视场。在一些示例中,图像数据148包括位于可移动物体的不同部分处的多个成像传感器的模拟视图,诸如位于可移动物体的前部的两个成像传感器(例如,立体相机对)的模拟视图(例如,立体图像对)以及位于可移动物体底部的两个成像传感器(例如,立体相机对)的模拟视图(例如,立体图像对)。可移动物体还可以包括位于可移动物体的其他区域(诸如,可移动物体的左侧、右侧、顶部和/或后部)的一个或多个成像传感器。图像数据148可以包括来自对应成像传感器的模拟视图,诸如,左视图、右视图、上视图和/或后视图。在一些实施例中,如图6a所示,可移动物体位于图6a中的点554处。顶点在点554处的第一视觉金字塔556表示位于可移动物体前部的一个或多个成像传感器的视场。如图6b所示,视场模拟器140可以模拟表示位于可移动物体前方的一个或多个成像传感器(例如,立体成像传感器对)的视图的立体图像对562和564。顶点在点554处的第二视觉金字塔558表示位于可移动物体底部的一个或多个成像传感器的视场。如图6c所示,视场模拟器140可以模拟表示位于可移动物体底部的一个或多个成像传感器(立体成像传感器对)的视图的立体图像对566和568。由视觉模拟器140提供的图像数据148可以包括来自一个或多个视觉传感器和/或搭载物的模拟图像数据,诸如,模拟图像562和564和/或模拟图像566和568。在一些实施例中,一个或多个模拟图像可以被提供为立体图像、单独图像或组合图像(例如,拼接全景图像)。在一些实施例中,视觉模拟器140使用成像传感器的位置数据将状态数据从可移动物体的坐标系转换到成像传感器的坐标系,使得可以向用户显示图6b和6c中所示的第一人视角(fpv)图像。

在一些实施例中,场景数据包括与可移动物体周围的环境相关联的数据。在一个示例中,场景数据包括与环境中的静止物体(诸如,山、建筑物(例如,图6a中的建筑物)、树(例如,图6a中的树))等相关联的数据。在另一示例中,场景数据包括与环境中的运动物体(诸如,移动的人、汽车(例如,图6a中的汽车)、热气球等)相关联的数据。在一些实施例中,场景数据包括与可移动物体周围的3维环境相关联的3维数据。在一些实施例中,场景数据包括与环境中的天气条件相关的数据。

通过使用计算机视觉算法,视觉模拟器140可以生成与可移动物体的一个或多个可视化状态相关联的视觉数据146。这种对模拟状态的可视化的示例可以包括与环境中的物体的碰撞、可移动物体飞行在特定高度、由碰撞产生的扭矩、机翼拍打、风对可移动物体施加的力等。

在一些实施例中,模拟图像600被显示在电子设备上操作的应用的用户界面。用户可以在可移动物体的操作的模拟期间经由该应用的用户界面进行观察,并且具有直接的用户交互。例如,用户可以使用应用以控制可移动物体并观察来自可移动物体和/或承载在可移动物体上的成像传感器的视角的模拟视图。在一些实施例中,如图6a所示,例如,除了模拟图像600之外,还可以在用户界面上的面板560中,与模拟实时地显示与可移动物体的模拟状态相关联的一个或多个数据项、可移动物体周围的模拟环境和/或模拟传感器测量。例如,面板560列出选自由视觉模拟器140确定的视觉数据146、场景数据和/或图像数据148的一个或多个数据项。备选地或附加地,面板560列出选自状态数据116、环境数据204和/或传感器数据118的一个或多个数据项。例如,如图6a所示,面板560列出了在模拟可移动物体的操作期间的速度(即,速率)、取向角、纬度(la)、经度(lo)、高度(h)和风速(wind)。在一些其他示例中,面板560列出在模拟视图下检测的一个或多个物体(例如,树)的尺寸和/或距离。在一些实施例中,用户可以直接调整和/或输入多个数据项,诸如高度。响应于此,在可移动物体的模拟期间将改变对应的状态,例如高度。在一些实施例中,用户可以直接与模拟图像交互,以操控可移动物体的模拟。例如,用户可以圈出显示在模拟视图600上的物体,并响应于此,视觉模拟器可以显示所选物体的尺寸和/或距离。附加地或备选地,可移动物体模拟系统100可以生成用于控制可移动物体在模拟期间追踪或避开所选物体的命令。

图6d示出了包括示例可移动物体模拟系统(例如,可移动物体模拟系统100)的多个硬件模块和软件模块的图。可移动物体模拟系统100包括示例视觉模拟器(例如,视觉模拟器140)。在一些实施例中,视觉模拟器140包括用于模拟承载在可移动物体上的一个或多个成像传感器的图像数据的虚拟成像系统602、用于模拟可移动物体进行操作的3维环境的3维图形系统604、用于模拟来自承载在可移动物体上的超声成像传感器的数据的超声成像传感器模拟器606、用于模拟来自承载在可移动物体上的飞行时间(tof)相机的数据的tof相机模拟器610、用于模拟来自主成像设备/主要成像设备/搭载物的图像数据的图像模拟器612。在一些实施例中,视觉模拟器140由单个计算设备来实现,尽管在其他实施例中,视觉模拟器140由一起工作以执行相关动作的多个计算设备来实现。在一些实施例中,视觉模拟器140的功能的一个或多个部分经由云计算来实现。在一些实施例中,状态模拟器102和视觉模拟器140实现在同一计算设备上。备选地,状态模拟器102和视觉模拟器140实现在单独的计算设备上。

如图6d所示,在一些实施例中,状态模拟器102可以从可移动物体控制器170获得控制信号180。控制信号180可以包括用于调整可移动物体的位置以及承载在可移动物体上的一个或多个成像传感器的位置的控制信号。在一些实施例中,控制信号180包括用于调整一个或多个成像传感器的一个或多个固有参数(诸如焦距、缩放信息、景深(dof)等)的命令。在一些实施例中,控制信号180包括用于调整外在参数(诸如一个或多个成像传感器的位置信息,如姿态)的命令。主成像设备的位置信息可以通过沿着一个或多个旋转轴调整云台的取向角而改变。成像传感器(诸如立体相机和/或深度相机)的位置信息可以通过调整可移动物体的位置信息而改变。在一些实施例中,状态模拟器102还可以从可移动物体控制器170获得表示可移动物体的估计状态的整合数据178。在一些实施例中,状态模拟器102向可移动物体控制器170发送传感器数据118。

如本公开所讨论地,状态模拟器102生成状态数据116(例如,参考图1、2和3所述)并向视觉模拟器140发送状态数据116。状态数据116可以包括但不限于相机数据630(例如,载体系统的取向)和数据634(例如,可移动物体的状态信息)。

在一些实施例中,虚拟成像系统602从状态模拟器102获得相机数据630。相机数据630可以基于控制信号180提供一个或多个成像传感器/成像设备的固有参数和/或外在参数。虚拟成像系统602可以使来自一个或多个虚拟成像传感器/成像设备的原始图像数据光栅化(632)以便获得光栅化的图像数据642,其可以被发送到图像模拟器612和tof相机模拟器610。光栅化过程632可以包括拍摄以矢量图格式(形状)表示的图像并将该图像转换为光栅图像(像素或点),用于在视频显示器或打印机上输出,或用于以位图文件格式存储。在一些实施例中,光栅化图像数据642包括由虚拟成像系统602模拟的一个或多个成像传感器/成像设备的视场下的图像数据。在一些实施例中,光栅化图像数据642是基于由状态模拟器102确定的状态数据116确定的。在一些实施例中,光栅化图像数据642是基于表示可移动物体的估计状态并由可移动物体控制器170确定的整合数据178而确定的。在一些实施例中,光栅化图像数据642对应于表示可移动物体的运动和周围环境的模拟视场(如图6a所示)。在一些实施例中,光栅化图像数据642基于相机数据630从可移动物体坐标系转换到对应的成像设备(例如,位于可移动物体的前部、后部、底部、顶部、左侧或右侧的主成像设备或立体成像传感器对)的坐标系。这样,第一人视角(fpv)可以是从如图6b-6c所示的成像设备的视角提供的。可以使用图形处理单元(gpu)来执行光栅化过程632。

在一些实施例中,状态模拟器102还可以向3维图形系统604发送数据634,以便确定与可移动物体进行操作的环境相关的3维图像数据。在一些实施例中,数据634是基于环境数据204和传感器数据118确定的,其中由环境模型108和传感器模型106分别确定环境数据204和传感器数据118。数据634可以包括但不限于:可移动物体的状态信息(包括但不限于位置、取向、加速度、高度(也称为海拔)、纬度、经度、时间和可移动物体所在的位置处的地磁场强度。在一些实施例中,数据634是基于包括来自gps接收器模型、imu模型和一个或多个其他类型传感器模型的模拟测量的传感器数据118确定的。

3维图形系统604可以基于数据634来模拟3维环境。3维图形系统604向超声成像传感器模拟器606发送数据(包括模拟3维环境数据),超声成像传感器模拟器606用于估计在模拟操作期间可移动物体相对于地面的海拔。

超声成像传感器模拟器606可以基于模拟射线投射方法来确定海拔数据638(636)。例如,超声波被模拟成是从超声传感器在可移动物体上所在的位置处生成的,并被发送给地面。在模拟的3维环境中,确定投射的超声波和地面之间的交点。交点和超声波的初始发射点之间的距离被确定为可移动物体的海拔数据638(也称为来自超声成像传感器的模拟图像数据)。

如上所述,在一些实施例中,tof相机模拟器610从虚拟成像系统602获得光栅化图像数据642。tof相机模拟器610可以处理光栅化的图像数据642,以便获得像素在光栅化图像中的深度数据640(深度数据也称为来自tof相机的模拟图像数据)。

在一些实施例中,图像模拟器612接收光栅化图像数据642并可以基于光栅化图像数据642生成模拟图像数据646。在一些实施例中,光栅化图像数据642是基于原始图像数据的,且光栅化图像数据642具有原始图像数据格式,例如,包括原始rgb值。在一些实施例中,图像模拟器612通过添加图像缺陷,诸如噪声、失真和/或过曝光或欠曝光,来处理原始图像数据。模拟图像数据646可以是来自承载在可移动物体上的主成像设备(例如,主成像设备)的视场的模拟图像数据。在一些实施例中,模拟图像数据646包括经处理的数据,诸如编码数据,其相较于原始数据具有减小的文件大小,用于提供高效的数据传输,例如实时传输。来自超声成像传感器的模拟图像数据(例如,海拔数据638)、来自tof相机的模拟图像数据(例如,深度数据640)以及来自主成像设备的模拟图像数据646是来自具有不同设置(诸如,类型、分辨率、焦距、位置/取向)的不同传感器/成像传感器/成像设备的对应模拟图像数据。这样,对应输出的模拟图像数据可以根据不同的传感器/成像传感器/成像设备而不同。在一些实施例中,用于在图像模拟器612处光栅化和模拟图像数据的gpu可以对模拟图像数据646进行编码(648)以便压缩。编码图像数据可以被发送给解码器616。压缩过程可以增加图像数据的传输效率以便使图像数据传输的时延最小化。在一些实施例中,编码图像数据可以经由usb通信接口被发送给解码器616。解码器616对接收的图像数据进行解码,并向运行计算机视觉算法614的计算设备/模块发送解码后的图像数据650以供处理。

在一些实施例中,运行计算机视觉算法614的计算设备/计算设备的模块可以接收海拔数据638和深度数据640。计算机视觉算法614可以用于整合海拔数据638和深度数据640。运行计算机视觉算法614的计算设备可以经由usb通信接口接收海拔数据638和深度数据640。在一些实施例中,在模拟期间,海拔数据638和/或深度数据640的传输频率被选择为与真实tof传感器的采样率相同。如图6d所示,计算机视觉算法614可以从解码器616接收解码后的图像数据。计算机视觉算法614还可以从可移动物体控制器170接收与imu传感器的控制位置信息相关的控制信号654。在一些实施例中,视觉算法614可以是至少部分地基于计算机视觉、障碍物检测/避障、自动着陆、定位、导航、控制、路径规划等的任何算法。视觉计算机算法614可以用于基于海拔数据638和深度数据640来处理来自解码器616的图像数据650和/或整合数据,以输出控制信号652。在一些实施例中,视觉算法是至少部分地基于计算机视觉、障碍物检测/避障、自动着陆、定位、导航、控制、路径规划和/或其他合适算法的任何算法。控制信号652可以包括用于调整可移动物体的位置以避开在模拟图像中检测到的障碍物的命令。在一些实施例中,控制信号652可以包括用于调整可移动物体的位置和速度以追踪模拟图像中的目标的命令。

如图6d所示,图像传输模块620可以从解码器616获得图像数据650。图像传输模块620可以向遥控器618发送图像数据656。在一些实施中,由于视觉算法614可以处理分辨率比用于显示在显示设备上的数据更低的数据,所以要被发送给视觉算法614的图像数据650比要被发送给遥控器618的图像数据656具有更低的分辨率。在一些示例中,图像传输模块620可以发送与接收的图像数据650相同的图像数据656。在一些示例中,图像传输模块620可以调整图像数据656,以便显示在遥控器618和/或其他适合的显示设备(例如,通过应用624)上。在再一示例中,图像传输模块620可以处理图像数据650(例如,压缩或编码)用于高效传输(例如,具有更小的尺寸、更低的分辨率等)。

在一些实施例中,遥控器618的显示设备可以基于图像数据656显示图像。在一些实施例中,遥控器618可以从可移动物体控制器170接收状态信息660。在一些实施例中,状态信息660可以包括由状态模拟器102确定并被发送给可移动物体控制器170的传感器数据118。在一些示例中,状态信息660可以与由如参考图1讨论的可移动物体控制器170产生的整合数据178(与可移动物体的估计状态相关)相同或至少与其子集相同。例如,状态信息660可以包括可移动物体的海拔、速度、取向、位置等。

遥控器618可以生成并向可移动物体控制器170发送控制信号658。控制信号658可以是基于来自遥控器618的用户的手动操作而生成的。遥控器618还可以向在计算设备(例如,便携式电子设备)上运行的应用624发送数据662。数据662可以包括状态信息660和/或图像数据656。例如,数据662可以包括:(1)由可移动物体控制器170确定的整合数据178的一个或多个数据项;(2)由状态模拟器102确定的状态数据116的一个或多个数据项;(3)传感器数据118的一个或多个数据项;(4)环境数据204的一个或多个数据项;或(5)(1)-(4)的任意组合。在一些实施例中,在显示设备上向用户显示例如如图6a所示的用户界面。例如,可移动物体的模拟操作、一个或多个成像设备/成像传感器的模拟视场和/或模拟环境可以显示在如参考图6a-6c讨论的应用的用户界面上。

在一些实施例中,可移动物体控制器170向被配置为携带搭载物(例如,成像设备)的载体622(例如,云台系统)发送可移动物体的数据666。在一些示例中,载体622的控制器可以基于数据666确定载体622的位置数据,使得当载体622处在所确定的位置时可以保持稳定的视场。数据666可以包括可移动物体的位置和/或取向。例如,如果可移动物体向上倾斜,则载体可以相应地向下倾斜成像设备,以维持稳定的视场。在一些实施例中,数据666可以至少包括整合数据178的子集。载体622可以向可移动物体控制器170发送所确定的位置数据(诸如姿态信息)作为反馈数据664。

可以使用如本公开所讨论的硬件在环(hil)模拟系统来测试一个或多个硬件模块。被测试的一个或多个硬件模块包括可移动物体上的模块(例如,一个或多个成像传感器)和/或可移动物体外的模块(例如,遥控器618和/或便携式设备上的应用624)。

在一个示例中,遥控器618可以分别从可移动物体170和图像传输模块620接收状态信息660和图像数据656,并对其进行处理。遥控器618可以输出数据662和控制信号658。控制信号658可以被发送到可移动物体控制器170,且控制指令(例如,控制信号180)将相应地更新。如本公开所讨论地,更新后的控制信号180将被馈送到可移动物体模型104,以输出更新后的状态数据116。这样,从遥控器618发送的指令可以使可移动物体的状态(例如,速度、位置、取向、高度等)发生某些改变,以便测试遥控器618是否可以正确运行。遥控器618还可以向应用624发送数据662,以便显示在计算设备上。用户可以实时观看可移动物体的取向,并通过使用应用624在计算设备的显示器上与模拟操作进行交互。

在另一示例中,图像传输模块620可以发送、调整和/或压缩图像数据650,以输出图像数据656。图像数据656的一个或多个数据项可以被包括在由应用624显示在计算设备上的数据662中,以便使用户能够观看显示器上的图像/视频,从而监控可移动物体的模拟操作。可以通过使用硬件在环(hil)模拟系统来高效地测试图像传输模块620。

在另一示例中,也可以测试载体622的控制。载体622的控制器可以基于数据666(例如,可移动物体的位置和/或取向)调整载体622的取向,以便维持相机搭载物的稳定视场。当载体622改变其取向时,载体622向可移动物体控制器170发送反馈数据664(例如,包括更新后的取向数据)。可移动物体控制器170可以更新pwm信号,相应地,esc接口176可以基于更新后的pwm信号来输出更新后的控制信号180。状态模拟器102接着基于更新后的控制信号来更新状态数据116。视觉数据146、图像数据148、相机数据630和/或数据634也将基于状态数据116的改变而更新。可以在计算设备的显示器上使这些类型的数据的改变可视化。这样,可以通过使用硬件在环(hil)模拟系统来高效地测试对载体622的控制。

图7a-7d是示出了根据一些实施例的用于由可移动物体模拟系统100的状态模拟器102确定状态数据的方法700的流程图。在被配置为用于实现状态模拟器102的一个或多个计算设备处执行方法700。在图7a-7d中执行的操作对应于存储在(一个或多个)对应设备的计算机存储器或其他计算机可读存储介质中的指令。

计算设备通过执行可移动物体模型(例如,可移动物体模型104,图1-2)模拟(702)可移动物体的一个或多个状态。每个模拟状态与可移动物体的模拟状态数据(例如,状态数据116或真实数据)相关联。

在一些实施例中,可移动物体模型用于模拟无人机(uav)(例如,直升机)。例如,可移动物体模型用于(712)模拟四轴x翼直升机、六轴x翼直升机或八轴x翼直升机。在一些实施例中,可移动物体模型包括(714)dc电机模型(例如,bldc电机模型302,图3)和可移动物体主体模型(例如,主体模型304,图3),用于确定模拟状态数据(例如,状态数据116)。

在一些实施例中,一个或多个模拟状态包括(724)可移动物体的推进系统的机械故障(例如,诸如翼断裂)、与可移动物体相关联的一个或多个传感器的故障、地磁场的改变、可移动物体和另一物体之间的碰撞、避障、目标检测和/或目标追踪。

在一些实施例中,可移动物体的模拟状态数据包括(726)可移动物体的位移、速度、加速度、姿态、角速度、角加速度、经度、纬度和/或高度(例如,如参考图3所述)。

计算设备通过执行多个传感器模型(例如,传感器模型106,图5a-5e)确定(704)分别与一个或多个模拟状态相对应的一组或多组模拟传感器数据(例如,传感器数据118)。

在一些实施例中,通过执行多个传感器模型确定一组或多组模拟传感器数据还包括(728)整合模拟状态数据(例如,状态数据116)和环境数据(例如,环境数据204)以获得一组或多组模拟传感器数据。

在一些实施例中,多个传感器模型用于(730)获得与可移动物体(例如,如图5a-5e所讨论地)相关联的加速度计、陀螺仪、磁力计、gps接收器、超声传感器、温度计和/或气压计的模拟传感器数据。

计算设备通过执行环境模型(例如,一个或多个环境模型108,图4a-4c)来确定(706)可移动物体周围的模拟环境的环境数据(例如,环境数据204,图2)。

在一些实施例中,环境数据包括(732)基于模拟状态数据(包括可移动物体的经度、纬度、高度和时间)计算的地磁场强度(例如,图4a)。在一些实施例中,环境数据包括(734)基于可移动物体的模拟高度计算的大气压力和环境温度(例如,图4b)。在一些实施例中,环境数据包括(736)基于在可移动物体的模拟位置处的地磁层扰动的位置、形状和当前强度计算出的对可移动物体的磁扰动(例如,图4c)。

计算设备向被配置为生成用于调整可移动物体的状态(例如,通过控制可移动物体的一个或多个电机)的控制信号(例如,控制信号180,图1)的可移动物体控制器(例如,可移动物体控制器170,图1)提供(708)一组或多组模拟传感器数据。在一些实施例中,控制信号180包括三相(或ac)电力,包括用于控制电机的低电压源。在一些实施例中,控制信号是基于脉宽调制(pwm)信号生成的(738)。

计算设备向被配置为使一个或多个模拟状态下的可移动物体的操作可视化的视觉模拟器(例如,视觉模拟器140)提供(710)模拟状态数据(例如,状态数据116)和环境数据(例如,环境数据204)。

在一些实施例中,通过执行可移动物体模型模拟可移动物体的一个或多个状态还包括(716):从可移动物体控制器接收(718)控制信号;从视觉模拟器接收(720)视觉交互数据(例如,视觉数据146);执行(722)可移动物体模型以便基于控制信号和视觉交互数据获得模拟状态数据。

在一些实施例中,计算设备从可移动物体控制器接收(740)可移动物体的整合状态数据(例如,整合数据178,图1)。整合状态数据是通过将一组或多组模拟传感器数据(例如,传感器数据118)与从视觉模拟器获得的图像数据(例如,图像数据148)整合而确定的。在一些实施例中,计算设备将可移动物体的整合状态数据(例如,整合数据178)和模拟状态数据(例如,状态数据116)进行比较(742),以便验证可移动物体控制器处的算法。

在一些实施例中,计算设备从可移动物体控制器接收(744)可移动物体的整合状态数据(例如,整合数据178)。整合状态数据是通过将一组或多组模拟传感器数据(例如,传感器数据118)与从视觉模拟器获得的图像数据(例如,图像数据148)整合而确定的。在一些实施例中,计算设备向被配置为使可移动物体的一个或多个模拟状态和整合状态可视化的视觉模拟器提供(746)模拟状态数据(例如,状态数据116)和整合状态数据(例如,整合数据178)。

图8a-8c是根据一些实施例的由可移动物体模拟系统(例如,可移动物体模拟系统100)的视觉模拟器(例如,视觉模拟器140)执行的方法的流程图。在被配置为用于实现视觉模拟器104的一个或多个计算设备处执行方法800。在图8a至图8c中执行的操作对应于存储在(一个或多个)对应设备的计算机存储器或其他计算机可读存储介质中的指令。

计算设备获得(802)与可移动物体的一个或多个状态相关联的状态数据、与可移动物体周围的环境相关的环境数据(例如,环境数据204)以及承载在可移动物体上的一个或多个成像传感器的位置数据(例如,相机数据630)。在一些实施例中,状态数据包括(808)从被配置为执行可移动物体模型以模拟可移动物体的一个或多个状态的状态模拟器(例如,状态模拟器102)获得的模拟数据(例如,状态数据116)。在一些实施例中,状态数据包括(810)从可移动物体控制器(例如,可移动物体控制器170)通过整合可移动物体的传感器数据和图像数据获得的估计状态数据(例如,整合数据178)。

计算设备基于状态数据、环境数据和位置数据来模拟(804)一个或多个成像传感器的视图。在一些实施例中,模拟一个或多个成像传感器的视图还包括(812)通过使用成像传感器的位置数据(例如,相机数据630)将状态数据从可移动物体坐标系转换为成像传感器的坐标系。在一些实施例中,模拟视图包括(814)3维图像,如图6a-6c所示。在一些实施例中,一个或多个成像传感器包括(816)由承载在可移动物体上的载体(例如,云台系统)支撑的成像设备(例如,主成像设备)或视觉里程计系统的多个相机。

计算设备提供(806)模拟视图以供显示。在一些实施例中,计算设备通过使用射线投射(例如,超声成像传感器模拟器606,图6d)来模拟(822)超声成像,以基于可移动物体和地面之间的距离来估计高度(例如,海拔)。在一些实施例中,计算设备模拟(824)飞行时间(tof)深度成像(例如,tof相机模拟器610,图6d),以获得模拟深度信息。在一些实施例中,计算设备向被配置为生成用于调整可移动物体的状态的控制信号的可移动物体控制器(例如,可移动物体控制器170)提供(826)模拟视图(例如,图像数据148和/或视觉数据146)。

在一些实施例中,提供模拟视图以供显示包括(818)向遥控器(例如,遥控器618)发送模拟视图(例如,图像数据656)以供显示。在一些实施例中,提供模拟视图以供显示包括(820)向在便携设备上运行的应用(例如,应用624)发送模拟视图(例如,数据662)以供显示。

图9a-9c是示出了根据一些实施例的可移动物体模拟系统900(例如,可移动物体模拟系统100,图1)的流程图。可移动物体模拟系统包括(902)被配置为执行一个或多个程序以模拟(904)可移动物体的一个或多个状态的状态模拟器(例如,状态模拟器102,图1)。每个模拟状态与可移动物体的模拟状态数据(例如,状态数据116)相关联。状态模拟器(例如,状态模拟器102,图1)还被配置为执行一个或多个程序以确定(906)与一个或多个模拟状态相对应的一组或多组模拟传感器数据(例如,传感器数据118)。状态模拟器(例如,状态模拟器102,图1)还被配置为执行一个或多个程序以确定(908)可移动物体周围的模拟环境的环境数据(例如,环境数据204)。

在一些实施例中,状态模拟器还被配置为将可移动物体的整合状态数据(例如,整合数据178)与模拟状态数据(例如,状态数据116)相比较(914)。在一些实施例中,状态模拟器(916)还被配置为接收(918)来自可移动物体控制器(例如,可移动物体控制器170)的控制信号(例如,控制信号180)以及来自视觉模拟器(例如,视觉模拟器140)的视觉交互信号(例如,视觉数据146)。在一些实施例中,状态模拟器还被配置为执行(920)可移动物体模型(例如,可移动物体模型104)以基于控制信号和视觉交互数据获得模拟状态数据。

可移动物体模拟系统还包括(910)可移动物体控制器(例如,可移动物体控制器170,图1),可移动物体控制器与状态模拟器通信耦接并被配置为生成用于调整可移动物体的状态的控制信号(例如,控制信号180)。

在一些实施例中,可移动物体控制器被配置为整合(922)来自状态模拟器的一组或多组传感器数据(例如,传感器数据118)以及来自视觉模拟器的图像数据(例如,图像数据148),以获得可移动物体的整合状态数据(例如,整合数据178)。

在一些实施例中,可移动物体控制器被配置为整合(924)来自状态模拟器的一组或多组传感器数据(例如,传感器数据118)以及来自视觉模拟器的图像数据(例如,图像数据148),以生成pwm信号,其中pwm信号被可移动物体控制器170的esc接口176进一步用于生成控制信号(例如,控制信号180)。

可移动物体模拟系统还包括(912)与状态模拟器和可移动物体控制器通信耦接的视觉模拟器(例如,视觉模拟器140,图1)。视觉模拟器被配置为可视化可移动物体在一个或多个模拟状态下的操作。

在一些实施例中,视觉模拟器被配置(926)为从状态模拟器接收(928)模拟状态数据(例如,状态数据116)和整合状态数据(例如,整合数据178)。视觉模拟器还被配置为使以下各项可视化(930):(1)可移动物体的一个或多个状态;以及(2)环境数据(例如,图6a-6c)。

在一些实施例中,状态模拟器和视觉模拟器之间的数据通信使用用户数据报文协议(udp)(例如,udp接口110)。在一些实施例中,状态模拟器和可移动物体控制器之间的数据通信使用通用串行总线(usb)-通用异步接收器/发射器(uart)接口(例如,usb接口112、usb-uart转换器113和uart接口172)。

本发明的许多特征可以使用或借助于硬件、软件、固件或其组合来执行。因此,可以使用处理系统来实现本发明的特征。示例处理系统(例如,处理器,一个或多个计算设备)包括但不限于一个或多个通用微处理器(例如,单核或多核处理器)、专用集成电路、专用指令集处理器、现场可编程门阵列、图形处理器、物理处理器、数字信号处理器、协处理器、网络处理器、音频处理器、加密处理器等。

本发明的特征可以在使用或借助于计算机程序产品(诸如存储有/其中可以用于编程的存储介质(多个介质)或计算机可读存储介质(多个介质)处理系统以执行本文中呈现的任何特征。存储介质可以包括但不限于任何类型的盘,包括:软盘、光盘、dvd、cd-rom、微型驱动器和磁光盘、rom、ram、eprom、eeprom、dram、vram、ddrram、闪存设备、磁卡或光卡、纳米系统(包括分子存储器ic)或者适于存储指令和/或数据的任何类型的介质或设备。

存储在机器可读介质(介质)中的任何一个上,本发明的特征可以被结合在用于控制处理系统的硬件的软件和/或固件中,并且用于使得处理系统能够利用结果与其他机构交互的本发明。这样的软件或固件可以包括但不限于应用程序代码、设备驱动程序、操作系统和执行环境/容器。

为了说明和描述的目的提供了本发明的前述描述。这并不是穷尽性的或将本发明限制于公开的确切形式。本发明的宽度和范围不应该受到任何上述示例实施例的限制。对于本领域技术人员而言,许多修改和变化将是显而易见的。修改和变化包括公开特征的任何相关组合。选择和描述实施例是为了最好地解释本发明的原理及其实际应用,从而使本领域的其他技术人员能够理解本发明的各种实施例以及适合于预期的特定用途的各种修改。意图是,本发明的范围由所附权利要求及其等同物限定。

以上借助于功能构建块描述了本发明,功能构建块说明了特定功能及其关系的执行。为了描述的方便,这些功能构建块的边界在本文中经常被任意定义。只要适当地执行了指定的功能和关系,就可以定义替代边界。因此任何这样的替代边界都在本发明的范围和精神之内。

在此描述的各种所描述的实施例中使用的术语仅用于描述特定实施例的目的,而不旨在限制。如在各种描述的实施例和所附权利要求的描述中所使用的,除非上下文另外明确指出,否则单数形式“一”、“一个”和“该”旨在也包括复数形式。还将理解的是,本文所使用的术语“和/或”是指并且包含一个或多个相关所列项目的任何和所有可能的组合。还应该理解,术语“具有”、“含有”、“包括”和/或“包含”在本说明书中使用时,表明存在所述的特征、整体、步骤、操作、元件和/或部件,但是并没有排除存在或另外添加一个或多个其它特征、整体、步骤、操作、元件、部件和/或其组合。

如本文所使用的,术语“如果”可以被解释为意指“何时”或“之上”或“响应于确定”或“根据确定”或“响应于检测”,所陈述的先决条件是真实,取决于上下文。类似地,短语“如果确定[所陈述的先决条件是真实的]”或“如果[所陈述的先决条件是真实的]”或“当[所陈述的先决条件是真实的”)“可以被解释为”根据上下文确定“或”响应于确定“或”根据确定“或”根据检测“或”响应于检测到“所陈述的先决条件为真。

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