欢迎光临小豌豆知识网!
当前位置:首页 > 物理技术 > 调节控制> 使用传感器融合估计可移动物体的状态信息的方法及系统独创技术167809字

使用传感器融合估计可移动物体的状态信息的方法及系统

2021-03-08 06:46:22

使用传感器融合估计可移动物体的状态信息的方法及系统

  本申请是申请日为2015年5月23日、申请号为201580080296.5、发明名称为“使用惯性传感器和图像传感器的传感器融合”的发明专利申请的分案申请。

  背景技术

  诸如无人飞行器(UAV)等无人载具可以用于执行监视、侦察和勘探任务以供多种民用、商用和军事应用。无人飞行器可以由远程用户手动控制,或者能够以半自主或者全自主方式操作。此类无人飞行器可以包括传感器,所述传感器被配置成用于收集可在无人飞行器操作期间使用的数据,诸如状态信息。

  在一些情况下,用于数据收集和处理以供无人飞行器操作的现有方法可能不是最优的。例如,用于估计无人飞行器的状态信息的一些技术可能不够准确,这对于无人飞行器功能可能不利。

  发明内容

  本公开内容提供了涉及对诸如无人飞行器(UAV)等可移动物体的控制和操作的系统、方法和装置。在一些实施方式中,本文描述的系统、方法和装置利用传感器融合来支持以提高的准确性和灵活性来确定与无人飞行器操作有关的信息。例如,可以使用一个或多个惯性传感器以及一个或多个图像传感器的融合来改进初始化、错误恢复、参数标定和/或状态估计。从这些过程获得的信息可以用于帮助无人飞行器操作,例如,自主或半自主导航、避障、测绘等。

  在一方面,提供了一种用于使用多个传感器来确定可移动物体的初始化信息的方法。所述方法可以包括:借助于一个或多个处理器来检测所述可移动物体已经开始操作;在所述一个或多个处理器处从由所述可移动物体携带的至少一个惯性传感器接收惯性数据;在所述一个或多个处理器处从由所述可移动物体携带的至少两个图像传感器接收图像数据;以及借助于所述一个或多个处理器,基于所述惯性数据和所述图像数据来确定所述可移动物体的所述初始化信息,其中所述初始化信息包含当所述可移动物体开始操作时以下各项中的一项或多项:所述可移动物体的位置、所述可移动物体的速度或所述可移动物体相对于重力方向的朝向。

  在一些实施方式中,所述可移动物体是无人飞行器(UAV)。检测所述无人飞行器已经开始操作可以包括检测所述无人飞行器已经开始飞行。所述无人飞行器可以从自由落体状态开始飞行以及/或者通过由用户投掷而开始飞行。检测所述无人飞行器已经开始操作可以包括检测所述无人飞行器已经从表面起飞,并且所述表面可以是倾斜的表面或无倾角的表面。

  在一些实施方式中,所述惯性数据包括指示出所述可移动物体的三维加速度和三维角速度的一个或多个测量值。所述惯性数据可以包括在从所述可移动物体开始操作时起算的时间间隔内,由所述至少一个惯性传感器获得的一个或多个测量值。

  在一些实施方式中,所述图像数据包括所述可移动物体周围环境的一个或多个图像。所述图像数据可以包括在从所述可移动物体开始操作时起算的时间间隔内,由所述至少两个图像传感器中的每一个获得的一个或多个图像。在一些实施方式中,所述确定步骤包括使用特征点检测算法来处理所述一个或多个图像。所述确定步骤可以包括使用光流算法来处理所述一个或多个图像。所述确定步骤可以包括使用特征匹配算法来处理所述一个或多个图像。所述确定步骤可以包括将由所述至少两个图像传感器中的第一图像传感器获得的一个或多个图像与由所述至少两个图像传感器中的第二图像传感器获得的一个或多个图像进行比较。

  在一些实施方式中,所述至少两个图像传感器被配置成用于同步地获得图像。或者,所述至少两个图像传感器可被配置成用于异步地获得图像。所述至少两个图像传感器包括多个图像传感器子集,所述多个图像传感器子集经由切换机构可切换地耦合至所述一个或多个处理器,所述切换机构被配置成用于一次将单个图像传感器子集耦合至所述一个或多个处理器。所述接收所述图像数据步骤可以包括:经由所述切换机构将第一图像传感器子集耦合至所述一个或多个处理器;从所述第一图像传感器子集接收图像数据;经由所述切换机构将第二图像传感器子集耦合至所述一个或多个处理器;以及从所述第二图像传感器子集接收图像数据。

  在一些实施方式中,所述初始化信息还包括当所述可移动物体开始操作时所述可移动物体的位置和速度。所述确定步骤可以包括:使用所述惯性数据来生成所述初始化信息的第一估计;使用所述图像数据来生成所述初始化信息的第二估计;以及组合所述第一估计和第二估计以获得所述可移动物体的所述初始化信息。可以使用线性优化算法来确定所述初始化信息。可以仅基于所述惯性数据和所述图像数据来确定所述初始化信息。

  在一些实施方式中,所述方法还包括使用所述可移动物体相对于重力方向的朝向来修正从所述至少一个惯性传感器获得的后续惯性数据。

  在一些实施方式中,所述检测所述无人飞行器已经开始操作包括检测所述无人飞行器已经上电。

  在一些实施方式中,使用非线性优化算法或迭代非线性优化算法来确定所述初始化信息。

  在另一方面,提供了一种用于使用多个传感器来确定可移动物体的初始化信息的系统。所述系统可以包括:至少一个惯性传感器,其由所述可移动物体携带;至少两个图像传感器,其由所述可移动物体携带;以及一个或多个处理器,其单独地或共同地被配置成用于:检测所述可移动物体已经开始操作;从所述至少一个惯性传感器接收惯性数据;从所述至少两个图像传感器接收图像数据;以及基于所述惯性数据和所述图像数据,确定所述可移动物体的所述初始化信息,其中所述初始化信息包含当所述可移动物体开始操作时以下各项中的一项或多项:所述可移动物体的位置、所述可移动物体的速度或所述可移动物体相对于重力方向的朝向。

  在另一方面,提供了一个或多个非暂时性计算机可读存储介质。所述一个或多个非暂时性计算机可读存储介质可以具有储存于其上的可执行指令,所述可执行指令在由用于确定可移动物体的初始化信息的计算机系统的一个或多个处理器执行时,使所述计算机系统至少:检测所述可移动物体已经开始操作;从由所述可移动物体携带的至少一个惯性传感器接收惯性数据;从由所述可移动物体携带的至少两个图像传感器接收图像数据;以及基于所述惯性数据和所述图像数据,确定所述可移动物体的所述初始化信息,其中所述初始化信息包含当所述可移动物体开始操作时以下各项中的一项或多项:所述可移动物体的位置、所述可移动物体的速度或所述可移动物体相对于重力方向的朝向。

  在另一方面,提供了一种用于使用多个传感器来执行针对可移动物体的错误恢复的方法。所述方法可以包括:借助于一个或多个处理器来检测在所述可移动物体的操作期间已经发生错误;在所述一个或多个处理器处从由所述可移动物体携带的至少一个惯性传感器接收惯性数据;在所述一个或多个处理器处从由所述可移动物体携带的至少两个图像传感器接收图像数据;以及借助于所述一个或多个处理器,基于所述惯性数据和所述图像数据来确定所述可移动物体的重新初始化信息,其中所述重新初始化信息包含当所述错误发生时以下各项中的一项或多项:所述可移动物体的位置、所述可移动物体的速度或所述可移动物体相对于重力方向的朝向。

  在一些实施方式中,所述可移动物体是无人飞行器(UAV)。

  在一些实施方式中,所述错误包括所述至少一个惯性传感器或所述至少两个惯性传感器之中的一个或多个中的故障。所述错误可以包括由所述可移动物体使用的状态估计模块中的故障。所述状态估计模块可以使用迭代状态估计算法,而所述故障可以包括所述迭代状态估计算法未能收敛于一个解。所述方法还可以包括使用所述重新初始化信息来重新初始化所述迭代状态估计算法。

  在一些实施方式中,所述惯性数据包括指示出所述可移动物体的三维加速度和三维角速度的一个或多个测量值。所述惯性数据可以包括在从所述错误发生时起算的时间间隔内,由所述至少一个惯性传感器获得的一个或多个测量值。

  在一些实施方式中,所述图像数据包括所述可移动物体周围环境的一个或多个图像。所述图像数据可以包括在从所述错误发生时起算的时间间隔内,由所述至少两个图像传感器中的每一个获得的一个或多个图像。在一些实施方式中,所述确定步骤包括使用特征点检测算法来处理所述一个或多个图像。所述确定步骤可以包括使用光流算法来处理所述一个或多个图像。所述确定步骤可以包括使用特征匹配算法来处理所述一个或多个图像。所述确定步骤可以包括将由所述至少两个图像传感器中的第一图像传感器获得的一个或多个图像与由所述至少两个图像传感器中的第二图像传感器获得的一个或多个图像进行比较。

  在一些实施方式中,所述至少两个图像传感器被配置成用于同步地获得图像。或者,所述至少两个图像传感器可被配置成用于异步地获得图像。所述至少两个图像传感器包括多个图像传感器子集,所述多个图像传感器子集经由切换机构可切换地耦合至所述一个或多个处理器,所述切换机构被配置成用于一次将单个图像传感器子集耦合至所述一个或多个处理器。所述接收所述图像数据步骤可以包括:经由所述切换机构将第一图像传感器子集耦合至所述一个或多个处理器;从所述第一图像传感器子集接收图像数据;经由所述切换机构将第二图像传感器子集耦合至所述一个或多个处理器;以及从所述第二图像传感器子集接收图像数据。

  在一些实施方式中,所述重新初始化信息还包括当所述错误发生时所述可移动物体的位置和速度。所述确定步骤可以包括:使用所述惯性数据来生成所述重新初始化信息的第一估计;使用所述图像数据来生成所述重新初始化信息的第二估计;以及组合所述第一估计和第二估计以获得所述可移动物体的所述重新初始化信息。可以使用线性优化算法来确定所述重新初始化信息。可以仅基于所述惯性数据和所述图像数据来确定所述重新初始化信息。

  在一些实施方式中,所述方法还包括使用所述可移动物体相对于重力方向的朝向来修正从所述至少一个惯性传感器获得的后续惯性数据。

  在一些实施方式中,使用非线性优化算法、迭代优化算法、迭代线性优化算法或迭代非线性优化算法来确定所述重新初始化信息。

  在另一方面,提供了一种用于使用多个传感器来执行针对可移动物体的错误恢复的系统。所述系统可以包括:至少一个惯性传感器,其由所述可移动物体携带;至少两个图像传感器,其由所述可移动物体携带;以及一个或多个处理器,其单独地或共同地被配置成用于:检测在所述可移动物体的操作期间已经发生错误;从所述至少一个惯性传感器接收惯性数据;从所述至少两个图像传感器接收图像数据;以及基于所述惯性数据和所述图像数据,确定所述可移动物体的重新初始化信息,其中所述重新初始化信息包含当错误发生时以下各项中的一项或多项:所述可移动物体的位置、所述可移动物体的速度或所述可移动物体相对于重力方向的朝向。

  在另一方面,提供了一个或多个非暂时性计算机可读存储介质。所述一个或多个非暂时性计算机可读存储介质可以具有储存于其上的可执行指令,所述可执行指令在由用于执行针对可移动物体的错误恢复的计算机系统的一个或多个处理器执行时,使所述计算机系统至少:检测在所述可移动物体的操作期间已经发生错误;从由所述可移动物体携带的至少一个惯性传感器接收惯性数据;从由所述可移动物体携带的至少两个图像传感器接收图像数据;以及基于所述惯性数据和所述图像数据,确定所述可移动物体的重新初始化信息,其中所述重新初始化信息包含当所述错误发生时以下各项中的一项或多项:所述可移动物体的位置、所述可移动物体的速度或所述可移动物体相对于重力方向的朝向。

  在另一方面,提供了一种用于在可移动物体的操作期间使用多个传感器来标定所述可移动物体的一个或多个外部参数的方法。所述方法可以包括:在一个或多个处理器处接收所述一个或多个外部参数的初始值,其中所述一个或多个外部参数包含由所述可移动物体携带的至少两个图像传感器之间的空间关系;在所述可移动物体的操作期间,在所述一个或多个处理器处从由所述可移动物体携带的至少一个惯性传感器接收惯性数据;在所述可移动物体的操作期间,在所述一个或多个处理器处从由所述可移动物体携带的所述至少两个图像传感器接收图像数据;以及在所述可移动物体的操作期间,借助于所述一个或多个处理器使用迭代优化算法基于所述初始值、所述惯性数据和所述图像数据来确定所述一个或多个外部参数的估计值。

  在一些实施方式中,所述可移动物体是无人飞行器(UAV)。所述无人飞行器的操作可以包括所述无人飞行器处于飞行中和/或所述无人飞行器上电。

  在一些实施方式中,所述空间关系包括所述至少两个图像传感器的相对位置和相对朝向。可以关于所述至少一个惯性传感器而确定所述至少两个图像传感器的相对位置和相对朝向。

  在一些实施方式中,在所述可移动物体的操作之前确定所述一个或多个外部参数的初始值。可以在所述可移动物体的操作之前使用所述迭代优化算法来确定所述初始值。可以在所述可移动物体的操作之前由用户测量所述初始值。可以从与所述可移动物体相关联的存储器装置接收所述一个或多个外部参数的所述初始值。在一些实施方式中,所述至少两个图像传感器在一个或多个固定位置处耦合至所述可移动物体,并且基于所述一个或多个固定位置而确定所述一个或多个外部参数的所述初始值。所述一个或多个外部参数的所述初始值与所述一个或多个外部参数的实际值可以相差不超过约2cm。所述一个或多个外部参数的所述初始值与所述一个或多个外部参数的实际值可以相差不超过约2度。

  在一些实施方式中,所述惯性数据包括指示出所述可移动物体的三维加速度和三维角速度的一个或多个测量值。所述惯性数据可以包括由所述至少一个惯性传感器在至少两个不同时刻获得的一个或多个测量值。

  在一些实施方式中,所述图像数据包括所述可移动物体周围环境的一个或多个图像。所述图像数据可以包括由所述至少两个图像传感器中的每一个在至少两个不同时刻获得的一个或多个图像。在一些实施方式中,所述确定步骤包括使用特征点检测算法来处理所述一个或多个图像。所述确定步骤可以包括使用光流算法来处理所述一个或多个图像。所述确定步骤可以包括使用特征匹配算法来处理所述一个或多个图像。所述确定步骤可以包括将由所述至少两个图像传感器中的第一图像传感器获得的一个或多个图像与由所述至少两个图像传感器中的第二图像传感器获得的一个或多个图像进行比较。

  在一些实施方式中,所述至少两个图像传感器被配置成用于同步地获得图像。或者,所述至少两个图像传感器可被配置成用于异步地获得图像。所述至少两个图像传感器包括多个图像传感器子集,所述多个图像传感器子集经由切换机构可切换地耦合至所述一个或多个处理器,所述切换机构被配置成用于一次将单个图像传感器子集耦合至所述一个或多个处理器。所述接收所述图像数据步骤可以包括:经由所述切换机构将第一图像传感器子集耦合至所述一个或多个处理器;从所述第一图像传感器子集接收图像数据;经由所述切换机构将第二图像传感器子集耦合至所述一个或多个处理器;以及从所述第二图像传感器子集接收图像数据。

  在一些实施方式中,所述迭代优化算法是非线性优化算法。所述迭代优化算法可以包括基于所述初始值、所述惯性数据和所述图像数据而计算所述一个或多个外部参数的最大后验概率(MAP)估计。在一些实施方式中,所述惯性数据和所述图像数据是仅有的用于确定所述一个或多个外部参数的所述估计值的传感器数据。

  在一些实施方式中,所述方法还包括基于所述一个或多个外部参数的所述估计值而确定所述可移动物体的状态。所述状态可以包括所述可移动物体的位置、朝向或速度中的一个或多个。可以在所述可移动物体的操作期间相对于所述可移动物体在先前时刻的先前状态而确定所述可移动物体的状态。所述先前时刻可以是发生初始化或重新初始化的时刻。

  在一些实施方式中,利用非线性优化算法、线性优化算法、或迭代非线性优化算法确定所述一个或多个外部参数的估计值。

  在另一方面,提供了一种用于在可移动物体的操作期间使用多个传感器来标定所述可移动物体的一个或多个外部参数的系统。所述系统可以包括:至少一个惯性传感器,其由所述可移动物体携带;至少两个图像传感器,其由所述可移动物体携带;以及一个或多个处理器,其单独地或共同地被配置成用于:接收所述一个或多个外部参数的初始值,其中所述一个或多个外部参数包含所述至少两个图像传感器之间的空间关系;在所述可移动物体的操作期间,从所述至少一个惯性传感器接收惯性数据;在所述可移动物体的操作期间,从所述至少两个图像传感器接收图像数据;以及在所述可移动物体的操作期间,使用迭代优化算法基于所述初始值、所述惯性数据和所述图像数据来确定所述一个或多个外部参数的估计值。

  在另一方面,提供了一个或多个非暂时性计算机可读存储介质。所述一个或多个非暂时性计算机可读存储介质可以具有储存于其上的可执行指令,所述可执行指令在由用于标定可移动物体的一个或多个外部参数的计算机系统的一个或多个处理器执行时,使所述计算机系统至少:接收所述一个或多个外部参数的初始值,其中所述一个或多个外部参数包含由所述可移动物体携带的至少两个图像传感器之间的空间关系;在所述可移动物体的操作期间,从由所述可移动物体携带的至少一个惯性传感器接收惯性数据;在所述可移动物体的操作期间,从所述至少两个图像传感器接收图像数据;以及在所述可移动物体的操作期间,使用迭代优化算法基于所述初始值、所述惯性数据和所述图像数据来确定所述一个或多个外部参数的估计值。

  在另一方面,提供了一种用于标定具有处于初始配置中的多个传感器的可移动物体的一个或多个外部参数的方法。所述方法可以包括:借助于一个或多个处理器来检测所述多个传感器的所述初始配置已被修改,其中所述多个传感器包括至少一个惯性传感器和至少两个图像传感器;在所述可移动物体的操作期间,在所述一个或多个处理器处从所述至少一个惯性传感器接收惯性数据;在所述可移动物体的操作期间,在所述一个或多个处理器处从所述至少两个图像传感器接收图像数据;以及响应于检测到所述初始配置已被修改,借助于所述一个或多个处理器基于所述惯性数据和所述图像数据来估计所述一个或多个外部参数,其中在所述可移动物体的操作期间使用迭代优化算法来估计所述一个或多个外部参数,并且其中所述一个或多个外部参数包含处于经修改的配置中的所述多个传感器之间的空间关系。

  在一些实施方式中,所述可移动物体是无人飞行器(UAV)。所述无人飞行器的操作可以包括所述无人飞行器处于飞行中和/或所述无人飞行器上电。

  在一些实施方式中,所述空间关系包括所述至少两个图像传感器的相对位置和相对朝向。可以关于所述至少一个惯性传感器而确定所述至少两个图像传感器的相对位置和相对朝向。

  在一些实施方式中,在所述可移动物体的操作之前确定所述一个或多个外部参数的初始值。可以在所述可移动物体的操作之前使用所述迭代优化算法来确定所述初始值。可以在所述可移动物体的操作之前由用户测量所述初始值。可以从与所述可移动物体相关联的存储器装置接收所述一个或多个外部参数的所述初始值。在一些实施方式中,所述至少两个图像传感器在一个或多个固定位置处耦合至所述可移动物体,并且基于所述一个或多个固定位置而确定所述一个或多个外部参数的所述初始值。

  在一些实施方式中,通过从所述多个传感器中移除至少一个传感器来修改所述初始配置。可以通过向所述多个传感器添加至少一个传感器来修改所述初始配置。可以通过改变所述多个传感器中的至少一个传感器的位置或朝向中的至少一个来修改所述初始配置。可以在所述可移动物体的操作之前修改所述初始配置。

  在一些实施方式中,所述惯性数据包括指示出所述可移动物体的三维加速度和三维角速度的一个或多个测量值。所述惯性数据可以包括由所述至少一个惯性传感器在至少两个不同时刻获得的一个或多个测量值。

  在一些实施方式中,所述图像数据包括所述可移动物体周围环境的一个或多个图像。所述图像数据可以包括由所述至少两个图像传感器中的每一个在至少两个不同时刻获得的一个或多个图像。在一些实施方式中,所述确定步骤包括使用特征点检测算法来处理所述一个或多个图像。所述确定步骤可以包括使用光流算法来处理所述一个或多个图像。所述确定步骤可以包括使用特征匹配算法来处理所述一个或多个图像。所述确定步骤可以包括将由所述至少两个图像传感器中的第一图像传感器获得的一个或多个图像与由所述至少两个图像传感器中的第二图像传感器获得的一个或多个图像进行比较。

  在一些实施方式中,所述至少两个图像传感器被配置成用于同步地获得图像。或者,所述至少两个图像传感器可被配置成用于异步地获得图像。所述至少两个图像传感器包括多个图像传感器子集,所述多个图像传感器子集经由切换机构可切换地耦合至所述一个或多个处理器,所述切换机构被配置成用于一次将单个图像传感器子集耦合至所述一个或多个处理器。所述接收所述图像数据步骤可以包括:经由所述切换机构将第一图像传感器子集耦合至所述一个或多个处理器;从所述第一图像传感器子集接收图像数据;经由所述切换机构将第二图像传感器子集耦合至所述一个或多个处理器;以及从所述第二图像传感器子集接收图像数据。

  在一些实施方式中,所述迭代优化算法是非线性优化算法。所述迭代优化算法可以包括基于所述初始值、所述惯性数据和所述图像数据而计算所述一个或多个外部参数的最大后验概率(MAP)估计。在一些实施方式中,所述惯性数据和所述图像数据是仅有的用于估计一个或多个外部参数的传感器数据。

  在一些实施方式中,所述方法还包括基于所估计的一个或多个外部参数而确定所述可移动物体的状态。所述状态可以包括所述可移动物体的位置、朝向或速度中的一个或多个。

  在一些实施方式中,利用非线性优化算法、线性优化算法、或迭代非线性优化算法估计所述一个或多个外部参数。

  在一些实施方式中,基于一个或多个外部参数的初始值来估计所述一个或多个外部参数。

  在另一方面,提供了一种用于标定具有处于初始配置中的多个传感器的可移动物体的一个或多个外部参数的系统。所述系统可以包括:多个传感器,其由所述可移动物体携带并且包括至少一个惯性传感器和至少两个图像传感器;以及一个或多个处理器,其单独地或共同地被配置成用于:检测所述多个传感器的所述初始配置已被修改;在所述可移动物体的操作期间,从所述至少一个惯性传感器接收惯性数据;在所述可移动物体的操作期间,从所述至少两个图像传感器接收图像数据;以及响应于检测到所述初始配置已被修改,基于所述惯性数据和所述图像数据来估计所述一个或多个外部参数,其中在所述可移动物体的操作期间使用迭代优化算法来估计所述一个或多个外部参数,并且其中所述一个或多个外部参数包含处于经修改的配置中的所述多个传感器之间的空间关系。

  在另一方面,提供了一个或多个非暂时性计算机可读存储介质。所述一个或多个非暂时性计算机可读存储介质可以具有储存于其上的可执行指令,所述可执行指令在由用于标定具有处于初始配置中的多个传感器的可移动物体的一个或多个外部参数的计算机系统的一个或多个处理器执行时,使所述计算机系统至少:检测所述多个传感器的所述初始配置已被修改,其中所述多个传感器包括至少一个惯性传感器和至少两个图像传感器;在所述可移动物体的操作期间,从所述至少一个惯性传感器接收惯性数据;在所述可移动物体的操作期间,从所述至少两个图像传感器接收图像数据;以及响应于检测到所述初始配置已被修改,基于所述惯性数据和所述图像数据来估计所述一个或多个外部参数,其中在所述可移动物体的操作期间使用迭代优化算法来估计所述一个或多个外部参数,并且其中所述一个或多个外部参数包含处于经修改的配置中的所述多个传感器之间的空间关系。

  在另一方面,提供了一种用于在可移动物体的操作期间使用多个传感器来估计所述可移动物体的状态信息的方法。所述方法可以包括:在所述一个或多个处理器处接收所述可移动物体的先前状态信息;在所述一个或多个处理器处从由所述可移动物体携带的至少一个惯性传感器接收惯性数据,所述惯性数据包括在所述可移动物体的操作期间由所述至少一个惯性传感器在至少两个不同时刻获得的惯性测量数据;在所述一个或多个处理器处从由所述可移动物体携带的至少两个图像传感器接收图像数据,所述图像数据包括在所述可移动物体的操作期间由所述至少两个图像传感器中的每个图像传感器在至少两个不同时刻获得的图像;以及在所述可移动物体的操作期间,借助于所述一个或多个处理器使用迭代优化算法基于所述先前状态信息、所述惯性数据和所述图像数据来确定所述可移动物体的更新的状态信息。

  在一些实施方式中,所述可移动物体是无人飞行器(UAV)。所述无人飞行器的操作可以包括所述无人飞行器处于飞行中和/或所述无人飞行器上电。

  在一些实施方式中,所述先前状态信息包含所述可移动物体在所述可移动物体的操作期间的先前时刻的位置、朝向和速度。可以使用所述迭代优化算法来获得所述先前状态信息。所述更新的状态信息可以包含所述可移动物体的位置、速度和朝向。

  在一些实施方式中,所述惯性数据包括指示出所述可移动物体的三维加速度和三维角速度的一个或多个测量值。

  在一些实施方式中,所述图像数据包括所述可移动物体周围环境的一个或多个图像。在一些实施方式中,所述确定步骤包括使用特征点检测算法来处理所述一个或多个图像。所述确定步骤可以包括使用光流算法来处理所述一个或多个图像。所述确定步骤可以包括使用特征匹配算法来处理所述一个或多个图像。所述确定步骤可以包括将由所述至少两个图像传感器中的第一图像传感器获得的一个或多个图像与由所述至少两个图像传感器中的第二图像传感器获得的一个或多个图像进行比较。

  在一些实施方式中,所述至少两个图像传感器被配置成用于同步地获得图像。或者,所述至少两个图像传感器可被配置成用于异步地获得图像。所述至少两个图像传感器包括多个图像传感器子集,所述多个图像传感器子集经由切换机构可切换地耦合至所述一个或多个处理器,所述切换机构被配置成用于一次将单个图像传感器子集耦合至所述一个或多个处理器。所述接收所述图像数据步骤可以包括:经由所述切换机构将第一图像传感器子集耦合至所述一个或多个处理器;从所述第一图像传感器子集接收图像数据;经由所述切换机构将第二图像传感器子集耦合至所述一个或多个处理器;以及从所述第二图像传感器子集接收图像数据。

  在一些实施方式中,所述迭代优化算法是非线性优化算法。所述迭代优化算法可以包括基于所述初始值、所述惯性数据和所述图像数据而计算所述更新的状态信息的最大后验概率(MAP)估计。在一些实施方式中,所述惯性数据和所述图像数据是仅有的用于确定所述更新的状态信息的传感器数据。

  在一些实施方式中,所述方法还包括向用于控制所述可移动物体的移动的控制模块输出所述更新的状态信息。

  在另一方面,提供了一种用于在可移动物体的操作期间使用多个传感器来估计所述可移动物体的状态信息的系统。所述系统可以包括:至少一个惯性传感器,其由所述可移动物体携带;至少两个图像传感器,其由所述可移动物体携带;以及一个或多个处理器,其单独地或共同地被配置成用于:接收所述可移动物体的先前状态信息;从所述至少一个惯性传感器接收惯性数据,所述惯性数据包括在所述可移动物体的操作期间由所述至少一个惯性传感器在至少两个不同时刻获得的惯性测量数据;从所述至少两个图像传感器接收图像数据,所述图像数据包括在所述可移动物体的操作期间由所述至少两个图像传感器中的每个图像传感器在至少两个不同时刻获得的图像;以及在所述可移动物体的操作期间,使用迭代优化算法基于所述先前状态信息、所述惯性数据和所述图像数据来确定所述可移动物体的更新的状态信息。

  在另一方面,提供了一个或多个非暂时性计算机可读存储介质。所述一个或多个非暂时性计算机可读存储介质可以具有储存于其上的可执行指令,所述可执行指令在由用于估计可移动物体的状态信息的计算机系统的一个或多个处理器执行时,使所述计算机系统至少:接收所述可移动物体的先前状态信息;从由所述可移动物体携带的至少一个惯性传感器接收惯性数据,所述惯性数据包括在所述可移动物体的操作期间由所述至少一个惯性传感器在至少两个不同时刻获得的惯性测量数据;从由所述可移动物体携带的至少两个图像传感器接收图像数据,所述图像数据包括在所述可移动物体的操作期间由所述至少两个图像传感器中的每个图像传感器在至少两个不同时刻获得的图像;以及在所述可移动物体的操作期间,使用迭代优化算法基于所述先前状态信息、所述惯性数据和所述图像数据来确定所述可移动物体的更新的状态信息。

  应当明白,本发明的不同方面可被单独地、共同地或彼此结合地理解。本文所描述的本发明的各个方面可以适用于下文阐述的任何特定应用或者适用于任何其他类型的可移动物体。本文对飞行器的任何描述均可适用于和用于任何可移动物体,诸如任何载具。此外,本文在空中运动(例如,飞行)的情景下公开的系统、装置和方法还可以适用于其他类型运动的情景下,诸如在地面上或在水上的移动、水下运动或者在太空中的运动。另外,本文对旋翼或旋翼组件的任何描述均可适用于和用于任何用于通过旋转而生成推进力的推进系统、装置或机构(例如,螺旋桨、轮子、轮轴)。

  通过考察说明书、权利要求书和附图,本发明的其他目标和特征将会变得显而易见。

  援引并入

  本说明书中所提及的所有出版物、专利和专利申请均通过引用而并入于此,其程度犹如具体地和个别地指出要通过引用而并入每一个别出版物、专利或专利申请那样。

  附图说明

  在所附权利要求书中具体阐述了本发明的新颖特征。通过参考对在其中利用到本发明原理的说明性实施方式加以阐述的以下详细描述和附图,将会对本发明的特征和优点获得更好的理解;在附图中:

  图1图示了根据实施方式的无人飞行器的状态估计;

  图2图示了根据实施方式的无人飞行器的外部参数标定;

  图3图示了根据实施方式的处于水平朝向的无人飞行器的初始化;

  图4图示了根据实施方式的处于倾斜朝向的无人飞行器的初始化:

  图5图示了根据实施方式的用于操作无人飞行器的方法;

  图6图示了根据实施方式的用于处理惯性数据和图像数据的系统;

  图7图示了根据实施方式的用于在由单一的图像传感器在不同时刻捕捉到的图像之间执行特征点匹配的算法;

  图8图示了根据实施方式的用于在由不同的图像传感器捕捉到的图像之间执行特征点匹配的算法;

  图9图示了根据实施方式的用于使用多个传感器来确定无人飞行器的初始化信息的方法;

  图10图示了根据实施方式的用于使用多个传感器对无人飞行器进行错误恢复的方法;

  图11图示了根据实施方式的用于标定无人飞行器的一个或多个外部参数的方法;

  图12图示了根据实施方式的用于标定具有多个处于初始配置中的传感器的无人飞行器的一个或多个外部参数的方法;

  图13图示了根据实施方式的用于在无人飞行器的操作期间使用多个传感器来估计无人飞行器的状态信息的方法;

  图14图示了根据实施方式的用于选择先前状态信息的滑动窗口滤波器;

  图15图示了根据实施方式的用于执行针对无人飞行器的状态估计和/或参数标定的方法;

  图16图示了根据实施方式的用于使用多个传感器来控制无人飞行器的系统;

  图17图示了根据实施方式的无人飞行器;

  图18图示了根据实施方式的包括载体和有效载荷的可移动物体;

  图19图示了根据实施方式的用于控制可移动物体的系统;

  图20图示了根据实施方式的同步图像数据收集方案;

  图21图示了根据实施方式的异步图像数据收集方案;以及

  图22图示了根据实施方式的具有可切换耦合的图像传感器的系统。

  具体实施方式

  本公开内容的系统、方法和装置支持确定与诸如无人飞行器(UAV)等可移动物体的操作有关的信息。在一些实施方式中,本公开内容利用传感器融合技术来组合来自不同传感器类型的传感器数据,以便确定对无人飞行器操作有用的各种类型的信息,诸如用于状态估计、初始化、错误恢复和/或参数标定的信息。例如,无人飞行器可以包括至少一个惯性传感器和至少两个图像传感器。可以使用诸如迭代优化算法等各种方法来组合来自不同类型的传感器的数据。在一些实施方式中,迭代优化算法涉及迭代地对非线性函数(例如,非线性目标函数)进行线性化和求解。本文介绍的传感器融合技术可以用于改进无人飞行器状态估计、初始化、错误恢复和/或参数标定的准确性和稳健性,因此扩展无人飞行器用于“智能型”自主或半自主操作的能力。

  在一些实施方式中,本公开内容提供了使用多个成像传感器(例如,多个相机)与惯性传感器相结合,与执行初始化、错误恢复、参数标定和/或状态估计有关的系统、方法和装置。相比于利用单个图像传感器的方法,多个成像传感器的使用可以提供各种优点,诸如改进的准确性(例如,因为更多的图像数据可用于估计)以及增强的稳定性和稳健性(例如,如果图像传感器中的一个出现故障,则多个图像传感器可以提供冗余)。用于组合来自多个图像传感器的数据的传感器融合算法可以不同于用于单个图像传感器方法的算法。例如,用于多个图像传感器的算法可以考虑不同图像传感器之间的空间关系(例如,相对位置和/或朝向),而这样的空间关系将无法适用于单个图像传感器方法。

  虽然在无人飞行器的情景下介绍了本文的一些实施方式,但应当明白,本公开内容可以适用于其他类型的可移动物体,诸如地面载具。下文进一步详述了适合与本文提供的系统、方法和装置一起使用的可移动物体的示例。

  本文所述的无人飞行器可以完全自主地(例如,由诸如机载控制器等合适的计算系统)、半自主地或手动地(例如,由人类用户)操作。无人飞行器可以从合适的实体(例如,人类用户或自主控制系统)接收命令,并通过执行一个或多个动作来响应这样的命令。例如,可以控制无人飞行器从地面起飞、在空中移动(例如,以多达三个平移自由度和多达三个旋转自由度移动)、移动至目标位置或者一系列目标位置、在空中悬停、降落在地面上等。又例如,可以控制无人飞行器以指定的速度和/或加速度(例如,以多达三个平移自由度和多达三个旋转自由度)或沿着指定的移动路径而移动。另外,所述命令可以用于控制一个或多个无人飞行器部件,诸如本文所述的部件(例如,传感器、致动器、推进单元、有效载荷等)。例如,一些命令可以用于控制诸如相机等无人飞行器有效载荷的位置、朝向和/或操作。

  在一些实施方式中,无人飞行器可被配置成用于执行可涉及更高自主程度的更复杂的功能,或者可以在无需任何用户输入的情况下完全自主地执行。这样的功能的示例包括但不限于保持指定的位置(例如,悬停于适当位置)、导航(例如,规划和/或沿着路线以移动至目标目的地)、避障和环境测绘。这些功能的实现可以基于与无人飞行器和/或周围环境有关的信息。

  例如,在一些实施方式中,确定状态信息是有益的,所述状态信息指示出无人飞行器过去的状态、当前的状态和/或预测的未来状态。状态信息可以包含关于无人飞行器的空间布局(例如,定位或位置信息,诸如经度、纬度和/或高度;朝向或姿态信息,诸如横滚、俯仰和/或偏航)的信息。状态信息还可以包括关于无人飞行器的运动(例如,平移速度、平移加速度、角速度、角加速度等)的信息。状态信息可以包含与无人飞行器相对于多达六个自由度(例如,三个位置自由度和/或平移自由度、三个朝向和/或旋转自由度)的空间布局和/或运动有关的信息。状态信息可以相对于全局坐标系或相对于局部坐标系(例如,相对于无人飞行器或另一实体)而提供。在一些实施方式中,相对于无人飞行器的先前状态而提供所述状态信息,所述先前状态诸如为无人飞行器在其开始操作(例如,上电、起飞、开始飞行)时的空间布局。对状态信息的确定在本文中可以称作“状态估计”。可选地,可以在无人飞行器的整个操作过程中(例如,连续地或以预定时间间隔)执行状态估计,以便提供更新的状态信息。

  图1图示了根据实施方式的无人飞行器100的状态估计。无人飞行器100在图1中被描绘为在第一时刻k时处于第一状态102,而在随后的第二时刻k+1时处于第二状态104。可以相对于无人飞行器100定义局部坐标系或参考系106,其指示出所述无人飞行器100的位置和朝向。无人飞行器100在处于第一状态102时可以具有第一位置和朝向,而在处于第二状态104时可以具有第二位置和朝向。状态的改变可以表示为从第一位置到第二位置的平移T以及/或者从第一朝向到第二朝向的旋转θ。如果已知无人飞行器100在先前状态102下的位置和朝向,则可以使用T和θ来确定无人飞行器100在后续状态104下的位置和朝向。而且,如果已知时间间隔[k,k+1]的长度,则还可以分别基于T和θ来估计无人飞行器100在第二状态104下的平移速度和角速度。因此,在一些实施方式中,状态估计涉及确定状态T、θ的改变,继而使用状态改变信息以及与第一状态102有关的信息以便确定第二状态104。

  在一些实施方式中,基于由一个或多个传感器获得的传感器数据来执行状态估计。适合与本文公开的实施方式一起使用的示例性传感器包括位置传感器(例如,全球定位系统(GPS)传感器、支持位置三角测量法的移动装置发射器)、图像传感器或视觉传感器(例如,能够检测可见光、红外光或紫外光的成像装置,诸如相机)、距离传感器或范围传感器(例如,超声传感器、激光雷达、飞行时间相机或深度相机)、惯性传感器(例如,加速度计、陀螺仪、惯性测量单元(IMU))、高度传感器、姿态传感器(例如,罗盘)、压力传感器(例如,气压计)、音频传感器(例如,麦克风)或场传感器(例如,磁力计、电磁传感器)。可以使用任何合适数目和组合的传感器,诸如一个、两个、三个、四个、五个或更多个传感器。可选地,可以从不同类型(例如,两种、三种、四种、五种或更多种类型)的传感器接收数据。不同类型的传感器可以测量不同类型的信号或信息(例如,位置、朝向、速度、加速度、距离、压力等)以及/或者利用不同类型的测量技术来获得数据。例如,传感器可以包括主动式传感器(例如,生成和测量来自其自身能量源的能量的传感器)和被动式传感器(例如,检测可用能量的传感器)的任何合适的组合。又例如,一些传感器可以生成依据全局坐标系提供的绝对测量数据(例如,由GPS传感器提供的位置数据、由罗盘或磁力计提供的姿态数据),而其他传感器可以生成依据局部坐标系提供的相对测量数据(例如,由陀螺仪提供的相对角速度;由加速计提供的相对平移加速度;由图像传感器提供的特定周围环境的投影视图;由超声传感器、激光雷达或飞行时间相机提供的相对距离信息)。在一些情况下,局部坐标系可以是相对于无人飞行器定义的机身坐标系。

  本文所述的传感器可由无人飞行器携带。传感器可以位于无人飞行器的任何合适的部分上,诸如在无人飞行器机身的上方、下方、一侧或多侧处或者机身内。在一些实施方式中,一个或多个传感器可以封闭在无人飞行器的外壳内、位于所述外壳之外、联接至所述外壳的表面(例如,内表面或外表面)或者可以形成所述外壳的一部分。一些传感器可以机械联接至无人飞行器,以使得无人飞行器的空间布局和/或运动对应于传感器的空间布局和/或运动。传感器可以经由刚性联接而联接至无人飞行器,以使得所述传感器相对于其所附接至的无人飞行器的部分不移动。或者,传感器与无人飞行器之间的联接可以允许所述传感器相对于所述无人飞行器的移动。联接可以是永久联接或非永久(例如,可拆卸)联接。合适的联接方法可以包括粘合剂、粘结、焊接和/或紧固件(例如,螺钉、钉、销等)。在一些实施方式中,传感器与无人飞行器之间的联接包括减震器或阻尼器,所述减震器或阻尼器减少从无人飞行器机身传递至传感器的震动或者其他不期望的机械移动。可选地,传感器可以与无人飞行器的一部分一体形成。另外,传感器可以与无人飞行器的一部分(例如,处理单元、控制系统、数据存储)电耦合,以便使得由所述传感器收集到的数据能够用于无人飞行器的各种功能(例如,导航、控制、推进、与用户或其他装置通信等),诸如本文所讨论的实施方式。

  在一些实施方式中,通过组合由多个传感器获得的传感器数据(也称为“传感器融合”)来生成感测结果。例如,传感器融合可以用于组合由不同传感器类型获得的感测数据,所述不同传感器类型包括诸如GPS传感器、惯性传感器、图像传感器、激光雷达、超声传感器等。又例如,传感器融合可以用于组合不同类型的感测数据,诸如绝对测量数据(例如,相对于全局坐标系提供的数据,诸如GPS数据)和相对测量数据(例如,相对于局部坐标系提供的数据,诸如视觉感测数据、激光雷达数据或超声感测数据)。传感器融合可以用于补偿与单独的传感器类型相关联的限制或不准确性,从而改进最终感测结果的准确性和可靠性。

  在使用多个传感器的实施方式中,每个传感器能够以各自的位置和朝向而位于无人飞行器上。关于多个传感器彼此的空间关系(例如,相对位置和朝向)的信息可以用作融合来自所述多个传感器的数据的基础。这些空间关系在本文中可以称作传感器的“外部参数”,而确定所述空间关系的过程在本文中可以称作“外部参数标定”。在一些实施方式中,传感器安装在无人飞行器上的预定位置处,以使得外部参数的初始值是已知的。然而,在其他实施方式中,初始值可能是未知的,或者可能已知的准确程度不够。而且,外部参数可能在无人飞行器操作期间改变,例如,由于震动、碰撞或者其他改变传感器的相对位置和/或朝向的事件而改变。因此,为了确保传感器融合结果是准确而稳健的,在无人飞行器的整个操作过程中(例如,连续地或以预定时间间隔)执行外部参数标定以便提供更新的参数信息是有用的。

  图2图示了根据实施方式的无人飞行器的外部参数标定。无人飞行器包括参考传感器200和多个附加传感器202。传感器200、202中的每一个都与指示出所述传感器的位置和朝向的相应的局部坐标系或参考系相关联。在一些实施方式中,相对于参考传感器200的坐标系而言,每个传感器202处于各自不同的位置和朝向上。每个传感器202的外部参数可以表示为从所述传感器202的坐标系到参考传感器200的坐标系的相应平移T和/或相应旋转θ。因此,外部参数标定可以涉及确定使所述传感器202中的每一个与参考传感器200相关的外部参数集合(T1,θ1),(T1,θ1),...,(Tm,θm)。备选地或附加地,外部参数标定可以涉及确定使所述传感器202中的每一个彼此相关而不是与单一的参考传感器200的坐标系相关的外部参数集合。本领域技术人员将会理解,确定传感器202与参考传感器200的空间关系相当于确定传感器202彼此的空间关系。

  本文描述的无人飞行器可以实现各种算法以便执行状态估计和外部参数标定。在一些实施方式中,使用相同的算法来同时估计状态信息和外部参数值。在其他实施方式中,使用不同的算法来单独评估状态信息和参数值。本文还描述了这样的算法的示例。在一些实施方式中,在首次执行状态估计和/或参数标定之前(例如,当无人飞行器已经上电、开始操作或开始飞行时)用某些信息来初始化这些算法可能是必要的或有益的。这种信息在本文中可以称作“初始化信息”,其可以包括无人飞行器状态和/或外部参数在初始时刻时(例如,当无人飞行器已经上电、开始操作或开始飞行时)的初始值,所述初始值用于初始化状态估计和/或参数标定算法。初始化信息的准确性可以影响后续状态估计和/或参数标定过程的准确性。确定无人飞行器的初始化信息的过程在本文中可以称作“初始化”。

  例如,在一些实施方式中,初始化信息包含指示出无人飞行器相对于重力方向的朝向的信息。这种信息对于调整来自受重力影响的传感器(诸如惯性传感器)的数据可能是特别有用的。在一些实施方式中,从由惯性传感器获得的加速度测量值中减去重力的贡献可能是有益的或必要的,以使得所得到的惯性传感器数据仅指示出无人飞行器的加速度。因此,初始化过程可以涉及确定无人飞行器相对于重力方向的初始朝向,以便支持修正惯性传感器数据。备选地或组合地,初始化信息可以包含无人飞行器在所述无人飞行器操作之前或操作期间的初始时刻时的位置、朝向、速度、加速度和/或外部参数。可以相对于无人飞行器的局部坐标系、全局坐标系和/或另一实体(例如,无人飞行器的遥控器)的坐标系而提供初始化信息。

  图3和图4图示了根据实施方式的无人飞行器的初始化。图3图示了处于水平朝向的无人飞行器300的初始化。“水平朝向”可以意指无人飞行器300具有与重力矢量g的方向实质上正交的水平轴线302(例如,穿过所述无人飞行器的相对横向侧面的轴线)。无人飞行器300可以例如在从水平面起飞时处于水平朝向。图4图示了处于倾斜朝向的无人飞行器400的初始化。“倾斜朝向”可以意指无人飞行器400具有与重力矢量g的方向非正交的水平轴线402(例如,穿过无人飞行器的相对横向侧面的轴线)。无人飞行器400可以例如在从倾斜面起飞时或在从非静止状态(例如,从半空中或由用户投掷到空中)发射时处于倾斜朝向中。在一些实施方式中,本文描述的初始化方法可以用于确定无人飞行器起初处于水平朝向还是倾斜朝向以及/或者无人飞行器相对于重力矢量的倾斜度。

  在一些实施方式中,如果状态估计和/或外部参数标定算法中发生错误,则可能有必要重新初始化和重新开始所述算法。错误可以涉及:一个或多个传感器提供了令算法出故障的传感器数据(例如,未能提供充足数据)或者算法未能产生结果(例如,未能在指定时间段内收敛于一个结果)。重新初始化可以实质上类似于本文描述的初始化过程,区别在于重新初始化信息是在错误发生的时刻或错误发生的时间前后获得的,而不是在无人飞行器操作的初始时刻时获得的。在一些实施方式中,在检测到错误之后,随后执行重新初始化,并且错误之后的重新初始化的过程在本文中可以称作“错误恢复”。备选地或组合地,可以根据需要在初始化之后的任何时刻执行重新初始化,例如,以预定的时间间隔来执行。

  图5图示了根据实施方式的用于操作无人飞行器的方法500。在步骤502中,无人飞行器开始操作(例如,上电、起飞等)。在步骤504中,执行初始化以便确定无人飞行器的初始化信息(例如,如上文讨论的相对于重力方向的朝向)。在步骤506中,针对当前时刻执行外部参数标定和状态估计,例如用以确定无人飞行器位置、朝向、速度、无人飞行器传感器的相对位置和朝向等。如上文所讨论,可以同时地或单独地执行参数标定和状态估计。在步骤508中,确定在无人飞行器操作期间是否发生错误,例如,在参数标定和/或状态估计过程中的传感器故障或失灵。如果确实发生错误,则方法500回到步骤504以重新初始化无人飞行器,用于错误恢复。如果没有发生错误,则在步骤510中向例如飞行控制模块、远程终端或遥控器等输出参数标定和状态估计的结果,以供后续存储和/或使用。例如,飞行控制模块可以使用所确定的参数值和/或状态信息来帮助无人飞行器导航、测绘、避障等。方法500随后回到步骤506,以针对下一时刻重复参数标定和状态估计过程。方法500能够以任何速率重复,诸如以至少每0.1秒一次的速率重复,以便在无人飞行器操作期间提供更新的状态信息和参数值。

  在一些实施方式中,执行如本文所述的无人飞行器初始化和/或错误恢复是有利的,因为此方法不需要关于无人飞行器的初始状态(例如,位置、朝向、速度、加速度等)作出任何假设。例如,本文的方法可以允许在不假设无人飞行器起初是静止的情况下(例如,速度和加速度等于0)进行无人飞行器初始化和/或错误恢复。这种假设可以适合于某些情况(例如,当无人飞行器正在从地面或其他平面起飞时),并且在这样的实施方式中,重力矢量的方向可以直接从惯性传感器数据获得。然而,这种假设可能不适合于其他情况(例如,如果无人飞行器起初正在沿倾斜面向下滑动,如果无人飞行器由用户投掷到空中,如果无人飞行器在错误发生时处于半空中等)。在这样的实施方式中,由于可能存在影响传感器结果的其他加速度值,因此可能无法仅从惯性传感器数据中确定重力矢量的方向。因此,本文的方法允许确定在不考虑无人飞行器的初始状态(例如,无人飞行器是静止的还是移动的)的情况下确定重力矢量,因此改进初始化和错误恢复的灵活性和准确性。

  本文描述的无人飞行器可以利用来自多个传感器的数据,以便执行本文提供的初始化、状态估计和外部参数标定方法。可以使用各种类型和组合的传感器。在一些实施方式中,无人飞行器利用至少一个惯性传感器和至少一个图像传感器。可选地,无人飞行器可以利用至少一个惯性传感器和多个图像传感器,诸如两个或更多个、三个或更多个、四个或更多个、五个或更多个、六个或更多个、七个或更多个、八个或更多个、九个或更多个或者十个或更多个图像传感器。

  在本文中可以使用“惯性传感器”来指运动传感器(例如,速度传感器、加速度传感器,诸如加速度计)、朝向传感器(例如,陀螺仪、倾斜计)或者具有一个或多个集成式运动传感器和/或一个或多个集成式朝向传感器的IMU。惯性传感器可以相对于单一的运动轴线而提供感测数据。运动轴线可以对应于惯性传感器的轴线(例如,纵向轴线)。可以使用多个惯性传感器,每个惯性传感器提供沿着不同的运动轴线的测量值。例如,可以使用三个加速度计以提供沿着三个不同的运动轴线的加速度数据。三个运动方向可以是正交轴线。所述加速度计中的一个或多个可以是线性加速度计,其被配置成用于沿着平移轴线测量加速度。相反地,所述加速度计中的一个或多个可以是角加速度计,其被配置成用于测量围绕旋转轴线的角加速度。又例如,可以使用三个陀螺仪以提供关于三个不同的旋转轴线的朝向数据。三个旋转轴线可以是正交轴线(例如,横滚轴线、俯仰轴线、偏航轴线)。或者,所述惯性传感器中的至少一些或所有传感器可以提供相对于相同运动轴线的测量值。可以实现这样的冗余,例如用以改进测量准确性。可选地,单一的惯性传感器可能能够提供相对于多个轴线的感测数据。例如,包括多个集成式加速度计和陀螺仪的IMU可以用于生成关于多达六个运动轴线的加速度数据和朝向数据。或者,单一的加速度计可以用于检测沿着多个轴线的加速度,而单一的陀螺仪可以用于检测围绕多个轴线的旋转。

  图像传感器可以是被配置成用于检测电磁辐射(例如,可见光、红外光和/或紫外光)并且基于检测到的电磁辐射而生成图像数据的任何装置。由图像传感器生成的图像数据可以包括一个或多个图像,所述图像可以是静态图像(例如,照片)、动态图像(例如,视频)或其合适的组合。图像数据可以是多色的(例如,RGB、CMYK、HSV)或单色的(例如,灰度、黑白、深褐)。在一些实施方式中,图像传感器可以是相机。虽然本文提供的某些实施方式是在相机的情景下描述的,但应当明白,本公开内容可以适用于任何合适的图像传感器,并且本文中与相机有关的任何描述还可以适用于其他类型的图像传感器。相机可以用于生成3D场景(例如,环境、一个或多个物体等)的2D图像。由相机生成的图像可以表示3D场景到2D像平面上的投影。因此,2D图像中的每个点对应于所述场景中的3D空间坐标。可以使用多个相机来捕捉3D场景的2D图像,以便允许重建所述场景的3D空间信息(例如,指示出所述场景中的物体与无人飞行器之间的距离的深度信息)。可选地,可以使用单一的图像传感器来获得3D空间信息,例如,使用来自运动技术的结构获得。可以处理所述3D空间信息以确定无人飞行器状态(例如,位置、朝向、速度等)。

  惯性传感器和图像传感器的组合可以为无人飞行器操作提供各种益处。例如,来自诸如IMU等惯性传感器的惯性数据的准确性可能由于噪声和漂移而随着时间降低,或者可能受到由于重力所致的加速度的影响。这种问题可以通过用来自一个或多个图像传感器的图像数据来修正和/或组合惯性数据而得以减轻或克服。又例如,即使一些图像传感器被遮挡和/或出故障,多个图像传感器的使用也可以允许无人飞行器继续操作,因为其余的图像传感器仍然可用于收集数据。因此,可以使用传感器融合算法来处理和组合来自一个或多个惯性传感器的惯性数据以及来自一个或多个图像传感器的图像数据,以便提供更稳健和更准确的感测结果,以供无人飞行器操作。

  图6图示了根据实施方式的用于处理惯性数据和图像数据的系统600。在一些实施方式中,系统600包括数据收集模块610、图像处理模块620、传感器融合模块630和飞行控制模块640。如本文进一步描述,可以使用硬件部件和软件部件的任何合适的组合来实现系统600的各个模块。例如,每个模块可以包括合适的硬件部件,诸如一个或多个处理器以及储存可由所述一个或多个处理器执行的指令以进行本文所述功能的存储器。备选地或组合地,可以使用相同的一组硬件部件(例如,相同的处理器)来实现两个或更多个模块。

  数据收集模块610可以用于分别从一个或多个惯性传感器以及一个或多个图像传感器获得惯性数据和图像数据。在一些实施方式中,以实质上相同的频率来收集惯性数据和图像数据。在其他实施方式中,以不同的频率来收集惯性数据和图像数据,例如,以比收集图像数据的频率更高的频率收集惯性数据,或者反之亦然。例如,惯性传感器能够以大于或等于约50Hz、100Hz、150Hz、200Hz、250Hz、300Hz、350Hz、400Hz、450Hz、500Hz的频率或更大的频率输出惯性数据。图像传感器能够以大于或等于约1Hz、5Hz、10Hz、15Hz、20Hz、25Hz、30Hz、40Hz、50Hz或100Hz的频率输出图像数据。在使用多个图像传感器的实施方式中,数据收集模块610可以在相同时刻同步地从所述图像传感器中的每一个收集图像数据。

  图像处理模块620可以用于处理从数据收集模块610接收的图像数据。在一些实施方式中,图像处理模块620实现特征点算法,所述特征点算法从一个或多个图像检测和/或提取一个或多个特征点。特征点(在本文中也称作“特征”)可以是图像的一部分(例如,边缘、角点、兴趣点、斑点、褶皱等),所述部分可与所述图像的其余部分和/或所述图像中的其他特征点唯一地区别开来。可选地,特征点关于成像物体的变换(例如,平移、旋转、缩放)和/或图像特性(例如,亮度、曝光度)的变化可以是相对不变的。可以在信息内容方面比较丰富(例如,显著的2D纹理、超过阈值的纹理)的图像的部分中检测特征点。可以在扰动情况下(例如,当改变图像的照明和亮度时)保持稳定的图像的部分中检测特征点。如本文所述的特征检测可以使用可从图像数据提取一个或多个特征点的各种算法来完成。所述算法可以是边缘检测算法、角点检测算法、斑点检测算法或褶皱检测算法。在一些实施方式中,角点检测算法可以是“加速分割测试特征(FAST)”。在一些实施方式中,特征检测器可以提取特征点并使用FAST进行有关特征点的计算。在一些实施方式中,特征检测器可以是Canny边缘检测器、Sobel算子、Harris&Stephens/Plessy/Shi-Tomasi角点检测算法、SUSAN角点检测器、水平曲线曲率法、高斯拉普拉斯(Laplacian of Gaussian)、高斯差分、Hessian行列式、MSER、PCBR或Grey-level斑点、ORB、FREAK或者它们的合适组合。

  可选地,图像处理模块620可以匹配不同图像中的相同特征点,因此生成一组匹配的特征点。特征点匹配可以涉及匹配在由相同的图像传感器捕捉到的图像(例如,在诸如连续的时刻等不同时刻捕捉到的图像)之间、在由不同的图像传感器捕捉到的图像(例如,在相同时刻或在不同时刻捕捉到的图像)之间或者它们的组合之间的特征点。可以使用角点检测算法、光流算法和/或特征匹配算法来执行特征点匹配。例如,可以使用光流来确定连续图像之间的运动并从而预测后续图像中的特征点的位置。备选地或组合地,可以使用特征点描述符(例如,所述描述符的特性可用于唯一地标识特征点)来确定相同的特征点在其他图像中的位置。本文进一步详述了适合与本文的实施方式一起使用的示例性算法。

  在一些实施方式中,图像处理模块620被配置成用于满足某些性能准则,以便确保图像处理以足够快的速率发生并且具有足够的准确性。例如,图像处理模块620可被配置成以约20Hz的实时处理频率来处理三个或更多个数据通道。又例如,图像处理模块620可被配置成用于执行特征跟踪和匹配,以使得例如当重投影误差为2时,RANSAC算法中的内围层点(inlier)的数目大于或等于70%。

  传感器融合模块630可以从数据收集模块610获得惯性数据并且从图像处理模块620获得经处理的图像数据(例如,匹配的特征点)。在一些实施方式中,传感器融合模块630实现一个或多个传感器融合算法,所述传感器融合算法处理所述惯性数据以及经处理的图像数据,以便确定与无人飞行器操作有关的信息,诸如初始化信息、状态信息或外部参数。例如,传感器融合算法可以用于计算无人飞行器位置和/或运动信息,诸如无人飞行器位置、姿态和/或速度。下文进一步详述了适合与本文的实施方式一起使用的示例性传感器融合算法。

  飞行控制模块640可以使用由传感器融合模块630生成的传感器融合结果,以便确定用于无人飞行器的控制信号。控制信号可以用于控制一个或多个无人飞行器部件的操作,所述一个或多个无人飞行器部件诸如为一个或多个推进单元、一个或多个传感器、一个或多个有效载荷、一个或多个通信模块等。在一些实施方式中,控制信号用于实现自主的或半自主的无人飞行器操作,例如以供导航、避障、路径规划、环境测绘等。

  图7图示了根据实施方式的用于在由单一的图像传感器在不同时刻捕捉到的图像之间执行特征点匹配(也称为“单通道处理”)的算法700。方法700与本文所述的所有其他方法一样,可以使用本文所述系统和装置的任何实施方式来执行。在一些实施方式中,方法700的一个或多个步骤通过与系统600的图像处理模块620相关联的一个或多个处理器来执行。

  算法700的输入702可以包括由单一的图像传感器在多个时刻获得的图像序列。在步骤704中,接收所述序列中的图像中之一(“当前图像”)。在步骤706中,可以从当前图像计算一个或多个特征点的集合(“临时点”),例如,使用角点检测算法或任何其他合适的特征点检测算法进行计算。步骤706可以涉及仅使用当前图像而不使用任何其他图像来计算特征点。

  在步骤708中,确定当前图像是否为所述序列中的第一个图像(例如,在最早的时刻捕捉到的图像)。如果其不是第一个图像并且存在至少一个在更早的时刻捕捉到的先前图像,则算法前进至步骤710。在步骤710中,使用光流算法将当前图像与一个或多个先前图像进行比较。在一些实施方式中,光流算法跟踪在一个或多个先前图像中检测到的一个或多个特征点(“先前的点”),以使所述先前的点与当前图像中的特征点相匹配。备选地或组合地,可以使用其他类型的跟踪算法来匹配特征点,例如,基于特征点描述符来执行匹配的跟踪算法。如果在跟踪先前的点期间出现跟踪错误,例如,跟踪不准确或者无法执行,则可以从步骤712的分析中剔除所述点。其余的时间匹配的特征点集合被认为是“当前的点”,以供分析。

  在步骤714中,将临时的点添加到当前的点的集合中,并且校正(例如,使用外部参数来校正)所得到的特征点集合,以便产生最终的特征点集合,作为算法的输出718。或者,如果在步骤708中确定所述当前图像不是第一个图像,则可以忽略步骤710和步骤712,以便仅从步骤706中确定的临时点中获得最终的特征点集合。在步骤720中,将当前图像设置为先前图像,并且将当前的点设置为先前的点。算法700回到步骤704以供下一次迭代,在所述步骤704中,接收序列中的下一图像以供处理。

  图8图示了根据实施方式的用于在由不同的图像传感器捕捉到的图像之间执行特征点匹配(也称为“多通道处理”)的算法800。在一些实施方式中,方法800的一个或多个步骤通过与系统600的图像处理模块620相关联的一个或多个处理器来执行。

  向算法800的输入802可以包括由多个不同的图像传感器获得的多个图像。在一些实施方式中,每个图像传感器提供在多个时刻获得的图像的序列。图像数据收集可以是同步的,以使得图像传感器在实质上相同的时刻获得图像。或者,图像数据收集可以是异步的,以使得不同的图像传感器在不同时刻获得图像。本文进一步描述了异步图像数据收集的附加示例。

  算法800可以使用本文描述的单通道处理技术(例如,算法700)从来自每个图像传感器的每个图像序列中获得时间匹配的特征点。例如,可以使用多个并行处理器804a...804n从对应数目的图像传感器的图像中获得时间匹配的特征点。类似于本文描述的算法700的步骤,单通道处理可以涉及从由单一的图像传感器生成的图像序列接收当前图像(步骤806),使用光流算法来跟踪当前图像中的特征点并且将其与一个或多个先前图像中的特征点相匹配(步骤808),通过剔除无法被跟踪的特征点来获得匹配的特征点集合(步骤810),以及使用图像传感器的外部标定参数来校正所述特征点(步骤812)。如本文所述,所得到的特征点集合可被跟踪并且与后续图像中的特征点相匹配。可以重复单通道匹配过程,直到图像序列中的全部图像均已得到处理。

  在步骤814中,一旦对于来自每个图像传感器的每个图像序列都获得了时间匹配的特征点集合,就可以使用空间匹配算法,使来自不同图像序列的特征点在空间上彼此匹配。由于不同的图像传感器可被配置成用于捕捉具有不同视野的图像,因此场景中相同的特征点可以出现在来自不同传感器的图像中的不同空间位置上。至少一些图像传感器可以具有重叠的视野,以便确保至少一些特征点将会存在于来自不止一个图像传感器的图像序列中。在一些实施方式中,空间匹配算法分析由不同图像传感器获得的图像(例如,在相同时刻或在不同时刻获得的图像),以便识别和匹配不同图像序列中的特征点。算法800的最终输出816可以是特征点集合,所述特征点集合包括由每个图像传感器产生的相应图像序列内的时间匹配的特征点以及在不同图像序列中的空间匹配的特征点。

  在使用多个图像传感器的实施方式中,收集和/或处理来自图像传感器中的每一个的图像数据可以同步或异步地发生。例如,同步图像数据收集方案可以涉及每个图像传感器在实质上相同的时刻获得图像数据,并且可以同时向一个或多个处理器传输所述图像数据。与此相反,异步图像数据收集方案可以涉及不同图像传感器在不同时刻获得图像数据,并且可以在不同的时间(例如,循序地)向一个或多个处理器传输所述图像数据。在异步方案中,一些图像传感器可以在相同时刻获得图像,而其他图像传感器可以在不同时刻获得图像。

  图20图示了根据实施方式的同步图像数据收集方案2000。方案2000可以用于获得和处理来自任何数目的图像传感器的数据,诸如来自两个、三个、四个、五个、六个、七个、八个、九个、10个、15个、20个、30个、40个、50个或更多个图像传感器的数据。在图20的描绘中,从n个图像传感器同步地接收图像数据。例如,在第一时刻k时,所述图像传感器中的每一个生成各自的图像数据。来自所述传感器中的每一个的图像数据可以同时向一个或多个处理器(例如,图像处理模块的一个或多个处理器)传输。所述图像数据可以连同时间戳一起传输,所述时间戳指示出生成数据所处于的时刻。类似地,在第二时刻k+1时,由每个图像传感器获得图像数据并同时将其向一个或多个处理器传输。在无人飞行器的操作期间,可以重复此过程。同步图像数据收集在改进来自不同传感器的图像中的特征点匹配的容易性和准确性方面可能是有利的。例如,在相同时刻拍摄的图像可以在曝光时间、亮度或其他可能影响特征点匹配的容易性的图像特性中展现出更少的变化。

  图21图示了根据实施方式的异步图像数据收集方案2100。方案2100可以用于获得和处理来自任何数目的图像传感器的数据,诸如来自两个、三个、四个、五个、六个、七个、八个、九个、10个、15个、20个、30个、40个、50个或更多个图像传感器的数据。在图21的描绘中,从n个图像传感器异步地接收图像数据。例如,在第一时刻k时,第一图像传感器获得图像数据并向一个或多个处理器(例如,图像处理模块的一个或多个处理器)传输图像数据。在第二时刻k+1时,第二图像传感器获得图像数据并向所述一个或多个处理器传输图像数据。在第三时刻k+2时,第n图像传感器获得图像数据并向所述一个或多个处理器传输所述图像数据。每个图像数据可以连同时间戳一起传输,所述时间戳指示出获得图像数据所处于的时刻,例如,以便促进下游图像处理。不同时刻之间的时间间隔可以是恒定的或可变的。在一些实施方式中,不同时刻之间的时间间隔约为0.02s,或在从约0.05s至约0.2s的范围内。在无人飞行器的操作期间,可以重复此过程,直到从所述图像传感器中的每一个接收到了图像数据中的每一个。获得和接收图像数据的顺序可以根据需要而改变。此外,虽然图21图示了图像数据在每个时刻从单一的图像传感器获得,但应当理解,可以在一些或全部时刻从多个传感器接收图像数据。在一些实施方式中,如本文进一步所述,通过经由切换机构而选择性地将图像传感器的不同子集耦合至所述一个或多个处理器来实现异步图像数据收集。异步图像数据收集可以提供各种优点,诸如实现方式的相对容易性、与范围更广的硬件平台的兼容性以及计算负荷的减少。

  如本文所述,本公开内容的系统和装置可以包括被配置成用于实现传感器融合算法的传感器融合模块(例如,系统600的传感器融合模块630),所述传感器融合算法处理图像数据和惯性数据以获得状态信息、初始化信息和/或外部参数。在一些实施方式中,可以在无人飞行器的整个操作过程中(例如,连续地或以预定时间间隔)执行传感器融合算法,以便实时地提供更新。各种类型的传感器融合算法适合与本文介绍的实施方式一起使用,诸如基于卡尔曼滤波器的算法或者优化算法。在一些实施方式中,本文介绍的优化方法可被认为是一种基于束(bundle-based)的算法。基于卡尔曼滤波器的算法还可被认为是基于束的算法的一种特殊情况。在一些实施方式中,基于卡尔曼滤波器的算法与本文介绍的基于束的算法之间的主要区别在于所要优化的状态数目。基于卡尔曼滤波器的算法可以利用一个或两个状态,而本文中基于束的算法可以利用不止三个状态(例如,至少5个状态、至少10个状态、至少20个状态、至少30个状态、至少40个状态或至少50个状态)。在一些实施方式中,本文介绍的基于束的算法由于优化过程利用更多信息,因此可以提供提高的准确性。在一些实施方式中,基于卡尔曼滤波器的算法可以提供提高的速度和稳定性。

  在一些实施方式中,传感器融合算法涉及优化算法。优化算法可以用于确定一组求解参数,所述求解参数使目标函数的值最小化或最大化。在一些实施方式中,优化算法是迭代优化算法,其迭代地生成估计,直到算法收敛于一个解或者算法停止(例如,因为超过时间阈值)。在一些实施方式中,优化算法是线性的,而在其他实施方式中,优化算法是非线性的。在一些实施方式中,优化算法涉及迭代地对非线性函数进行线性化和求解。本文的实施方式可以利用单一的优化算法或多个不同类型的优化算法,以便估计不同类型的无人飞行器信息。例如,本文描述的方法可以涉及使用线性优化算法来估计某些值并且使用非线性优化算法来估计其他值。

  在一些实施方式中,本公开内容提供迭代优化算法,用于使用来自至少一个惯性传感器的惯性数据和来自至少两个图像传感器的图像数据来在无人飞行器操作期间的一个或多个时刻估计无人飞行器状态信息(例如,位置、朝向、速度)和/或外部参数(例如,一个或多个惯性传感器和/或图像传感器之间的空间关系)。可选地,迭代优化算法还可以基于状态信息和/或外部参数的初始值来确定状态信息和/或外部参数的估计值。迭代优化算法可以例如涉及基于惯性数据、图像数据和/或初始值来计算状态信息和/或外部参数的最大后验概率(MAP)估计。在一些实施方式中,迭代优化算法的目标函数将状态信息、初始化信息和/或外部参数的实际值与基于惯性数据、图像数据和/或初始值而计算得到的状态信息、初始化信息和/或外部参数的估计值关联起来。目标函数可以是线性函数或非线性函数。可以使用迭代求解技术使目标函数最小化或最大化,以便获得状态信息、初始化信息和/或外部参数的实际值的解。例如,如本文进一步所讨论的,可以迭代地对非线性目标函数进行线性化和求解。

  图9图示了根据实施方式的用于使用多个传感器来确定无人飞行器(或任何其他可移动物体)的初始化信息的方法900。可以使用本文所述系统和装置的任何实施方式来执行方法900的步骤。例如,可以使用一个或多个由无人飞行器携带的处理器来执行方法900的一些或全部步骤。方法900可以与本文所述的各种方法的任何实施方式结合执行。

  如本文所讨论的,要使用方法900确定的初始化信息可以包含以下各项中的一项或多项:无人飞行器的朝向(例如,相对于重力方向的朝向)、无人飞行器的位置或无人飞行器的速度。例如,初始化信息可以包含无人飞行器的朝向(例如,相对于重力方向的朝向)、无人飞行器的位置和无人飞行器的速度。在一些实施方式中,大致在无人飞行器开始操作的时刻时确定初始化信息。例如,所述时刻可以是在无人飞行器开始操作之后的不超过约50ms、100ms、200ms、300ms、400ms、500ms、600ms、700ms、800ms、900ms、1s、2s、3s、4s、5s、6s、7s、8s、9s、10s、30s或60s。又例如,所述时刻可以是在无人飞行器开始操作之前的不超过约50ms、100ms、200ms、300ms、400ms、500ms、600ms、700ms、800ms、900ms、1s、2s、3s、4s、5s、6s、7s、8s、9s、10s、30s或60s。

  在步骤910中,检测到无人飞行器已经开始操作。步骤910可以涉及检测以下各项中的一项或多项:无人飞行器已经上电,无人飞行器已经从表面起飞,或者无人飞行器已经开始飞行。无人飞行器可以从倾斜的表面或无倾角的表面(非倾斜表面)起飞。无人飞行器可以从表面(例如,地面)开始飞行、从自由落体状态(例如,在空中)开始飞行、从被发射设备发射而开始飞行或者从由用户投掷到空中开始飞行。可选地,步骤910可以涉及检测以下各项中的一项或多项:无人飞行器的推进单元已被致动,推进单元的输出大于或等于阈值,无人飞行器高度大于或等于阈值,无人飞行器速度大于或等于阈值,或者无人飞行器加速度大于或等于阈值。

  在步骤920中,从由无人飞行器携带的至少一个惯性传感器接收惯性数据。惯性数据可以包括指示出无人飞行器的三维加速度和三维角速度的一个或多个测量值。在一些实施方式中,惯性数据包括从无人飞行器开始操作和/或无人飞行器处于飞行中时起算的时间间隔内,由至少一个惯性传感器获得的一个或多个测量值。

  在步骤930中,从由无人飞行器携带的至少两个图像传感器接收图像数据。图像数据可以包括无人飞行器周围环境的一个或多个图像。在一些实施方式中,图像数据可以包括从无人飞行器开始操作和/或无人飞行器处于飞行中时起算的时间间隔内,由至少两个图像传感器中的每一个获得的一个或多个图像。

  在步骤940中,基于惯性数据和图像数据而确定无人飞行器的初始化信息。初始化信息可以包含在无人飞行器开始操作时所述无人飞行器的位置、速度和/或相对于重力方向的朝向。在一些实施方式中,步骤940包括根据本文描述的图像处理算法来处理图像数据。例如,图像数据可以包括从可移动物体开始操作起算的时间间隔内由至少两个图像传感器中的每一个获得的一个或多个图像,并且可以使用特征点检测算法、光流算法和/或基于描述符算法的特征匹配来处理所述一个或多个图像。如本文所讨论,可以对从不同图像传感器获得的图像进行彼此比较,例如,以便执行特征点匹配。例如,可以将由第一图像传感器获得的一个或多个图像与由第二图像传感器获得的一个或多个图像进行比较。可选地,可以仅使用惯性数据和图像数据来确定初始化信息,而无需任何其他数据,诸如来自其他类型的传感器的传感器数据。在一些实施方式中,从惯性数据和图像数据直接确定初始化信息,而无需针对所述初始化信息的任何初始估计或初始值。可以仅使用在无人飞行器处于操作中时(例如,在无人飞行器已经上电之后,在无人飞行器的飞行期间)获得的数据来确定初始化信息,而不依赖于任何在无人飞行器操作之前(例如,在无人飞行器上电和/或处于飞行中之前)获得的数据。例如,可以在无人飞行器操作期间确定初始化信息,而无需在无人飞行器开始操作之前执行的预先初始化。

  在一些实施方式中,步骤940涉及使用惯性数据和图像数据来生成初始化信息的估计。例如,可以通过使用惯性数据来生成初始化信息的第一估计并且使用图像数据来生成初始化信息的第二估计来执行步骤940。可以组合所述第一估计和第二估计,以获得无人飞行器的初始化信息。

  在一些实施方式中,使用诸如线性优化算法、非线性优化算法或迭代非线性优化算法等优化算法来确定初始化信息。下文介绍了适合与本文的实施方式一起使用的示例性算法。

  无人飞行器可以具有感测系统,所述感测系统包括m个相机(或其他图像传感器类型)和一个IMU(或其他惯性传感器类型)。IMU可被配置成用于输出围绕三个轴线的角速度和沿着三个轴线的线性加速度值。IMU的输出频率可以高于相机的输出频率。例如,相机的采样速率可被假设为fcamHz,并且N=fcam×T。系统可以在开始操作之后(例如,上电之后)的时间间隔T中接收到(N+1)×m个图像。时间间隔T可以对应于多个时刻t0,t1,t2,t3,t4,t5,...,tN和多个无人飞行器状态其中表示无人飞行器的当前位置(相对于t0时的位置,所述t0是操作开始时的时刻),表示无人飞行器的当前速度(相对于无人飞行器的机身坐标系),而gk表示(相对于无人飞行器的机身坐标系的)重力加速度。初始条件可以是

  在接收到的(N+1)×m个图像中观察到的特征点数目可以为M+1。可以假设,第i特征点在时间tk(0≤k≤N)时最初被第j相机观察到,而λi是所述特征点在时间tk时的与第j相机的平面垂直的方向上的深度。全部无人飞行器状态和特征深度λ0,λ1,λ2,λ3...λM可以形成整体状态X。

  可以在时间(tk,tk+1)中接收多个IMU数据,每个IMU数据对应于时间间隔t,可以定义以下方程:

  

  

  其中表示从时间t到时间k的旋转并且通过对来自IMU的角速度进行积分而获得,表示在时间t时相对于无人飞行器机身坐标系的加速度,而α和β表示原始IMU数据的积分。可以确定来自IMU数据的估计如下,其中协方差矩阵表示由原始IMU数据中的噪声导致的误差:

  

  

  其中是以上方程中的左矩阵,X是整体状态,而是加性噪声。可以使用本领域普通技术人员已知的预积分技术而计算得到。

  对于相机而言,如果假设特征点l在时间ti时最初被相机cn观察到,继而在时间tj时被相机cm观察到,则可以获得以下估计

  

  X是整体状态,是特征点l在由第i相机在时间tj时获得的图像中的图像坐标,表示第i相机相对于IMU的旋转,而表示第i相机相对于IMU的平移。类似于IMU数据的可以从以上方程中推导得到:

  

  目的可以是要通过使用(1)来自IMU的估计和(2)图像序列之间的几何约束来优化无人飞行器状态的估计。目标方程是要使来自IMU的误差和图像序列之间的几何约束的误差最小化:

  

  它可被进一步定义为

  

  

  

  

  其中Plij是度量相机观察数据中的不确定性的对角矩阵。

  在一些实施方式中,求解过程包括将来自IMU的估计储存在AD中,将图像序列之间的几何约束储存在Ac中,并且继而求解以下线性方程:

  (ΛD+Λc)X=(bD+bc)

  方法900可以提供无人飞行器操作的各种优点。例如,方法900可以用于针对各种起飞类型(诸如,从倾斜面起飞,从半空中或以自由落体起飞,或者通过由用户手动发射或投掷而起飞)而确定无人飞行器相对于重力方向的朝向。因此,方法900还可以包括使用所述朝向信息来修正从惯性传感器获得的后续惯性数据。而且,方法900可以用于在无人飞行器已经开始操作之后提供自动初始化,即使在初始的无人飞行器状态(例如,位置、朝向、速度等)完全未知的情况下也如此。

  除了允许无人飞行器的自动初始化之外,本公开内容的方法还可以用于在无人飞行器系统中发生错误之后执行重新初始化或错误恢复。用于重新初始化的方法可以实质上类似于本文描述的用于初始化的方法,区别在于重新初始化是在已经检测到错误之后执行的,而不是在无人飞行器已经开始操作之后执行的。

  图10图示了根据实施方式的用于使用多个传感器对无人飞行器(或任何其他可移动物体)进行错误恢复的方法1000。方法1000的步骤可以使用本文所述系统和装置的任何实施方式来执行。例如,方法1000的一些或全部步骤可以使用由无人飞行器携带的一个或多个处理器来执行。方法1000可以与本文所述的各种方法的任何实施方式结合执行。

  方法1000可以用于确定重新初始化信息,所述重新初始化信息用于在已经发生错误之后使无人飞行器重新初始化,从而可以恢复正常的操作。类似于本文描述的初始化信息,重新初始化信息可以包含以下各项中的一项或多项:无人飞行器的朝向(例如,相对于重力方向的朝向)、无人飞行器的位置或无人飞行器的速度。例如,重新初始化信息可以包含无人飞行器的朝向(例如,相对于重力方向的朝向)、无人飞行器的位置和无人飞行器的速度。在一些实施方式中,大致在错误发生的时刻确定重新初始化信息。例如,所述时刻可以是在错误发生之后的不超过约50ms、100ms、200ms、300ms、400ms、500ms、600ms、700ms、800ms、900ms、1s、2s、3s、4s、5s、6s、7s、8s、9s、10s、30s或60s。又例如,所述时刻可以是在错误发生之前的不超过约50ms、100ms、200ms、300ms、400ms、500ms、600ms、700ms、800ms、900ms、1s、2s、3s、4s、5s、6s、7s、8s、9s、10s、30s或60s。

  在步骤1010中,检测到已经在无人飞行器的操作期间发生错误。无人飞行器的操作可以涉及无人飞行器上电,无人飞行器已经从表面起飞或者无人飞行器已经开始飞行。错误可能涉及一个或多个传感器中的故障,诸如至少一个惯性传感器或至少两个惯性传感器之中的一个或多个中的故障。错误可能涉及无人飞行器部件中的故障,所述无人飞行器部件诸如为数据收集模块、图像处理模块、传感器融合模块或飞行控制模块。例如,无人飞行器可以包括使用迭代优化算法的传感器融合模块,并且所述故障可能涉及迭代优化估计算法未能收敛于一个解。可选地,无人飞行器可以包括状态估计模块,如本文进一步所述,并且所述状态估计模块可以使用迭代状态估计算法。故障可能涉及迭代状态估计算法未能收敛于一个解。

  在步骤1020中,从由无人飞行器携带的至少一个惯性传感器接收惯性数据。惯性数据可以包括指示出无人飞行器的三维加速度和三维角速度的一个或多个测量值。在一些实施方式中,惯性数据包括从错误发生时起算的时间间隔内,由所述至少一个惯性传感器获得的一个或多个测量值。

  在步骤1030中,从由无人飞行器携带的至少两个图像传感器接收图像数据。图像数据可以包括无人飞行器周围环境的一个或多个图像。在一些实施方式中,图像数据可以包括从错误发生时起算的时间间隔内,由所述至少两个图像传感器中的每一个获得的一个或多个图像。

  在步骤1040中,基于惯性数据和图像数据来确定无人飞行器的重新初始化信息。重新初始化信息可以包含无人飞行器在错误发生时的位置、速度和/或相对于重力方向的朝向。在一些实施方式中,步骤1040包括根据本文描述的图像处理算法来处理图像数据。例如,图像数据可以包括从错误发生时起算的时间间隔内由至少两个图像传感器中的每一个获得的一个或多个图像,并且可以使用特征点检测算法、光流算法和/或特征匹配算法来处理所述一个或多个图像。如本文所讨论,可以对从不同图像传感器获得的图像进行彼此比较,例如,以便执行特征点匹配。例如,可以将由第一图像传感器获得的一个或多个图像与由第二图像传感器获得的一个或多个图像进行比较。可选地,可以仅使用惯性数据和图像数据来确定重新初始化信息,而无需任何其他数据,诸如来自其他类型的传感器的传感器数据。在一些实施方式中,从惯性数据和图像数据直接确定重新初始化信息,而无需针对所述重新初始化信息的任何初始估计或初始值。

  在一些实施方式中,步骤1040涉及使用惯性数据和图像数据来生成重新初始化信息的估计。例如,可以通过使用惯性数据来生成重新初始化信息的第一估计并且使用图像数据来生成重新初始化信息的第二估计而执行步骤1040。可以组合所述第一估计和第二估计,以获得无人飞行器的重新初始化信息。

  在一些实施方式中,使用诸如线性优化算法、非线性优化算法、迭代优化算法、迭代线性优化算法或迭代非线性优化算法等优化算法来确定重新初始化信息。用于评估重新初始化信息的优化算法可以实质上类似于本文介绍的用于评估初始化信息的算法,区别在于相关的时刻是在发生错误之后的时间间隔中,而不是在无人飞行器开始操作之后的时间间隔中。

  方法1000可以提供无人飞行器操作的各种优点。例如,方法1000可以用于确定无人飞行器在各种可能发生错误的情况下(诸如当无人飞行器在飞行期间处于半空中时)相对于重力方向的朝向。因此,方法1000可以涉及使用所述朝向信息来修正从惯性传感器获得的后续惯性数据。而且,方法1000可以用于在无人飞行器已经开始操作之后提供自动重新初始化,即使在发生错误之后初始的无人飞行器状态(例如,位置、朝向、速度等)完全未知的情况下也如此。例如,方法1000可以涉及使用所确定的重新初始化信息使由状态估计模块实现的迭代状态估计算法重新初始化。有利地,本文描述的重新初始化技术可以用于实时地检测和响应无人飞行器操作期间的错误,从而改进无人飞行器操作的可靠性。

  图11图示了根据实施方式的用于在无人飞行器的操作期间使用多个传感器来标定无人飞行器(或任何其他可移动物体)的一个或多个外部参数的方法1100。方法1100的步骤可以使用本文所述系统和装置的任何实施方式来执行。例如,方法1100的一些或全部步骤可以使用由无人飞行器携带的一个或多个处理器来执行。方法1100可以与本文所述的各种方法的任何实施方式结合执行。

  方法1100可以用于确定无人飞行器在操作期间(例如,当无人飞行器上电时,处于飞行中时等)的外部参数,这在本文中可以称作“在线”标定。在一些实施方式中,在线标定在无人飞行器操作期间连续地或以预定时间间隔执行,以便允许外部参数的实时更新。例如,可以在无人飞行器操作期间每0.1s执行一次方法1100。

  在步骤1110中,接收一个或多个外部参数的初始值。在一些实施方式中,外部参数包含由无人飞行器携带的至少两个图像传感器之间的空间关系。例如,空间关系可以包括所述图像传感器的相对位置和相对朝向。所述至少两个图像传感器的相对位置和相对朝向可以关于彼此和/或关于由无人飞行器携带的至少一个惯性传感器的位置和朝向而确定。

  可以使用各种方法来获得初始值。在一些实施方式中,从与无人飞行器相关联的存储器装置(例如,在无人飞行器上携带的存储器装置)接收初始值。可以在无人飞行器的操作之前确定初始值。例如,可以在无人飞行器操作之前使用本文描述的迭代优化算法来确定初始值。又例如,可以在操作之前由用户测量初始值。可选地,初始值可以是在制造无人飞行器时确定的工厂标定值。在一些实施方式中,可以基于对无人飞行器配置的了解来确定初始值。例如,图像传感器和/或惯性传感器可以在某些固定位置(例如,选定的一组可用于安装传感器的位置)耦合至无人飞行器,并且可以基于与所述固定位置有关的信息来确定初始值。

  在一些实施方式中,初始值旨在提供外部参数的实际值的粗略估计而并不旨在成为非常准确的。与其他标定方法相反,本文提供的方法不需要准确的外部参数初始值来执行在线标定。例如,外部参数(例如,相对位置)的初始值可以与外部参数的实际值相差不超过约0.1cm、0.25cm、0.5cm、0.75cm、1cm、1.25cm、1.5cm、1.75cm、2cm、2.25cm、2.5cm、2.75cm、3cm或5cm。或者,外部参数(例如,相对位置)的初始值可以与外部参数的实际值相差至少约0.1cm、0.25cm、0.5cm、0.75cm、1cm、1.25cm、1.5cm、1.75cm、2cm、2.25cm、2.5cm、2.75cm、3cm或5cm。又例如,外部参数(例如,相对朝向)的初始值可以与外部参数的实际值相差不超过约0.1度、0.25度、0.5度、0.75度、1度、1.25度、1.5度、1.75度、2度、2.25度、2.5度、2.75度、3度或5度。或者,外部参数(例如,相对位置)的初始值可以与外部参数的实际值相差至少约0.1度、0.25度、0.5度、0.75度、1度、1.25度、1.5度、1.75度、2度、2.25度、2.5度、2.75度、3度或5度。

  在步骤1120中,在无人飞行器的操作期间,从由无人飞行器携带的至少一个惯性传感器接收惯性数据。惯性数据可以包括指示出无人飞行器的三维加速度和三维角速度的一个或多个测量值。在一些实施方式中,惯性数据包括由所述至少一个惯性传感器在至少两个、三个、四个、五个、六个、七个、八个、九个、10个、20个、30个、40个或50个时刻获得的一个或多个测量值。

  在步骤1130中,在无人飞行器的操作期间,从由无人飞行器携带的至少两个图像传感器接收图像数据。图像数据可以包括可移动物体周围环境的一个或多个图像。在一些实施方式中,图像数据可以包括由所述至少两个图像传感器中的每一个在至少两个、三个、四个、五个、六个、七个、八个、九个、10个、20个、30个、40个或50个时刻获得的一个或多个图像。

  在步骤1140中,基于初始值、惯性数据和图像数据来确定一个或多个外部参数的估计值。可以在无人飞行器的操作期间确定所述估计值。可选地,惯性数据和图像数据可以是仅有的用于确定外部参数的估计值的传感器数据。步骤1140可以涉及使用特征点检测算法、光流算法和/或特征匹配算法来处理由图像传感器获得的一个或多个图像。可选地,步骤1140可以涉及将由第一传感器获得的一个或多个图像与由第二传感器获得的一个或多个图像进行比较。

  在一些实施方式中,使用诸如非线性优化算法、线性优化算法、迭代优化算法或迭代非线性优化算法等优化算法来确定估计值。迭代优化算法可以包括基于初始值、惯性数据和图像数据来计算一个或多个外部参数的最大后验概率(MAP)估计。下文介绍了适合与本文的实施方式一起使用的示例性算法。

  无人飞行器可以具有包括m个相机(或其他图像传感器类型)和一个IMU(或其他惯性传感器类型)的感测系统。相机的外部参数可以是其中1≤i≤m,类似于本文先前描述的记号法。类似于本文提供的其他优化算法,可以建立优化目标函数,所述优化目标函数包括来自IMU的积分估计和来自相机的响应。

  可以假设,在从t0到tN的时间段([t0,t1,t2,t3,t4,t5,...,tN])内,无人飞行器状态为其中表示无人飞行器的当前位置(相对于t0时的位置,所述t0为操作开始时的时刻),表示无人飞行器在时间k时的当前速度(相对于无人飞行器的机身坐标系),而表示无人飞行器在时间k时的当前朝向(相对于t0时的朝向)。初始条件可以是可以假设,第i特征点在时间tk(0≤k≤N)时最初被第j相机观察到,而λi为所述特征点在时间tk时在与第j相机的平面垂直的方向上的深度。要估计的相机参数为其中表示第i相机相对于IMU的旋转,表示第i相机相对于IMU的平移,并且1≤i≤m。要估计的未知量为无人飞行器状态外部标定参数以及特征深度λ0,λ1,λ2,λ3...λM。所有这些未知量形成矢量X,其在本文中称作“整体状态”。

  在一些实施方式中,目标方程定义为:

  

  其中将整体状态X与来自IMU的积分估计关联起来,且将整体状态X与来自图像传感器的估计关联起来。||bp-ΛpX||编码X的先验信息。由于关于X是非线性的,并从而可能难以求解,因此算法可以对误差状态表示δX进行运算,并且函数可以通过一阶秦勒展开式而线性化:

  

  

  是整体状态X在一些误差项δX内的估计值。注意,误差状态表示δX中的可以不是而是(极小的表示)。

  考虑到无人飞行器动力学的实际物理模型和相机几何原理,残差可以定义为:

  

  

  其中的三个元素,是特征l在j帧中通过位姿信息而估计的坐标。上文定义了方程中的其他符号。

  如下文所讨论,关于δX的导数,并且具有两种情况。

  在一种情况下,假定特征l在时间i时首先被相机ci观察到,并继而在同一时间被相机cj观察到:

  

  其中为归一化坐标。可以获得以下方程:

  

  

  

  

  

  

  

  

  

  在另一情况下,假定特征l在时间i时首先被相机ci观察到,并继而在随后的时间j时被相机cj观察到:

  

  如果ci=cj,则可以获得以下方程:

  

  

  

  

  

  

  

  如果ci≠cj,则可以获得以下方程:

  

  

  

  

  

  

  

  

  

  通过将以上方程代入目标方程,可以获得以下方程:

  

  在一些实施方式中,可以提供初始值,并且可以迭代地求解目标方程。可以通过使用如本文所述的初始化算法或重新初始化算法、将来自IMU的积分估计添加到前一时刻的最优估计中或者通过初始化为来获得初始值。可以迭代地求解目标方程以获得δX,并继而根据下式来更新

  

  直到δX≈0。最后,在收敛之后,是由系统输出的无人飞行器状态。

  在一些实施方式中,如果δX在多次迭代中不趋近于零,以至于参数标定算法未能收敛于一个解,则这可被认为是系统中的错误,并且可以如本文所述地执行重新初始化以从错误中恢复。

  工厂标定之后的外部参数和/或来自前一时刻的参数的最优估计可以作为无人飞行器状态的一部分而输入到目标方程中,继而可以迭代地求解和更新所述方程,以便修正估计外部参数中的任何误差并且使目标方程最小化。系统可以实时地检测外部参数中的误差(求解δX)并且修正所述误差(更新)。

  可选地,在步骤1140之后,可以基于外部参数的估计值来确定无人飞行器的状态(例如,位置、朝向和/或速度)。例如,外部参数可以用于融合来自图像传感器和惯性传感器的传感器数据,以便计算状态信息。在一些实施方式中,所述状态信息相对于在无人飞行器操作期间的先前时刻的先前无人飞行器状态而确定。先前时刻可以是状态信息可用的第一时刻,例如,当无人飞行器开始操作时、当初始化发生时或当重新初始化发生时的时刻。或者,所述状态信息可以相对于全局坐标系而非相对于先前的无人飞行器状态而确定。

  图12图示了根据实施方式的用于标定具有多个处于初始配置中的传感器的无人飞行器(或任何其他可移动物体)的一个或多个外部参数的方法1200。方法1200的步骤可以使用本文所述系统和装置的任何实施方式来执行。例如,方法1200的一些或全部步骤可以使用由无人飞行器携带的一个或多个处理器来执行。方法1200可以与本文所述的各种方法的任何实施方式结合执行。类似于方法1100,方法1200可以用于在无人飞行器操作期间执行在线标定。

  在步骤1210中,检测到由无人飞行器携带的多个传感器的初始配置已被修改。多个传感器可以包括至少一个惯性传感器和至少两个图像传感器。初始配置可以已经通过移除所述多个传感器中的至少一个传感器、向所述多个传感器中添加至少一个传感器、改变所述多个传感器中的传感器的位置和/或朝向或者它们的组合而受到修改。在一些实施方式中,在无人飞行器的操作之前(例如,在无人飞行器处于飞行中和/或已经上电之前)修改初始配置,并且在无人飞行器操作期间检测所述修改。在其他实施方式中,在无人飞行器的操作期间修改所述配置。可以使用各种方法来检测所述修改。例如,如果在本文讨论的迭代过程中,δX内的δθ和δT值不接近于零,则可以检测到修改,从而意味着应当执行附加的更新。

  在步骤1220中,在无人飞行器的操作期间,从由所述无人飞行器携带的至少一个惯性传感器接收惯性数据。惯性数据可以包括指示出无人飞行器的三维加速度和三维角速度的一个或多个测量值。在一些实施方式中,惯性数据包括由所述至少一个惯性传感器在至少两个、三个、四个、五个、六个、七个、八个、九个、10个、20个、30个、40个或50个时刻获得的一个或多个测量值。

  在步骤1230中,在无人飞行器的操作期间,从由所述无人飞行器携带的至少两个图像传感器接收图像数据。图像数据可以包括可移动物体周围环境的一个或多个图像。在一些实施方式中,图像数据可以包括由所述至少两个图像传感器中的每一个在至少两个、三个、四个、五个、六个、七个、八个、九个、10个、20个、30个、40个或50个时刻获得的一个或多个图像。

  在步骤1240中,响应于检测到初始配置已被修改而估计一个或多个外部参数。所述一个或多个外部参数可以包括经修改的配置中的多个传感器之间的空间关系。在一些实施方式中,空间关系包括图像传感器的相对位置和相对朝向,所述相对位置和相对朝向可以关于彼此和/或关于惯性传感器而确定。可以按各种方式来估计外部参数。在一些实施方式中,基于步骤1220和步骤1230中接收到的惯性数据和图像数据来估计一个或多个外部参数。可选地,惯性数据和图像数据可以是仅有的用于确定外部参数的估计值的传感器数据。步骤1240可以涉及使用特征点检测算法、光流算法和/或特征匹配算法来处理由图像传感器获得的一个或多个图像。可选地,步骤1240可以涉及将由第一传感器获得的一个或多个图像与由第二传感器获得的一个或多个图像进行比较。

  在一些实施方式中,基于一个或多个外部参数的初始值来估计外部参数。可以使用各种方法来获得初始值。在一些实施方式中,从与无人飞行器相关联的存储器装置(例如,携带在无人飞行器上的存储器装置)接收初始值。可以在无人飞行器的操作之前确定所述初始值。例如,可以在无人飞行器操作之前使用本文描述的迭代优化算法来确定初始值。又例如,可以在操作之前由用户测量初始值。可选地,初始值可以是在制造无人飞行器时确定的工厂标定值。在一些实施方式中,可以基于对无人飞行器配置的了解来确定初始值。例如,图像传感器和/或惯性传感器可以在某些固定位置(例如,选定的一组可用于安装传感器的位置)耦合至无人飞行器,并且可以基于与所述固定位置有关的信息来确定初始值。

  在一些实施方式中,使用诸如非线性优化算法、线性优化算法、迭代优化算法、迭代非线性优化算法或迭代线性优化算法等优化算法来估计外部参数。迭代优化算法可以包括基于初始值、惯性数据和图像数据来计算一个或多个外部参数的最大后验概率(MAP)估计。迭代优化算法可以类似于本文先前关于方法1100描述的算法。

  可选地,在步骤1240之后,可以基于所估计的外部参数来确定无人飞行器的状态(例如,位置、朝向和/或速度)。例如,外部参数可以用于融合来自图像传感器和惯性传感器的传感器数据,以便计算状态信息。在一些实施方式中,所述状态信息是相对于在无人飞行器操作期间的先前时刻的先前无人飞行器状态而确定。先前时刻可以是状态信息可用的第一时刻,例如,当无人飞行器开始操作时、当初始化发生时或当重新初始化发生时的时刻。或者,所述状态信息可以相对于全局坐标系而非相对于先前的无人飞行器状态而确定。

  本文描述的自动参数标定方法(例如,方法1100、1200)在确保无人飞行器传感器数据处理的准确性和可靠性的方面可以是有益的,这是因为外部参数可能在无人飞行器操作期间改变,例如,由于震动、碰撞或者其他更改传感器相对于彼此的空间关系的事件而改变。例如,本文描述的方法可以用于在无人飞行器操作期间连续地估计图像传感器与惯性传感器之间的空间关系(例如,相对位置和朝向),以及在操作期间检测和修正空间关系的估计值中的误差。此外,本文描述的在线标定的实现还可以有利地避免在操作之前对无人飞行器的准确标定(这在本文中可以称作“离线”标定)的需要。这可以允许“即插即用”方法,其中可以修改无人飞行器的传感器配置(例如,通过添加一个或多个传感器、移除一个或多个传感器、移动一个或多个传感器来修改),并且可以在修改之后立即操作所述无人飞行器,而无需冗长的离线标定过程来确定传感器配置的新外部参数。在一些实施方式中,本文提供的参数标定方法使得外部参数能够在无人飞行器操作期间得以确定,而无需在无人飞行器操作之前执行任何参数标定。

  图13图示了根据实施方式的用于在无人飞行器的操作期间使用多个传感器来估计无人飞行器(或任何其他可移动物体)的状态信息的方法1300。方法1300的步骤可以使用本文所述系统和装置的任何实施方式来执行。例如,方法1300的一些或全部步骤可以使用由无人飞行器携带的一个或多个处理器来执行。方法1300可以与本文所述的各种方法的任何实施方式结合执行。

  方法1300可以用于估计无人飞行器在操作期间(例如,当无人飞行器上电、处于飞行中时等)的当前状态。状态估计可以涉及确定各种类型的状态信息,诸如无人飞行器的位置、朝向、速度和/或加速度。状态信息可以相对于无人飞行器在较早时刻的先前状态而确定,或者可以按绝对的方式(例如,相对于全局坐标系)而确定。在一些实施方式中,在无人飞行器操作期间连续地或以预定时间间隔执行状态估计,以便允许外部参数的实时更新。例如,可以在无人飞行器操作期间每0.1s执行一次方法1300。

  在步骤1310中,接收无人飞行器的先前状态信息。先前状态信息可以包含无人飞行器在所述无人飞行器操作期间的先前时刻的位置、朝向、速度和/或加速度。在一些实施方式中,使用迭代优化算法(例如,在方法1300的步骤1340中使用的相同算法)来获得先前状态信息。来自一个或多个先前时刻的状态信息可以储存在与无人飞行器相关联的存储器装置上,以便帮助对于后续时刻的更新的状态信息的估计。

  在步骤1320中,接收来自由无人飞行器携带的至少一个惯性传感器的惯性数据。惯性数据可以包括由所述惯性传感器在无人飞行器的操作期间的至少两个、三个、四个、五个、六个、七个、八个、九个、10个、20个、30个、40个或50个时刻获得的惯性测量数据。惯性数据可以指示出无人飞行器的三维加速度和三维角速度。

  在步骤1330中,接收来自由无人飞行器携带的至少两个图像传感器的图像数据。图像数据可以包括由每个图像传感器在无人飞行器的操作期间的至少两个、三个、四个、五个、六个、七个、八个、九个、10个、20个、30个、40个或50个时刻获得的图像。图像可以是无人飞行器周围环境的图像。

  在步骤1340中,在无人飞行器的操作期间,基于先前状态信息、惯性数据和/或图像数据来确定无人飞行器的更新的状态信息。更新的状态信息可以包含无人飞行器的位置、朝向、速度和/或加速度。更新的状态信息可以是无人飞行器在当前时刻的当前状态信息。可选地,惯性数据和图像数据可以是仅有的用于确定更新的状态信息的传感器数据。步骤1340可以涉及使用特征点检测算法、光流算法和/或特征匹配算法来处理由每个图像传感器获得的图像。可选地,步骤1340可以涉及将由第一传感器获得的一个或多个图像与由第二传感器获得的一个或多个图像进行比较。

  在一些实施方式中,使用诸如非线性优化算法、线性优化算法、迭代优化算法、迭代非线性优化算法或迭代线性优化算法等优化算法来确定估计值。迭代优化算法可以包括基于初始值、惯性数据和图像数据来计算一个或多个外部参数的最大后验概率(MAP)估计。下文介绍了适合与本文的实施方式一起使用的示例性算法。

  无人飞行器可以具有包括m个相机(或其他图像传感器类型)和一个IMU(或其他惯性传感器类型)的感测系统。IMU的输出频率可以高于相机的输出频率。相机的外部参数可以是其中表示第i相机相对于IMU的旋转,表示第i相机相对于IMU的平移,并且1≤i≤m。类似于本文提供的其他优化算法,可以建立优化目标函数,其包括来自IMU的积分估计和来自相机的响应。

  可以假设,在从t0到tN的时间段([t0,t1,t2,t3,t4,t5,...,tN])内的无人飞行器状态为其中表示无人飞行器的当前位置(相对于t0(操作开始时的时刻)时的位置),表示无人飞行器在时间k时的当前速度(相对于无人飞行器的机身坐标系),而表示无人飞行器在时间k时的当前朝向(相对于t0时的朝向)。初始条件可以是在(N+1)×m个图像中观察到的特征点的数目可以是M。可以假设,第i特征点在时间tk(0≤k≤N)时最初被第j相机观察到,而λi为所述特征点在时间tk时在与第j相机的平面垂直的方向上的深度。要估计的未知量为无人飞行器状态外部标定参数以及特征深度λ0,λ1,λ2,λ3...λM。所有这些未知量形成矢量X,其在本文中称作“整体状态”。

  在一些实施方式中,目标方程定义为:

  

  其中||bp-ApX||储存先验信息(表示对X的估计),是整体状态X与来自IMU的积分估计之间的关系,而是整体状态X与来自图像传感器的估计之间的关系。方程可以如本文所讨论地推导。由于是非线性的,因此可以用一阶秦勒展开式来展开它们以获得

  

  

  可以通过将以上两个方程代入到目标方程中而获得以下方程:

  

  在一些实施方式中,可以提供初始值,并且可以使用高斯-牛顿算法来迭代地求解目标方程。可以通过使用如本文所述的初始化算法或重新初始化算法、将来自IMU的积分估计添加到来自前一时刻的最优估计中或者通过初始化为来获得初始值。继而可以迭代地求解目标方程以获得δX,并继而根据下式来更新

  

  直到δX≈0以使目标方程最小化。因此,是由系统输出的无人飞行器状态。

  在一些实施方式中,如果δX在多次迭代中不趋近于零,以至于状态估计算法未能收敛于一个解,则这可被认为是系统中的错误,并且可以如本文所述地执行重新初始化以从错误中恢复。

  在一些实施方式中,来自一个或多个先前时刻的传感器数据可以用于估计当前的状态信息。例如,来自至少一个、两个、三个、四个、五个、六个、七个、八个、九个、10个、20个、30个、40个或50个先前时刻的先前惯性数据和/或图像数据可以用于估计当前的状态信息。可以使用诸如滑动窗口滤波器等各种方法来确定要用于估计无人飞行器的当前状态的先前状态信息量。

  图14图示了根据实施方式的用于选择先前状态信息的滑动窗口滤波器。滑动窗口的大小可以是K,以使得来自K个时刻的传感器数据(例如,惯性数据和/或图像数据)用于估计当前状态。虽然图14中K=4,但应当明白,K可以是任何合适的值,诸如20。K个时刻可以包括K-1个先前时刻以及当前时刻。当在后续时刻获得新的传感器数据时,所述新的数据可被添加到滑动窗口中,而来自先前时刻的数据可以从滑动窗口中移除以便保持恒定的窗口大小K。例如,在图14的描绘中,第一滑动窗口1400a包含来自时刻1-时刻4的数据,第二滑动窗口1400b包含来自时刻2-时刻5的数据,第三滑动窗口1400c包含来自时刻3-时刻6的数据,而第四滑动窗口1400d包含来自时刻4-时刻7的数据。在一些实施方式中,剔除的时刻是滑动窗口中最早的时刻(例如,先进先出(FIFO))。在其他实施方式中,剔除的时刻可以不是最早的时刻,并且可以使用除FIFO之外的其他排斥(marginalization)方法来确定要保留哪些时刻而要剔除哪些时刻,诸如先进后出(FILO)或者FIFO与FILO的混合。在一些实施方式中,基于检查指定时刻与其相邻的时刻之间的视差来剔除时刻。如果所述视差对于稳定的算术解而言不够大,则可以使用例如Schur补排斥法来排斥和丢弃所述时刻。

  在一些实施方式中,bp和Λp可以储存来自先前时刻的、用于估计当前状态的信息。例如,bp和Λp可以储存先前时刻的传感器数据(例如,惯性数据和/或图像数据),所述先前时刻是从无人飞行器开始操作(或者从错误中重新初始化)时到当前时刻。可选地,bp和Λp可以排除来自已经包含在本文描述的滑动窗口中的K个时刻的数据。在这样的实施方式中,当数据从滑动窗口中剔除时,其可以用于更新bp和Λp。

  在一些实施方式中,算法可以用于实时地检测输入传感器数据中的错误。例如,如果图像传感器中之一出故障或被遮挡,则可能发生错误。又例如,如果由图像传感器获得的图像数据中存在过度噪声,则可能发生错误。当求解δX并更新时,可以通过检测对应于图像数据和/或惯性数据的δX是否收敛(例如,在多次迭代内,δX是否变得越来越小和/或是否趋近于零)来执行错误检测。如果δX收敛,则传感器数据可被认为是无错误的。然而,如果δX不收敛,则传感器数据可被认为是错误的,并且可以将导致收敛问题的传感器数据从优化过程中移除。

  可选地,在步骤1340之后,可以将更新的状态信息例如输出至用于控制无人飞行器的移动的控制模块。例如,控制模块可以使用更新的状态信息来控制无人飞行器的一个或多个推进单元,以便例如实现自主或半自主导航、避障、路径规划、环境测绘等。

  方法1300可以为无人飞行器操作提供若干优点。例如,本文描述的状态估计方法可以比其他类型的状态估计方法更准确,同时节约计算资源。所估计的状态信息可以比仅使用惯性数据或仅使用图像数据而估计的状态信息更准确。在一些实施方式中,状态信息(例如,位置信息)的估计值与状态信息的实际值相差不超过约0.1cm、0.25cm、0.5cm、0.75cm、1cm、1.25cm、1.5cm、1.75cm、2cm、2.25cm、2.5cm、2.75cm、3cm或5cm。可以通过使用更多个图像传感器而进一步提高准确性。此外,本文的实施方式适合与多个图像传感器一起使用,从而允许系统即使在图像传感器中的一个或多个出故障或被遮挡的情况下仍继续操作。在一些实施方式中,状态估计方法减少了噪声并因此提高了无人飞行器系统的稳健性和稳定性。

  图15图示了根据实施方式的用于执行针对无人飞行器(或任何其他可移动物体)的状态估计和/或参数标定的方法1500。如本文所述,在方法1500中,从由无人飞行器携带的至少一个惯性传感器和至少两个图像传感器接收惯性数据1502和图像数据1504。惯性数据1502和图像数据1504可被输入到线性滑动窗口滤波器1506和非线性滑动窗口滤波器1508中。线性滑动窗口滤波器1506可以在接收到新数据时,利用FIFO方法剔除来自先前时刻的数据。非线性滑动窗口滤波器1508可以在接收到新数据时,利用排斥方法剔除来自先前时刻的数据。

  在一些实施方式中,通过向非线性求解器1510中输入由非线性滑动窗口滤波器1508选择的惯性数据和图像数据来执行状态估计和/或参数标定,从而生成解,所述解提供状态信息和/或外部参数的估计值。非线性求解器1510可以是非线性优化算法,诸如本文描述的实施方式。方法1500可以包括检测非线性求解器1510是否已经收敛,以便产生解1512。如果非线性求解器1510已经收敛并且产生解,则可以将所述解输出1514,例如,输出至另一无人飞行器部件,诸如飞行控制模块。所述方法继而可以继续接收新的传感器数据并且经由非线性滑动窗口滤波器1508来排斥掉先前的传感器数据1516,并且所述过程可被重复以继续生成更新的状态估计。

  如果非线性求解器1510未能收敛,则方法1500可以继续使用线性求解器1518来生成提供状态信息的估计值的解并且输出所述解1514。线性求解器1518可以是线性优化算法,诸如本文描述的实施方式。在一些实施方式中,非线性求解器1510未能收敛被认为是错误,而线性求解器1518可以实现重新初始化算法以便从所述错误中恢复。由线性求解器1518提供的解(例如,重新初始化信息)可以用作由非线性求解器1510执行的后续状态估计的初始值。

  本文描述的各种方法可以由任何合适的系统或装置来实现。在一些实施方式中,本文的方法是由硬件平台执行,所述硬件平台包括计算平台、飞行控制模块、传感器模块和数据采集子系统。计算平台可以包括传感器融合模块,所述传感器融合模块根据本文描述的各种传感器融合算法来接收和处理传感器数据。可以使用硬件部件和软件部件的任何合适的组合来实现所述计算平台。例如,在一些实施方式中,计算平台利用NVIDIA Tegra K1作为设计ARM架构CPU和GPU计算平台的基础。计算平台可被设计成用于满足某些性能要求,诸如稳定性和可扩展性。表1提供了计算平台的一些示例性要求和测试方法:

  表1:示例性要求和测试方法

  

  

  飞行控制模块可以包括用于控制无人飞行器操作的硬件部件和软件部件的任何合适的组合,诸如用于控制无人飞行器位置、朝向、速度和/或加速度的部件。在一些实施方式中,飞行控制模块包括一个或多个用于控制无人飞行器的推进单元的致动的部件,以便例如实现期望的位置、朝向、速度等。飞行控制模块可以可通信地耦合至计算平台,以便从所述平台接收数据(例如,状态信息)并且使用所述数据作为向一个或多个飞行控制算法中的输入。例如,飞行控制模块可以包括底层API,以便从计算平台接收数据,例如,以至少50Hz的频率接收数据。

  传感器模块可以包括一个或多个传感器,诸如本文所述的至少一个惯性传感器和至少两个图像传感器。在一些实施方式中,传感器模块包括三个全局快门相机,其中两个相机设置为面朝前方的双目配置(例如,沿着无人飞行器的运动方向),而一个相机设置为面朝下方的单目配置。所述相机可以具有约20Hz的采样频率。在一些实施方式中,传感器模块包括一个IMU,所述IMU被配置成用于以至少100Hz的频率获取无人飞行器的角速度和线性加速度。IMU还可被配置成用于提供角度值,例如使用来自陀螺仪的未经修正的积分来提供角度值。可选地,传感器模块还可以包括其他类型的传感器,诸如罗盘、气压计、GPS和/或超声传感器(例如,向前朝向的超声传感器和向下朝向的超声传感器)。用于传感器模块的传感器可以使用刚性连接而耦合至无人飞行器机身,所述刚性连接约束传感器相对于机身的移动。可选地,诸如阻尼器或减震器等减震系统可以安装在传感器与无人飞行器模块之间,以便减少传感器的不期望的移动。

  数据采集子系统可以可操作地耦合至传感器模块,以便从各个传感器向计算平台和/或飞行控制模块传输传感器数据。数据采集系统可以利用任何合适类型的通信接口,诸如USB接口、串行端口或其组合。在一些实施方式中,图像传感器和超声传感器经由USB接口耦合,而IMU和其他传感器类型经由串行端口耦合。

  图16图示了根据实施方式的用于使用多个传感器来控制无人飞行器的系统1600。系统1600可以用于实现本文描述的方法的任何实施方式。系统1600的至少一些或全部部件可以由无人飞行器携带。系统1600可被认为是分成两个不同的功能单元:传感器融合单元1601a(虚线以上的部件)和飞行控制单元1601b(虚线以下的部件)。传感器融合单元1601a和飞行控制单元1601b可以可通信地彼此耦合,用于交换数据、控制信号等。在一些实施方式中,传感器融合单元1601a和飞行控制单元1601b被配置成彼此独立地操作,以使得如果一个单元出故障,则另一单元可以继续操作。例如,如果传感器融合单元1601a遭遇故障,则飞行控制单元1601b可被配置成用于独立地继续工作,以便例如执行紧急降落操作。

  在一些实施方式中,系统1600包括传感器融合模块1602,所述传感器融合模块1602可操作地耦合至飞行控制模块1604。传感器融合模块1602还可以耦合至多个传感器,诸如一个或多个惯性传感器1606以及一个或多个图像传感器1608。传感器融合模块1602可以包括一个或多个处理器,所述一个或多个处理器使用来自一个或多个惯性传感器1606和一个或多个图像传感器1608的惯性数据和图像数据,以便执行本文描述的初始化、错误恢复、状态估计和外部参数标定方法。可选地,如上文和在此所述,传感器融合模块1602可以耦合至图像处理模块或包括图像处理模块,用于处理图像数据。由传感器融合模块1602生成的结果可被传输至飞行控制模块1604,以便促进各种飞行操作。可以基于来自传感器融合模块的结果、从远程终端1610接收到的用户命令、从其他传感器1612(例如,GPS传感器、磁力计、超声传感器)接收到的传感器数据或其组合而执行飞行操作。例如,飞行控制模块1604可以确定要传输至一个或多个推进单元1614(例如,旋翼)的控制信号以便控制无人飞行器的位置、朝向、速度和/或加速度,例如,以供无人飞行器操作,诸如导航、避障等。

  系统1600的部件可以使用各种类型和组合的硬件元件来实现。例如,传感器融合模块1602可以使用任何合适的硬件平台来实现,所述硬件平台包括一个或多个处理器以及储存可由所述一个或多个处理器执行的指令的存储器。系统1600的不同部件之间的连接可以使用各种类型的通信接口来实现,所述通信接口例如为模拟接口或数字接口,诸如USB接口、串行端口、脉宽调制通道或其组合。这样的接口可以利用有线通信方法或无线通信方法。例如,一个或多个图像传感器1608可以经由USB接口耦合至传感器融合模块1602,而一个或多个惯性传感器1606可以经由串行端口耦合至传感器融合模块1606。传感器融合模块1602可以经由串行端口耦合至飞行控制模块1604。飞行控制模块1604可以经由诸如无线电控制(RC)接口等无线通信接口耦合至远程终端1610。飞行控制模块1604可以经由脉宽调制而向一个或多个推进单元1614传输命令。

  在一些实施方式中,如本文所述,传感器融合模块1602用于组合来自一个或多个惯性传感器1606的惯性数据和来自一个或多个图像传感器1608的图像数据。可选地,传感器融合模块1602可以组合来自飞行控制模块1604的内部数据和来自传感器1606、1608的传感器数据,以便估计无人飞行器的状态信息(例如,移动信息,诸如速度或加速度)。传感器融合模块1602可以使用任何合适的计算平台,诸如Jetson TK1(TK1)平台。一个或多个图像传感器1608可以经由USB接口而可通信地耦合至TK1平台。TK1平台可以使用合适的驱动程序来运行任何操作系统,诸如Ubuntu 14.04操作系统。在一些实施方式中,机器人操作系统(ROS)可以用于数据传输。表2提供了传感器融合模块1602的一些示例性硬件部件和软件部件:

  表2:示例性硬件部件和软件部件

  

  

  本文的系统、装置和方法可以利用任何合适数目的图像传感器,诸如一个、两个、三个、四个、五个、六个、七个、八个、九个、10个、15个、20个、30个、40个、50个或更多个图像传感器。多个图像传感器可以同时耦合至成像处理模块的一个或多个处理器,用于例如经由对应数目的通信接口来接收和分析图像数据(例如,以便执行特征点检测和匹配)。然而,在一些实施方式中,某些硬件平台可能不能够支持同时耦合至大量图像传感器(例如,不止六个图像传感器、不止10个图像传感器)。例如,一些图像处理模块可能不包括数目足以使得全部图像传感器可被同时耦合的通信接口。在这样的实施方式中,多个图像传感器可能不在相同时间全部同时地耦合至所述模块。例如,可以使用切换机构在不同时间选择性地将图像传感器的某一子集耦合至所述模块。

  图22图示了根据实施方式的具有可切换耦合的图像传感器的系统2200。系统2200的各个部件可以与本文介绍的其他系统和装置的任何实施方式相结合以及/或者替代本文介绍的其他系统和装置的任何实施方式。系统2200可以与本文描述的任何方法(例如,异步数据收集方案2100)组合使用。系统2200可以包括多个图像传感器子集2202(例如,如本文描绘的n个不同的子集)。可以使用任何数目的图像传感器子集,诸如两个、三个、四个、五个、六个、七个、八个、九个、10个、15个、20个、30个、40个、50个或更多个子集。每个图像传感器子集可以包括任何数目的单个图像传感器,诸如一个、两个、三个、四个、五个、六个、七个、八个、九个、10个、15个、20个、30个、40个、50个或更多个图像传感器。图像传感器子集可以各自包括相同数目的图像传感器。或者,所述图像传感器子集中的一些或全部子集可以包括不同数目的图像传感器。每个图像传感器子集可以耦合至切换机构2204,所述切换机构2204转而耦合至图像处理模块2206。切换机构2204可以包括硬件部件和软件部件(例如,开关、继电器等)的任何合适组合,用于选择性地将传感器子集耦合至模块2206。图像处理模块2206可以用于处理图像数据,以便执行如本文所讨论的特征点检测和/或匹配。在一些实施方式中,图像处理模块2206耦合至传感器融合模块以及/或者是传感器融合模块的部件,所述传感器融合模块用于执行初始化、错误恢复、参数标定和/或状态估计。

  切换机构2204可被配置成一次仅将单个图像传感器子集耦合至图像处理模块2206,以使得图像处理模块2206一次接收和处理来自单一子集的图像数据。为了从系统2200的全部图像传感器获得数据,可以控制切换机构2204来交替选择将哪些子集耦合至图像处理模块2206。例如,可以这样接收图像数据:通过将第一图像传感器子集耦合至模块2206,从所述第一子集接收图像数据,将第二图像传感器子集耦合至模块2206,从所述第二子集接收图像数据,并依此类推,直到接收了来自全部子集的图像。切换机构2204在不同子集之间切换的顺序和频率可以根据需要而改变。这种方法允许从相对大量的图像传感器接收图像数据,而无需图像处理模块2206始终保持与每个传感器的同时连接。这在改进系统灵活性以容纳任何数目的图像传感器(例如,用于即插即用)而同时减少与一次同时处理来自大量传感器的图像数据相关联的计算负荷的方面可以是有利的。

  本文所述的系统、装置和方法可以适用于多种可移动物体。如前文所述,本文对飞行器的任何描述均可适用于和用于任何可移动物体。本发明的可移动物体可被配置成用于在任何合适的环境内移动,诸如在空中(例如,固定翼飞行器、旋翼飞行器或者既不具有固定翼也不具有旋翼的飞行器)、在水中(例如,船舶或潜艇)、在地面上(例如,机动车,诸如轿车、卡车、公交车、厢式货车、摩托车;可移动构造物或框架,诸如棒状物、钓鱼竿;或者火车)、在地下(例如,地铁)、在太空(例如,航天飞机、卫星或探测器),或者这些环境的任何组合。可移动物体可以是载具,诸如本文其他各处所述的载具。在一些实施方式中,可移动物体可以安装在诸如人类或动物等活体身上。合适的动物可以包括禽类、犬类、猫类、马类、牛类、羊类、猪类、海豚、啮齿类或昆虫。

  可移动物体可能能够在所述环境内关于六个自由度(例如,三个平移自由度和三个旋转自由度)而自由移动。或者,可移动物体的移动可能关于一个或多个自由度受到约束,诸如由预定路径、轨迹或朝向所约束。所述移动可以由诸如引擎或电机等任何合适的致动机构所致动。可移动物体的致动机构可以由任何合适的能源提供动力,所述能源诸如为电能、磁能、太阳能、风能、重力能、化学能、核能或者其任何合适的组合。可移动物体可以如本文其他各处所述,经由推进系统而自推进。所述推进系统可以可选地依靠能源运行,所述能源诸如为电能、磁能、太阳能、风能、重力能、化学能、核能或者其任何合适的组合。或者,可移动物体可以由生物所携带。

  在一些情况下,可移动物体可以是载具。合适的载具可以包括水上载具、飞行器、太空载具或地面载具。例如,飞行器可以是固定翼飞行器(例如,飞机、滑翔机)、旋翼飞行器(例如,直升机、旋翼飞机)、同时具有固定翼和旋翼的飞行器或者既无固定翼又无旋翼的飞行器(例如,飞艇、热气球)。载具可以是自推进式,诸如在空中、在水上或水中、在太空中或者在地上或地下自推进。自推进式载具可以利用推进系统,诸如包括一个或多个引擎、电机、轮子、轮轴、磁体、旋翼、螺旋桨、桨叶、喷嘴或者其任何合适组合的推进系统。在一些情况下,推进系统可以用于使可移动物体能够从表面起飞、降落到表面上、保持其当前位置和/或朝向(例如,悬停)、改变朝向和/或改变位置。

  可移动物体可以由用户遥控或者由可移动物体之内或之上的乘员在本地控制。在一些实施方式中,可移动物体是无人的可移动物体,诸如无人飞行器。无人的可移动物体,诸如无人飞行器,可以不具有搭乘所述可移动物体的乘员。可移动物体可以由人类或自主控制系统(例如,计算机控制系统)或者其任何合适的组合来控制。可移动物体可以是自主式或半自主式机器人,诸如配置有人工智能的机器人。

  可移动物体可以具有任何合适的大小和/或尺寸。在一些实施方式中,可移动物体可以具有能容纳人类乘员身处载具之内或之上的大小和/或尺寸。或者,可移动物体可以具有比能够容纳人类乘员身处载具之内或之上的大小和/或尺寸更小的大小/或尺寸。可移动物体可以具有适合于由人类搬运或携带的大小和/或尺寸。或者,可移动物体可以大于适合由人类搬运或携带的大小和/或尺寸。在一些情况下,可移动物体可以具有的最大尺寸(例如,长度、宽度、高度、直径、对角线)小于或等于约:2cm、5cm、10cm、50cm、1m、2m、5m或10m。所述最大尺寸可以大于或等于约:2cm、5cm、10cm、50cm、1m、2m、5m或10m。例如,可移动物体的相对的旋翼的轴之间的距离可以小于或等于约:2cm、5cm、10cm、50cm、1m、2m、5m或10m。或者,相对的旋翼的轴之间的距离可以大于或等于约:2cm、5cm、10cm、50cm、1m、2m、5m或10m。

  在一些实施方式中,可移动物体可以具有小于100cm x 100cm x100cm、小于50cmx 50cm x 30cm或小于5cm x 5cm x 3 cm的体积。可移动物体的总体积可以小于或等于约:1cm3、2cm3、5cm3、10cm3、20cm3、30cm3、40cm3、50cm3、60cm3、70cm3、80cm3、90cm3、100cm3、150cm3、200cm3、300cm3、500cm3、750cm3、1000cm3、5000cm3、10,000cm3、100,000cm3、1m3或10m3。相反地,可移动物体的总体积可以大于或等于约:1cm3、2cm3、5cm3、10cm3、20cm3、30cm3、40cm3、50cm3、60cm3、70cm3、80cm3、90cm3、100cm3、150cm3、200cm3、300cm3、500cm3、750cm3、1000cm3、5000cm3、10,000cm3、100,000cm3、1m3或10m3。

  在一些实施方式中,可移动物体可以具有的占地面积(这可以指由所述可移动物体所包围的横截面面积)小于或等于约:32,000cm2、20,000cm2、10,000cm2、1,000cm2、500cm2、100cm2、50cm2、10cm2或5cm2。相反地,所述占地面积可以大于或等于约:32,000cm2、20,000cm2、10,000cm2、1,000cm2、500cm2、100cm2、50cm2、10cm2或5cm2。

  在一些情况下,可移动物体可以不超过1000kg重。可移动物体的重量可以小于或等于约:1000kg、750kg、500kg、200kg、150kg、100kg、80kg、70kg、60kg、50kg、45kg、40kg、35kg、30kg、25kg、20kg、15kg、12kg、10kg、9kg、8kg、7kg、6kg、5kg、4kg、3kg、2kg、1kg、0.5kg、0.1kg、0.05kg或0.01kg。相反地,所述重量可以大于或等于约:1000kg、750kg、500kg、200kg、150kg、100kg、80kg、70kg、60kg、50kg、45kg、40kg、35kg、30kg、25kg、20kg、15kg、12kg、10kg、9kg、8kg、7kg、6kg、5kg、4kg、3kg、2kg、1kg、0.5kg、0.1kg、0.05kg或0.01kg。

  在一些实施方式中,可移动物体相对于所述可移动物体所携带的负荷可以较小。如下文进一步详述,所述负荷可以包括有效载荷和/或载体。在一些示例中,可移动物体的重量与负荷重量之比可以大于、小于或等于约1∶1。在一些情况下,可移动物体的重量与负荷重量之比可以大于、小于或等于约1∶1。可选地,载体重量与负荷重量之比可以大于、小于或等于约1∶1。当需要时,可移动物体的重量与负荷重量之比可以小于或等于:1∶2、1∶3、1∶4、1∶5、1∶10或者甚至更小。相反地,可移动物体的重量与负荷重量之比还可以大于或等于:2∶1、3∶1、4∶1、5∶1、10∶1或者甚至更大。

  在一些实施方式中,可移动物体可以具有低能耗。例如,可移动物体可以使用小于约:5W/h、4W/h、3W/h、2W/h、1W/h或更小。在一些情况下,可移动物体的载体可以具有低能耗。例如,所述载体可以使用小于约:5W/h、4W/h、3W/h、2W/h、1W/h或更小。可选地,可移动物体的有效载荷可以具有低能耗,诸如小于约:5W/h、4W/h、3W/h、2W/h、1W/h或更小。

  图17图示了根据本发明实施方式的无人飞行器(UAV)1700。所述无人飞行器可以是如本文所述的可移动物体的示例。无人飞行器1700可以包括具有四个旋翼1702、1704、1706和1708的推进系统。可以提供任何数目的旋翼(例如,一个、两个、三个、四个、五个、六个或更多个)。无人飞行器的旋翼、旋翼组件或其他推进系统可使所述无人飞行器能够悬停/保持位置、改变朝向和/或改变位置。相对的旋翼的轴之间的距离可以是任何合适的长度1710。例如,长度1710可以小于或等于2m,或者小于或等于5m。在一些实施方式中,长度1710可以在从40cm到1m、从10cm到2m或者从5cm到5m的范围内。本文对无人飞行器的任何描述均可适用于可移动物体,诸如不同类型的可移动物体,并且反之亦然。

  在一些实施方式中,可移动物体可用于携带负荷。所述负荷可以包括乘客、货物、设备、仪器等之中的一种或多种。所述负荷可以提供在外壳内。所述外壳可以与可移动物体的外壳相分离,或者是可移动物体的外壳的一部分。或者,负荷可以具备外壳,而可移动物体不具有外壳。或者,负荷的一些部分或者整个负荷可以在不具有外壳的情况下提供。负荷可以相对于所述可移动物体刚性固定。可选地,负荷可以是相对于可移动物体可移动的(例如,可以相对于可移动物体平移或旋转)。

  在一些实施方式中,负荷包括有效载荷。所述有效载荷可被配置成不执行任何操作或功能。或者,有效载荷可以是用于执行操作或功能的有效载荷,也称为功能性有效载荷。例如,有效载荷可以包括一个或多个传感器,用于勘测一个或多个目标。任何合适的传感器均可合并到有效载荷中,所述传感器诸如为图像捕捉装置(例如,相机)、音频捕捉装置(例如,抛物面麦克风)、红外成像装置或紫外成像装置。所述传感器可以提供静态感测数据(例如,照片)或动态感测数据(例如,视频)。在一些实施方式中,传感器提供针对有效载荷的目标的感测数据。备选地或组合地,有效载荷可以包括一个或多个发射体,用于向一个或多个目标提供信号。可以使用任何合适的发射体,诸如照明源或声源。在一些实施方式中,有效载荷包括一个或多个收发器,诸如用于与远离可移动物体的模块通信的收发器。可选地,有效载荷可被配置成用于与环境或目标交互。例如,有效载荷可以包括能够操纵物体的工具、仪器或机构,诸如机械臂。

  可选地,负荷可以包括载体。所述载体可被提供用于有效载荷,并且所述有效载荷可经由所述载体直接地(例如,直接接触可移动物体)或间接地(例如,不接触可移动物体)耦合至可移动物体。相反地,有效载荷可在无需载体的情况下安装在可移动物体上。有效载荷可与载体一体形成。或者,有效载荷可以可拆卸地耦合至载体。在一些实施方式中,有效载荷可以包括一个或多个有效载荷元件,并且所述有效载荷元件中的一个或多个可以如上文所述可相对于可移动物体和/或载体移动。

  载体可以与可移动物体一体形成。或者,载体可以可拆卸地耦合至可移动物体。载体可以直接地或间接地耦合至可移动物体。载体可以向有效载荷提供支撑(例如,承载所述有效载荷的重量的至少一部分)。载体可以包括能够稳定和/或引导有效载荷的移动的合适的安装结构(例如,云台平台)。在一些实施方式中,载体可以适于控制有效载荷相对于可移动物体的状态(例如,位置和/或朝向)。例如,载体可被配置成用于相对于可移动物体而移动(例如,关于一个、两个或三个平移自由度以及/或者一个、两个或三个旋转自由度),以使得有效载荷保持其相对于合适的参考系的位置和/或朝向,而与所述可移动物体的移动无关。所述参考系可以是固定参考系(例如,周围环境)。或者,所述参考系可以是移动参考系(例如,可移动物体、有效载荷目标)。

  在一些实施方式中,载体可被配置成用于允许有效载荷相对于载体和/或可移动物体的移动。所述移动可以是关于多达三个自由度的平移(例如,沿着一个、两个或三个轴线),或者是关于多达三个自由度的旋转(例如,围绕一个、两个或三个轴线),或者是其任何合适组合。

  在一些情况下,载体可以包括载体机架组件以及载体致动组件。所述载体机架组件可以向有效载荷提供结构支撑。载体机架组件可以包括单独的载体机架部件,其中一些部件是可相对于彼此移动的。所述载体致动组件可以包括一个或多个致动器(例如,电机),所述致动器致动单个载体机架部件的移动。致动器可以允许多个载体机架部件同时移动,或者可被配置成用于每次允许单一载体机架部件移动。载体机架部件的移动可以产生有效载荷的对应移动。例如,载体致动组件可以致动一个或多个载体机架部件围绕一个或多个旋转轴线(例如,横滚轴线、俯仰轴线或偏航轴线)旋转。所述一个或多个载体机架部件的旋转可以使有效载荷相对于可移动物体围绕一个或多个旋转轴线旋转。备选地或组合地,载体致动组件可以致动一个或多个载体机架部件沿着一个或多个平移轴线平移,并从而产生有效载荷相对于可移动物体沿着一个或多个对应的轴线平移。

  在一些实施方式中,可移动物体、载体和有效载荷相对于固定参考系(例如,周围环境)和/或相对于彼此的移动可以由终端来控制。所述终端可以是处于远离所述可移动物体、载体和/或有效载荷的位置处的遥控装置。终端可以安置于支撑平台上或者固定至支撑平台。或者,终端可以是手持式或可穿戴式装置。例如,终端可以包括智能电话、平板计算机、膝上型计算机、计算机、眼镜、手套、头盔、麦克风或者其合适的组合。终端可以包括用户接口,诸如键盘、鼠标、操纵杆、触摸屏或显示器。任何合适的用户输入均可用于与终端交互,诸如手动输入命令、语音控制、手势控制或位置控制(例如,经由终端的移动、位置或倾斜)。

  终端可以用于控制可移动物体、载体和/或有效载荷的任何合适的状态。例如,终端可以用于控制可移动物体、载体和/或有效载荷相对于固定参考物和/或相对于彼此的位置和/或朝向。在一些实施方式中,终端可以用于控制可移动物体、载体和/或有效载荷的单独元件,诸如载体的致动组件、有效载荷的传感器或者有效载荷的发射体。终端可以包括适于与可移动物体、载体或有效载荷中的一个或多个相通信的无线通信装置。

  终端可以包括用于查看可移动物体、载体和/或有效载荷的信息的合适的显示单元。例如,终端可被配置成用于显示可移动物体、载体和/或有效载荷的信息,所述信息关于位置、平移速度、平移加速度、朝向、角速度、角加速度或其任何合适的组合。在一些实施方式中,终端可以显示由有效载荷提供的信息,诸如由功能性有效载荷提供的数据(例如,由相机或其他图像捕捉装置记录的图像)。

  可选地,同一终端可以同时控制可移动物体、载体和/或有效载荷或者所述可移动物体、载体和/或有效载荷的状态,以及接收和/或显示来自所述可移动物体、载体和/或有效载荷的信息。例如,终端可以控制有效载荷相对于环境的定位,同时显示由有效载荷捕捉的图像数据,或者关于有效载荷的位置的信息。或者,不同的终端可以用于不同的功能。例如,第一终端可以控制可移动物体、载体和/或有效载荷的移动或状态,而第二终端可以接收和/或显示来自可移动物体、载体和/或有效载荷的信息。例如,第一终端可以用于控制有效载荷相对于环境的定位,而第二终端显示由所述有效载荷捕捉的图像数据。可以在可移动物体与同时控制所述可移动物体并接收数据的集成式终端之间,或者在可移动物体与同时控制所述可移动物体并接收数据的多个终端之间利用各种通信模式。例如,可以在可移动物体与同时控制所述可移动物体并从所述可移动物体接收数据的终端之间形成至少两种不同的通信模式。

  图18图示了根据实施方式的包括载体1802和有效载荷1804的可移动物体1800。虽然可移动物体1800被描绘为飞行器,但这样的描绘并不旨在成为限制性的,并且如前文所述可以使用任何合适类型的可移动物体。本领域技术人员将会理解,本文在飞行器系统的情景下描述的任何实施方式均可适用于任何合适的可移动物体(例如,无人飞行器)。在一些情况下,可以在可移动物体1800上提供有效载荷1804而无需载体1802。可移动物体1800可以包括推进机构1806、感测系统1808和通信系统1810。

  如前文所述,推进机构1806可以包括旋翼、螺旋桨、桨叶、引擎、电机、轮子、轮轴、磁体或喷嘴中的一种或多种。例如,如本文其他各处所公开,推进机构1806可以是自紧式旋翼、旋翼组件或其他旋转推进单元。可移动物体可以具有一个或多个、两个或更多个、三个或更多个或者四个或更多个推进机构。推进机构可以全都是同一类型。或者,一个或多个推进机构可以是不同类型的推进机构。推进机构1806可以使用任何合适的装置而安装在可移动物体1800上,所述装置诸如为本文其他各处所述的支撑元件(例如,驱动轴)。推进机构1806可以安装在可移动物体1800的任何合适的部分上,诸如顶部、底部、前面、后面、侧面或其合适的组合。

  在一些实施方式中,推进机构1806可以使得可移动物体1800能够从表面垂直地起飞或者垂直地降落在表面上,而无需可移动物体1800的任何水平移动(例如,无需沿着跑道行进)。可选地,推进机构1806可以可操作而允许可移动物体1800以指定位置和/或朝向悬停于空中。一个或多个推进机构1800可以独立于其他推进机构得到控制。或者,推进机构1800可被配置成同时受到控制。例如,可移动物体1800可以具有多个水平朝向的旋翼,所述旋翼可以向所述可移动物体提供升力和/或推力。可以致动所述多个水平朝向的旋翼以向可移动物体1800提供垂直起飞、垂直降落以及悬停能力。在一些实施方式中,所述水平朝向的旋翼中的一个或多个可以在顺时针方向上旋转,同时所述水平旋翼中的一个或多个可以在逆时针方向上旋转。例如,顺时针旋翼的数目可以等于逆时针旋翼的数目。每个水平朝向的旋翼的旋转速率可独立地改变,以便控制由每个旋翼产生的升力和/或推力,并从而调节可移动物体1800的空间布局、速度和/或加速度(例如,关于多达三个平移自由度和多达三个旋转自由度)。

  感测系统1808可以包括一个或多个传感器,所述传感器可以感测可移动物体1800的空间布局、速度和/或加速度(例如,关于多达三个平移自由度和多达三个旋转自由度)。所述一个或多个传感器可以包括全球定位系统(GPS)传感器、运动传感器、惯性传感器、距离传感器或图像传感器。由感测系统1808提供的感测数据可以用于控制可移动物体1800的空间布局、速度和/或朝向(例如,使用合适的处理单元和/或控制模块,如下文所述)。或者,感测系统1808可以用于提供关于可移动物体周围环境的数据,诸如气象条件、距潜在障碍物的距离、地理特征的位置、人造构造物的位置等。

  通信系统1810支持经由无线信号1816与具有通信系统1814的终端1812的通信。通信系统1810、1814可以包括任何数目的适合于无线通信的发射器、接收器和/或收发器。所述通信可以是单向通信,使得数据只能在一个方向上传输。例如,单向通信可以仅涉及可移动物体1800向终端1812传输数据,或者反之亦然。数据可以从通信系统1810的一个或多个发射器传输至通信系统1812的一个或多个接收器,或者反之亦然。或者,所述通信可以是双向通信,使得数据在可移动物体1800与终端1812之间的两个方向上均可传输。双向通信可以涉及从通信系统1810的一个或多个发射器向通信系统1814的一个或多个接收器传输数据,并且反之亦然。

  在一些实施方式中,终端1812可以向可移动物体1800、载体1802和有效载荷1804中的一个或多个提供控制数据,以及从可移动物体1800、载体1802和有效载荷1804中的一个或多个接收信息(例如,可移动物体、载体或有效载荷的位置和/或运动信息;由有效载荷感测到的数据,诸如由有效载荷相机捕捉的图像数据)。在一些情况下,来自终端的控制数据可以包括针对可移动物体、载体和/或有效载荷的相对位置、移动、致动或控制的指令。例如,控制数据可以导致可移动物体的位置和/或朝向的修改(例如,经由推进机构1806的控制),或者有效载荷相对于可移动物体的移动(例如,经由载体1802的控制)。来自终端的控制数据可以导致对有效载荷的控制,诸如对相机或其他图像捕捉装置的操作的控制(例如,拍摄静态或移动图片、放大或缩小、开启或关闭、切换成像模式、改变图像分辨率、改变聚焦、改变景深、改变曝光时间、改变视角或视野)。在一些情况下,来自可移动物体、载体和/或有效载荷的通信可以包括来自一个或多个传感器(例如,感测系统1808的或有效载荷1804的传感器)的信息。所述通信可以包括来自一种或多种不同类型的传感器(例如,GPS传感器、运动传感器、惯性传感器、距离传感器或图像传感器)的感测到的信息。这样的信息可以关于可移动物体、载体和/或有效载荷的位置(例如,位置、朝向)、移动或加速度。来自有效载荷的这样的信息可以包含由所述有效载荷捕捉的数据或所述有效载荷的感测到的状态。由终端1812提供并传输的控制数据可被配置成用于控制可移动物体1800、载体1802或有效载荷1804中的一个或多个的状态。备选地或组合地,载体1802和有效载荷1804还可以各自包括通信模块,所述通信模块被配置成用于与终端1812通信,以使得所述终端可独立地与可移动物体1800、载体1802和有效载荷1804中的每一个通信和对其加以控制。

  在一些实施方式中,可移动物体1800可被配置成用于与另一远程装置相通信--附加于终端1812或代替终端1812。终端1812也可被配置成用于与另一远程装置以及可移动物体1800通信。例如,可移动物体1800和/或终端1812可以与另一可移动物体或者另一可移动物体的载体或有效载荷通信。当需要时,所述远程装置可以是第二终端或其他计算装置(例如,计算机、膝上型计算机、平板计算机、智能电话或其他移动装置)。远程装置可被配置成用于向可移动物体1800传输数据、从可移动物体1800接收数据、向终端1812传输数据以及/或者从终端1812接收数据。可选地,远程装置可以连接至因特网或其他电信网络,以使得从可移动物体1800和/或终端1812接收的数据可被上传至网站或服务器。

  图19是根据实施方式的用于控制可移动物体的系统1900的框图示意图。系统1900可以与本文所公开的系统、装置和方法的任何合适的实施方式结合使用。系统1900可以包括感测模块1902、处理单元1904、非暂时性计算机可读介质1906、控制模块1908和通信模块1910。

  感测模块1902可以利用以不同方式收集与可移动物体有关的信息的不同类型的传感器。不同类型的传感器可以感测不同类型的信号或来自不同来源的信号。例如,所述传感器可以包括惯性传感器、GPS传感器、距离传感器(例如,激光雷达)或视觉/图像传感器(例如,相机)。感测模块1902可以可操作地耦合至具有多个处理器的处理单元1904。在一些实施方式中,感测模块可以可操作地耦合至传输模块1912(例如,Wi-Fi图像传输模块),所述传输模块被配置成用于向合适的外部装置或系统直接传输感测数据。例如,传输模块1912可以用于向远程终端传输由感测模块1902的相机捕捉的图像。

  处理单元1904可以具有一个或多个处理器,诸如可编程处理器(例如,中央处理单元(CPU))。处理单元1904可以可操作地耦合至非暂时性计算机可读介质1906。非暂时性计算机可读介质1906可以储存可由处理单元1904执行的逻辑、代码和/或程序指令,用以执行一个或多个步骤。非暂时性计算机可读介质可以包括一个或多个存储器单元(例如,可移动介质或外部存储,诸如SD卡或随机存取存储器(RAM))。在一些实施方式中,来自感测模块1902的数据可直接传送至并储存于非暂时性计算机可读介质1906的存储器单元内。非暂时性计算机可读介质1906的存储器单元可以储存可由处理单元1904执行的逻辑、代码和/或程序指令,用以执行本文所述方法的任何合适的实施方式。例如,处理单元1904可被配置成用于执行指令,从而使处理单元1904的一个或多个处理器分析由感测模块产生的感测数据。存储器单元可以储存要由处理单元1904处理的、来自感测模块的感测数据。在一些实施方式中,非暂时性计算机可读介质1906的存储器单元可以用于储存由处理单元1904产生的处理结果。

  在一些实施方式中,处理单元1904可以可操作地耦合至控制模块1908,所述控制模块1908被配置成用于控制可移动物体的状态。例如,控制模块1908可被配置成用于控制可移动物体的推进机构以调节可移动物体关于六个自由度的空间布局、速度和/或加速度。备选地或组合地,控制模块1908可以控制载体、有效载荷或感测模块的状态中的一个或多个。

  处理单元1904可以可操作地耦合至通信模块1910,所述通信模块1910被配置成用于传输和/或接收来自一个或多个外部装置(例如,终端、显示装置或其他遥控器)的数据。可以使用任何合适的通信手段,诸如有线通信或无线通信。例如,通信模块1910可以利用局域网(LAN)、广域网(WAN)、红外线、无线电、WiFi、点对点(P2P)网络、电信网络、云通信等之中的一种或多种。可选地,可以使用中继站,诸如塔、卫星或移动台。无线通信可以依赖于距离或独立于距离。在一些实施方式中,通信可能需要或者可能不需要视线。通信模块1910可以传输和/或接收来自感测模块1902的感测数据、由处理单元1904产生的处理结果、预定控制数据、来自终端或遥控器的用户命令等之中的一个或多个。

  系统1900的部件可以按任何合适的配置来布置。例如,系统1900的一个或多个部件可以位于可移动物体、载体、有效载荷、终端、感测系统或者与上述的一个或多个相通信的附加外部装置上。此外,虽然图19描绘了单一处理单元1904和单一非暂时性计算机可读介质1906,但本领域技术人员将会理解,这并不旨在成为限制性的,并且系统1900可以包括多个处理单元和/或非暂时性计算机可读介质。在一些实施方式中,多个处理单元和/或非暂时性计算机可读介质中的一个或多个可以位于不同的位置处,诸如在可移动物体、载体、有效载荷、终端、感测模块、与上述的一个或多个相通信的附加外部装置上或者其合适的组合,以使得由系统1900执行的处理和/或存储器功能的任何合适的方面可以发生于一个或多个上述位置处。

  本文中使用的A和/或B包含A或B中的一个或多个以及其组合,诸如A和B。

  虽然本文已经示出和描述了本发明的优选实施方式,但对于本领域技术人员显而易见的是,这样的实施方式只是以示例的方式提供的。本领域技术人员现将会在不偏离本发明的情况下想到许多更改、改变和替代。应当明白,在实践本发明的过程中可以采用对本文所述的本发明实施方式的各种替代方案。本文所述的实施方式的许多不同组合是可能的,并且这样的组合被认为是本公开内容的一部分。此外,结合本文中任一实施方式所讨论的全部特征均可容易地适于在本文的其他实施方式中使用。所附权利要求旨在限定本发明的范围,并因此覆盖这些权利要求及其等效项的范围内的方法和结构。

《使用传感器融合估计可移动物体的状态信息的方法及系统.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)