在无人飞行器与地面载具之间共享绘图数据的技术

文档序号:1358256 发布日期:2020-07-24 浏览:16次 >En<

阅读说明:本技术 在无人飞行器与地面载具之间共享绘图数据的技术 (Techniques for sharing drawing data between an unmanned aerial vehicle and a ground vehicle ) 是由 王铭钰 于 2019-03-08 设计创作,主要内容包括:一种用于在多个载具之间共享传感器信息的系统,包括第一计算设备和第一扫描传感器(118,124,126)在内的飞行器(104);以及包括第二计算设备和第二扫描传感器(130,132,134)在内的地面载具(110)。飞行器(104)可以使用第一扫描传感器(118,124,126)来获取第一扫描数据,并向第二计算设备发送第一扫描数据。地面载具(110)可以从第一计算设备接收第一扫描数据;从第二扫描传感器(130,132,134)获取第二扫描数据;基于扫描数据中的至少一个参考物体(202)来识别第一扫描数据和第二扫描数据的重叠部分;并且基于在第一扫描数据和第二扫描数据的重叠部分中识别出的一个或多个道路物体,执行导航控制命令。公开了一种用于在飞行器中共享传感器信息的方法,一种非暂时性计算机可读存储介质以及一种用于生成地图的系统。(A system for sharing sensor information between a plurality of vehicles, an aircraft (104) including a first computing device and a first scanning sensor (118, 124, 126); and a ground vehicle (110) including a second computing device and a second scanning sensor (130, 132, 134). The aircraft (104) may acquire first scan data using the first scan sensor (118, 124, 126) and transmit the first scan data to the second computing device. The ground vehicle (110) may receive first scan data from a first computing device; acquiring second scan data from a second scan sensor (130, 132, 134); identifying overlapping portions of the first scan data and the second scan data based on at least one reference object (202) in the scan data; and executing the navigation control command based on the one or more road objects identified in the overlapping portion of the first scan data and the second scan data. A method for sharing sensor information in an aircraft, a non-transitory computer-readable storage medium, and a system for generating a map are disclosed.)

在无人飞行器与地面载具之间共享绘图数据的技术

相关申请的交叉引用

本申请涉及于_____提交的题为“无人飞行器和地面载具之间的协作地图构建技术”(代理人案卷号1013P1148PCT)的国际申请_____,通过引用将其并入本文。

技术领域

所公开的实施例总体上涉及用于绘图和物体检测的技术,并且更具体地但非排他地涉及用于在无人飞行器与地面载具之间共享绘图数据的技术。

背景技术

可移动物体(包括无人飞行器(UAV)之类的飞行器、以及自主载具和驾驶载具之类的地面载具)可用于执行监视、侦察和探索任务以用于各种应用。可移动物体可以包括包括各种传感器在内的搭载物,其使得可移动物体能够在可移动物体的运动期间捕获传感器数据。可以在客户端设备(例如经由远程控制器、远程服务器或其他计算设备与可移动物体通信的客户端设备)上查看捕获的传感器数据。由于传感器安装到可移动物体的方式以及可移动物体的定位,可被传感器捕获的传感器数据可能受到限制(例如,在视野、视图角度等方面)。尽管视角变换可以用于改变传感器数据的视角,但是这样的变换会需要密集的处理并且将失真引入到经变换的数据中。当在各种应用中使用时,这限制了这种经变换的数据的可靠性。

发明内容

公开了一种用于在多个载具之间共享传感器信息的技术。一种用于在多个载具之间共享传感器信息的系统,可以包括:包括第一计算设备和第一扫描传感器在内的飞行器;以及包括第二计算设备和第二扫描传感器在内的地面载具。飞行器可以使用第一扫描传感器来获取第一扫描数据,并向第二计算设备发送第一扫描数据。地面载具可以从第一计算设备接收第一扫描数据;从第二扫描传感器获取第二扫描数据;基于扫描数据中的至少一个参考物体来识别第一扫描数据和第二扫描数据的重叠部分;并且基于在第一扫描数据和第二扫描数据的重叠部分中识别出的一个或多个道路物体,执行导航控制命令。

附图说明

图1示出了根据各种实施例的飞行器和地面载具的示例。

图2A至图2C示出了根据各种实施例的从飞行器和地面载具获取的道路环境的扫描数据的示例。

图3示出了根据各种实施例的扫描管理器和检测管理器的示例。

图4示出了根据各种实施例的用于道路物体检测的机器学习模型的示例。

图5示出了根据各种实施例的在可移动物体环境中的多个载具之间共享传感器信息的方法的流程图。

图6示出了根据各种实施例的飞行器和地面载具的示例。

图7示出了根据各种实施例的使用飞行器和地面载具生成可移动物体环境的地图的示例。

图8示出了根据各种实施例的使用飞行器和地面载具生成可移动物体环境的地图的替代示例。

图9示出了根据各种实施例的由飞行器绘图管理器和地面载具绘图管理器进行的协作地图构建的示例。

图10示出了根据各种实施例的可移动物体环境中的协作地图构建的方法的流程图。

图11示出了根据各种实施例的在软件开发环境中支持可移动物体接口的示例。

图12示出了根据各种实施例的无人飞行器接口的示例。

图13示出了根据各种实施例的软件开发工具包(SDK)中针对无人飞行器的部件的示例。

具体实施方式

在附图的图中通过示例而非限制的方式示出本发明,在附图中,相同的附图标记表示相似的元件。应当注意到:在本公开中针对“实施例”或“一个实施例”或“一些实施例”的引用不一定指的是相同实施例,且这种引用意味着至少一个实施例。

本发明的以下描述描述了针对可移动物体的位置访问管理。为了简化说明,通常使用无人飞行器(UAV)作为可移动物体的示例。对于本领域技术人员显而易见的是,可以使用其他类型的可移动物体而没有限制。

自动驾驶技术可以包括各种感测、确定和执行任务,例如环境感测、路径规划、行为确定和控制执行。关于感测,自动驾驶载具可以基于由安装在载具上的一个或多个传感器收集的数据来分析其周围环境,所述传感器包括例如视觉传感器、LiDAR传感器、毫米波雷达传感器、超声传感器等。可以使用图像处理工具、机器学习技术等对传感器数据进行分析,以确定深度信息和语义信息,从而帮助载具识别周围的人和物体。此外,LiDAR传感器为载具提供准确的较长的距离测量值和定位数据。

由于传感器被安装到载具,因此存在传感器的视野和视角限制。例如,当分析行驶车道时,图像数据可以由前置相机捕获,并且可以通过将图像数据的前视角投影到鸟瞰图(例如,俯视视角)来变换图像数据的视角。这种投影引入失真,从而导致图像数据的准确性损失。透视效果导致图像数据中表示的车道线和其他物体离成像传感器越远而越收敛。这样,通过前置相机(或其他成像传感器)可以清晰识别出的载具前方环境的长度受到限制。因此,在视角变换之后,车道标记和其他较远的物体通常会相对模糊。取决于用于获取图像数据的鸟瞰图的投影类型,图像中表示离成像传感器越远的物体的部分可以变得越失真,从而难以可靠地应用图像处理技术,例如Canny边缘检测、二进制图像分析和其他技术来识别图像数据中的车道标记和其他物体。

此外,视角变换操作要求特定的相机有效,即使如此,也必须在可以对图像进行变换之前准备好图像。此外,相机被安装在载具上的方式以及当前道路状况(例如道路角度)将对变换的可靠性以及基于变换的图像的任何分析产生重大影响。另外,诸如用于获取二进制图像的技术之类的技术需要可能通常不适用于大多数道路状况(例如,天气状况、已失修的道路、以及可能会降低某些道路物体(例如车道标记)的可见性的其他道路状况)的梯度和颜色阈值。所有这样的分析也都需要能够被快速执行,但是传统技术可以处理约4.5帧每秒(FPS),而车载相机的帧数可以为30FPS或更高。在一些实施例中,当车辆在道路上行驶时,其可以使用相机来捕获道路环境的图像。这些图像可以包括其他附近车辆、树木、灯杆、标志和其他附近物体的表示。在现有系统中,可以将这些图像从向前视角视图变换为俯视图,然后可以将其用于生成局部地图。然而,由于相机安装在车辆前部的方式,因此相机的视野有限。当将这些图像变换为俯视图时,变换引入不准确,例如模糊或其他失真。而且,如上所述,变换本身需要额外的时间和处理资源。由于经变换的图像中的不准确,因此基于这些图像生成的所得地图也不太准确且可用性较低。这也限制了依赖于这些图的功能(例如车道检测和其他辅助驾驶功能)的可用性和/或可靠性。作为仅依赖于变换的图像的替代,实施例可以使用由无人机或其他无人飞行器(UAV)(其可以直接捕获俯视图像)捕获的图像,而没有任何变换或相关的不准确。然后,车辆可以使用其自身的图像以及由无人机收集的图像来生成地图,从而减少或消除了由变换引入的潜在不准确。同样地,可以更有效地生成地图,而不需要花费时间或资源来变换图像。

实施例通过使用飞行器收集数据并将数据发送到地面载具以用于物体检测和其他导航任务,来改善环境数据的数据收集和处理。例如,飞行器可以捕获道路环境的鸟瞰图,并将其提供给地面载具进行处理。因为鸟瞰图是直接从飞行器获取的,所以不需要视角变换,因此数据不具有由视角变换引起的失真。在各种实施例中,地面载具可以使用由飞行器捕获的扫描数据(例如,图像数据、点云数据等)来执行自主驾驶功能和/或辅助驾驶功能。例如,地面载具可以使用从飞行器接收到的扫描数据来执行车道检测。可以根据公知方式进行车道检测,例如,通过使用例如Canny边缘检测来识别扫描数据中指示车道边界的车道标记。另外地或备选地,可以执行二进制图像分析。通过使用梯度和颜色阈值可以获取二进制图像。可以分析扫描数据中的每个像素,并且当像素的值高于阈值时,可以将该像素设置为1,以及当像素低于阈值时,可以将该像素设置为0。可以在所得的二进制图像上运行滑动窗口,以计算多项式曲线来拟合二进制图像中表示的车道。因为从飞行器接收到的扫描数据没有经变换,并且因此没有由于视角变换而失真,所以对该扫描数据执行的车道检测提供更准确的车道检测结果。另外,由于不需要视角变换,因此可以更快地处理图像数据。

图1示出了根据各种实施例的可移动物体环境100中的可移动物体的示例。如图1所示,可移动物体环境100中的客户端设备110可以经由通信链路106与可移动物体104通信。可移动物体104可以是无人飞行器、无人驾驶载具、手持设备和/或机器人。客户端设备110可以是便携式个人计算设备、智能电话、遥控器、可穿戴计算机、虚拟现实/增强现实系统、个人计算机和/或包括在另一载具(例如地面载具111,例如自主载具、无人驾驶载具、有人驾驶载具等)中的计算设备。在一些实施例中,客户端设备可以从地面载具111中移除。例如,客户端设备可以是便携式个人计算设备(例如智能电话、平板电脑或其他便携式设备),用户可以经由有线或无线通信接口将便携式个人计算设备附接到地面载具。另外,地面设备111可以包括通信系统120A,其负责处理经由通信系统120B在客户端设备110与可移动物体104之间的通信。例如,无人飞行器可以包括上行链路和下行链路。上行链路可以用于发送控制信号,下行链路可以用于发送媒体或视频流。

根据各种实施例,通信链路106可以是网络(网络的一部分),其基于各种无线技术,例如WiFi、蓝牙、3G/4G/5G和其他射频技术。此外,通信链路106可以基于其他计算机网络技术,例如互联网技术,或任何其他有线或无线联网技术。在一些实施例中,通信链路106可以是非网络技术,包括直接的点对点连接,例如通用串行总线(USB)或通用异步收发器(UART)。

在各种实施例中,可移动物体环境100中的可移动物体104可以包括载体122和搭载物123,诸如扫描传感器124。在一些情况下,搭载物123可以设置在可移动物体104上,而不需要载体。在各种实施例中,搭载物123可以包括一个或多个高带宽部件例,如扫描传感器124、一个或多个相机、立体视觉模块或其他搭载物。计算设备112可以经由UART和/或USB连接到飞行控制器114,以经由通信系统120B向客户端设备发送数据和从客户端设备接收数据。在各种实施例中,计算设备112可以包括一个或多个CPU、GPU、现场可编程门阵列(FPGA)、片上系统(SoC)或其他(一个或多个)处理器。在一些实施例中,飞行控制器114和计算设备112可以被实现为单独的设备(例如,单独的电路板上的单独的处理器)。备选地,飞行控制器114和计算设备112中的一个或多个可以被实现为单个设备,例如SoC。在各种实现为例中,计算设备112可以从可移动物体移除。

尽管可移动物体104通常被描述为飞行器,但是这不是限制性的,并且可以使用任何合适类型的可移动物体。本领域技术人员将理解,本文中在飞行器系统的背景下描述的任何实施例可以应用于任何合适的可移动物体(例如,UAV)。如本文中所使用的,“飞行器”可以用来指代能够飞行的可移动物体的子集(例如,飞行器、UAV等),而“地面载具”可以用来指代在地面上行驶的可移动物体的子集(例如,由驾驶员手动控制和自主控制的汽车和卡车)。

根据各种实施例,可移动物体104可以包括一个或多个移动机构116(例如,推进机构)、感测系统118和通信系统120B。移动机构116可以包括旋翼、螺旋桨、叶片、发动机、电机、轮子、轴、磁体、喷嘴、动物或人类中的一个或多个。例如,可移动物体可以具有一个或多个推进机构。移动机构可以都是相同的类型。备选地,移动机构可以是不同类型的移动机构。移动机构116可以使用诸如支撑元件(例如,驱动器轴)之类的任何合适装置安装在可移动物体104上(反之亦然)。移动机构116可以安装在可移动物体104的任何合适的部分上,例如顶部、底部、前部、后部、侧面或其合适的组合。

在一些实施例中,移动机构116可以使可移动物体104能够垂直地从表面起飞或垂直地降落在表面上,而不需要可移动物体104的任何水平移动(例如,无需沿着跑道行进)。可选地,移动机构116可以可操作地允许可移动物体104以特定位置和/或取向悬停在空中。可以通过例如在客户端设备110、计算设备112或与移动机构通信的其他计算设备上执行的应用,使移动机构116中的一个或多个独立于其他移动机构受到控制。备选地,移动机构116可以被配置为同时受到控制。例如,可移动物体104可以具有多个水平取向的旋翼,其可以向可移动物体提供升力和/或推力。可以致动多个水平朝向的旋翼以向可移动物体104提供垂直起飞、垂直着陆和悬停能力。在一些实施例中,水平取向旋翼中的一个或多个可以沿顺时针方向旋转,而水平取向旋翼中的一个或多个可以沿逆时针方向旋转。例如,顺时针旋翼的数量可以等于逆时针旋翼的数量。为了控制由每个旋翼产生的升力和/或推力,从而调节可移动物体104(例如,相对于高达三个平移度和高达三个旋转度)的空间布置、速度和/或加速度,可以独立地改变每个水平取向的旋翼的转速。如本文中进一步讨论的,诸如飞行控制器114之类的控制器可以向移动机构116发送移动命令以控制可移动物体104的移动。这些移动命令可以基于从客户端设备110、计算设备112或其他实体接收的指令,和/或从客户端设备110、计算设备112或其他实体接收的指令导出。

感测系统118可以包括可感测可移动物体104(例如,相对于各个平移度和各个旋转度)的空间布置、速度和/或加速度的一个或多个传感器。一个或多个传感器可以包括GPS传感器、运动传感器、惯性传感器、近距离传感器或成像传感器(例如相机)中的任一个传感器。感测系统118提供的感测数据可用于(例如,使用合适的处理单元和/或控制模块)控制可移动物体104的空间布置、速度和/或取向。备选地,感测系统118可用于提供关于可移动物体周围的环境的数据,例如天气条件、接近潜在障碍物、地理特征的位置、人造结构的位置等。

飞行控制器114可以连接到各种功能模块108,例如磁力计、气压计和惯性测量单元(IMU)。在一些实施例中,通信系统120B可以连接至计算设备112,而不连接至飞行控制器114,或者还同时连接至飞行控制器114。在一些实施例中,由一个或多个功能模块108和感测系统118收集的传感器数据可以从飞行控制器传递到计算设备112。在一些实施例中,计算设备112可以经由诸如以太网或通用串行总线(USB)的高带宽连接而连接至扫描传感器124。在一些实施例中,感测系统可以包括定位传感器。定位传感器可以包括无线电,例如4G、5G或其他蜂窝或移动网络无线电。实时运动学(RTK)模块可以使用无线电来增强由全球导航卫星服务(GNSS)模块(例如GPS、GLOSNASS、Galileo、北斗等)收集的定位数据。RTK模块可以使用无线电从参考站接收参考信号,并对GNSS模块提供的定位数据进行校正。

如图1所示,地面载具111还可以包括耦合到客户端设备110的一个或多个传感器。在一些实施例中,这些传感器可以包括扫描传感器130和扫描传感器132。扫描传感器130和132可以包括LiDAR传感器、高清晰度成像传感器(例如,静态相机或视频相机)、或提供对目标环境的高分辨率扫描的其他传感器。如图1所示,扫描传感器130可以耦合到地面载具111上的上部位置。扫描传感器130被定位为捕获地面载具周围的环境的扫描数据。例如,可以将LiDAR传感器配置为收集表示载具的周围环境的360度视图的点云数据。类似地,高清晰度成像传感器可以收集地面载具周围的环境的图像数据(例如,静止图像和视频)。扫描传感器132可以在向前位置处耦合至地面载具111,以直接捕获在地面载具前方的环境的扫描数据。例如,扫描传感器132可以收集与地面载具正行驶的道路环境有关的扫描数据(例如,识别道路物体(例如,道路环境中存在的车道标记、其他载具、树木和其他物体)、驾驶状况(例如天气状况)、交通信息(包括与附近载具有关的信息)、道路信息(例如道路类型、地面状况等))。在一些实施例中,地面载具111还可以包括定位传感器134。在一些实施例中,定位传感器可以包括全球导航卫星服务(GNSS)模块,例如GPS、GLOSNASS、Galileo、北斗等。定位传感器134可以包括无线电,例如4G、5G或其他蜂窝或移动网络无线电。实时运动学(RTK)模块可以使用无线电,以增强GNSS模块收集的定位数据。RTK模块可以使用无线电从参考站接收参考信号,并对GNSS模块提供的定位数据进行校正。

通信系统120B使得能够经由通信链路106与客户端设备110和通信系统120A进行通信,该通信链路106可以包括如上所述的各种有线和/或无线技术。通信系统120A或120B可以包括适合于无线通信的任何数量的发射器、接收器和/或收发器。通信可以是单向通信,使得数据只能沿一个方向发送。例如,单向通信可以仅涉及可移动物体104将数据发送给客户端设备110,反之亦然。可以从客户端设备的通信系统120A的一个或多个发射器向可移动物体的通信系统120B的一个或多个接收器发送数据,反之亦然。备选地,所述通信可以是双向通信,使得可以在可移动物体104和客户端设备110之间的两个方向上发送数据。双向通信可以涉及从通信系统120B的一个或多个发射器向客户端设备110的通信系统120A的一个或多个接收器发送数据,反之亦然。

在一些实施例中,客户端设备110可以通过通信链路106的透明传输信道与安装在计算设备112上的扫描管理器126通信。可以通过可移动物体的飞行控制器来提供透明传输信道,其允许数据不变地(例如,“透明地”)传递到计算设备112上的扫描管理器或其他应用。在一些实施例中,图像管理器126可以利用软件开发工具包(SDK)、应用编程接口(API)或由可移动物体、计算设备、扫描传感器124等提供的其他接口。在各种实施例中,扫描管理器可以由可移动物体104上的一个或多个处理器(例如,飞行控制器114或其他处理器)、计算设备112、遥控器111、客户端设备110或与可移动物体104通信的其他计算设备来实现。在一些实施例中,扫描管理器126可以被实现为在客户端设备110、计算设备112或与可移动物体104通信的其他计算设备上执行的应用。

在一些实施例中,在客户端设备110或计算设备112(例如检测管理器128或扫描管理器126)上执行的应用可以向可移动物体104、载体122和搭载物124中的一个或多个提供控制数据,并且从可移动物体104、载体122和搭载物124中的一个或多个接收信息(例如,可移动物体、载体或搭载物的位置和/或运动信息;由搭载物感测的数据,例如由有效搭载相机捕获的图像数据);以及根据由有效搭载相机捕获的图像数据生成的数据)。在一些实施例中,应用可以使得控制数据基于从扫描传感器130和/或扫描传感器132接收的扫描数据。

在一些实施例中,控制数据可以(例如,经由移动机构116的控制)导致可移动物体的定位和/或取向的修改,和/或(例如,经由载体122的控制)导致搭载物相对于可移动物体的移动。来自应用的控制数据可以导致对搭载物的控制,例如对扫描传感器124、相机或其他图像捕获设备的操作的控制(例如,拍摄静止图片或移动图片、放大或缩小、打开或关闭、切换成像模式、改变图像分辨率、改变焦点、改变景深、改变曝光时间、改变视角或视野)。

在某些实例中,来自可移动物体、载体和/或搭载物的通信可以包括来自(例如,感测系统118、或扫描传感器124或搭载物的)一个或多个传感器的信息和/或基于感测信息生成的数据。通信可以包括来自一个或多个不同类型的传感器(例如,GPS传感器、运动传感器、惯性传感器、接近度传感器或成像传感器)的感测信息。这样的信息可以涉及可移动物体、载体和/或搭载物的位置(例如定位、取向)、移动或加速度。来自搭载物的这种信息可以包括由搭载物捕获的数据或搭载物的感测状态。

在一些实施例中,可以将计算设备112添加到可移动物体。计算设备可以由可移动物体提供动力,并且可以包括一个或多个处理器,例如CPU、GPU、现场可编程门阵列(FPGA)、片上系统(SoC)、专用集成电路(ASIC)或其他处理器。计算设备可以包括操作系统(OS),例如基于的操作系统或其他OS。任务处理可以从飞行控制器114卸载到计算设备112。在各种实施例中,扫描管理器115可以在计算设备112、客户端设备110、搭载物124、远程服务器(未示出)或其他计算设备上执行。在一些实施例中,计算设备112和客户端设备110可以是同一设备。

如所讨论的,可以使用诸如单应性的视角变换技术将由地面载具上的扫描传感器130收集的图像数据变换为鸟瞰图。这导致鸟瞰图失真,其可能丢失各种道路物体的细节,例如车道标记的平行性、模糊的标记等,这可能导致识别地面载具111所行驶的车道时出错。作为依赖于将正视图像变换成鸟瞰图的替代,实施例可以利用从可移动物体104获取的鸟瞰图扫描数据。在一些实施例中,扫描管理器126可以用于从地面载具111所位于的道路环境收集扫描数据。在一些实施例中,扫描数据可以包括在地面载具111前方或周围的道路的图像数据。可以在由客户端设备110指示的位置处或附近收集扫描数据(例如,卫星导航系统坐标、相对于地面载具的位置等)。可以由扫描管理器126向地面载具111的检测管理器128发送图像数据。

在一些实施例中,检测管理器可以从扫描传感器130获取扫描数据。来自扫描传感器130的扫描数据可以包括来自前置扫描传感器130的正视图像数据。在一些实施例中,扫描传感器130可以被安装到地面载具111,以捕获后视图像数据、侧视图像数据、仰视图像数据或任何合适的方向上的图像数据。检测管理器128可以使用扫描数据中的参考物体来识别从可移动物体和地面载具接收到的扫描数据的重叠部分。参考物体可以包括道路环境中的路标、灯杆、树木或其他可识别物体。在一些实施例中,参考物体可以是道路环境中的与扫描数据中对应的点相对应的坐标(例如,GPS坐标)。这些坐标可以表示能被地面载具和飞行器两者看到的任何点,例如可移动物体104的正下方的点。与经变换的向前视角(例如,正视)扫描数据相比,因为由可移动物体捕获的扫描数据不包括任何与变换有关的失真,所以该扫描数据可以用于对地面载具111前方较长的距离执行车道检测)。在一些实施例中,正视图像数据可以被变换成俯视图(例如,鸟瞰图),并且可以识别出由可移动物体捕获的扫描数据和经变换的鸟瞰图之间的重叠部分。然后,可以使用可移动物体捕获的扫描数据基于重叠部分来校准经变换的鸟瞰图。在各种实施例中,可以使用扫描匹配技术、特征匹配或其他对齐技术来对齐扫描数据并识别重叠部分。

图2A至图2C示出了根据各种实施例的从飞行器和地面载具获取的道路环境的扫描数据的示例。如图2A所示,道路环境200可以包括在道路上行驶的地面载具和在道路上方飞行的飞行器。如所讨论的,每个载具可以包括一个或多个扫描传感器以从道路环境收集扫描数据。扫描数据的一种用途是执行各种自主驾驶和/或辅助驾驶功能,例如车道检测。

如所讨论的,地面载具111上的扫描传感器捕获的扫描数据可以从载具视角被捕获,如图2B中的206所示。如图2B所示,载具视角导致车道会聚。可以使用视角变换技术将载具视角变换为鸟瞰图视角。然而,这可能导致扫描数据失真。例如,取决于所使用的视角变换,道路环境200中离地面载具的扫描传感器较远的部分可能变得模糊,并且在经变换的扫描数据中可能不再平行。取决于所使用的车道检测技术,这些失真可能导致车道被错误识别。同样,其他道路物体(例如其他载具、标志、树木等环境障碍物)和其他此类物体也可能在经变换的图像数据中被错误识别。

然而,根据一个实施例,如在208处所示,可以直接从飞行器104获取车道环境200的鸟瞰图。从飞行器获取的扫描数据不需要进行变换来以鸟瞰图显示道路环境。这样,扫描数据不具有由视角变换引起的失真。

因此,在各种实施例中,地面载具111可以使用由飞行器104捕获的扫描数据(例如,图像数据、点云数据等)来执行自主驾驶和/或辅助驾驶功能。例如,地面载具可以使用从飞行器接收到的扫描数据来执行车道检测。可以根据公知方式进行车道检测,例如,通过使用例如Canny边缘检测来识别扫描数据中指示车道边界的车道标记。另外地或备选地,可以执行二进制图像分析。通过使用梯度和颜色阈值可以获取二进制图像。可以分析扫描数据中的每个像素,并且当像素的值高于阈值时,可以将该像素设置为1,以及当像素低于阈值时,可以将该像素设置为0。可以在所得的二进制图像上运行滑动窗口,以计算多项式曲线来拟合二进制图像中表示的车道。因为从飞行器接收到的扫描数据没有经变换,并且因此没有由于视角变换而失真,所以对该扫描数据执行的车道检测提供更准确的车道检测结果。

可以校准从地面载具接收到的扫描数据,以利用通过分析从飞行器接收到的扫描数据而获取的更准确的车道检测信息。例如,如图2A至图2C所示,可以选择飞行器和地面载具两者都可观察到的参考物体202以执行校准。参考物体202可以是道路环境中的物理物体,例如树木(如所示出)、路标、杆或固定的道路物体。附加地或备选地,参考物体202可以是道路环境中的点204(例如,特定的GPS坐标)。例如,如图2A所示,参考物体可以是在飞行器的正下方的点204(例如,全局位置、或相对于地面载具或飞行器的位置)。

如图2B所示,可以在载具扫描数据中识别参考物体202。参考物体可以与扫描数据中的坐标相关联(例如,基于像素的图像坐标系)。例如,图2B所示的示例正视图是道路环境200在二维图像平面上的投影。使用地面载具的扫描传感器的固有参数(例如,焦距、镜头参数等)和外部参数(例如,位置、取向等),可以使用投影矩阵将二维图像平面的图像坐标系转换为三维车道环境的世界坐标系。类似地,可以使用视角变换将正视图像平面转换为鸟瞰图像平面。这些变换允许将经变换的鸟瞰图中的位置映射到正视图和道路环境200。对于物理参考物体,可以识别代表扫描数据中的参考物体的像素。在一些实施例中,诸如物体识别之类的图像处理技术和/或机器学习技术可以用于识别扫描数据中的参考物体。可以基于扫描数据将表示扫描数据中的参考物体的像素映射到经变换的鸟瞰图。

如所讨论的,参考物体可以是在道路环境中在飞行器的正下方或其他点的位置。飞行器可以使用诸如全球导航卫星服务(GNSS)传感器例如GPS、北斗等之类的定位传感器来确定飞行器的位置。参考物体的位置可以是标高值为零(或设置为另一值,例如地面载具的标高值)的飞行器的位置。在一些实施例中,飞行器可以将其位置提供给地面载具。在一些实施例中,地面载具可以使用耦合到地面载具的一个或多个传感器来识别飞行器相对于地面载具位置的位置。传感器可以包括红外测距仪、超声波测距仪、雷达传感器、LiDAR传感器等。地面载具可以使用传感器数据来确定飞行器相对于地面载具的位置。地面载具可以包括用于确定地面载具的当前位置的GNSS传感器。使用地面载具的当前位置和飞行器的相对位置,地面载具可以确定飞行器在道路环境的世界坐标系中的位置。如所讨论的,地面载具可以将世界坐标系中的位置转换为正视图像206的图像坐标系。一旦转换为图像坐标系,地面载具就可以将位置从图像坐标系映射到经变换的鸟瞰图坐标系。

在一些实施例中,当飞行器发送其鸟瞰图208时,地面载具可以基于由地面载具捕获的正视图206来识别由飞行器捕获的鸟瞰图208和经变换的鸟瞰图的重叠部分。例如,参考物体在两个图像中的位置可用于对齐两个图像和/或将飞行器的扫描数据映射到地面载具的扫描数据。在一些实施例中,飞行器可以提供比地面载具的扫描数据所显示的在地面载具前方延伸得更远的扫描数据。因此,地面载具可以使用利用参考物体对齐的来自飞行器的扫描数据来扩展其道路环境的视图。

在一些实施例中,地面载具111可以使用绝对坐标(例如,使用全球导航卫星服务坐标)或相对于地面载具的位置来指示飞行器在道路环境中的特定位置处或附近捕获扫描数据。例如,地面载具可以向地面载具前方100米位置处的飞行器发送控制数据。飞行器可以处理控制数据,并且飞行器可以生成移动命令,该移动命令被发送到飞行器的移动机构116,使得飞行器行进到所指示的位置。然后,飞行器可以在所指示的位置捕获扫描数据,并将扫描数据发送到地面载具以进行进一步处理。

图3示出了根据各种实施例的扫描管理器和检测管理器的示例300。如图3所示,扫描管理器126可以在计算设备112的一个或多个处理器302上执行。一个或多个处理器302可以包括CPU、GPU、FGPA、SoC或其他处理器。扫描管理器126可以包括传感器接口303和捕获管理器308。

传感器接口303可以包括扫描传感器接口304和定位传感器接口306。传感器接口303可以包括硬件和/或软件接口。扫描传感器接口304可以从扫描传感器(例如,成像设备、LiDAR传感器或其他扫描传感器)接收数据,并且定位传感器接口306可以从定位传感器(例如,GNSS传感器、RTK传感器等)接收数据。在各种实施例中,扫描传感器可以产生点云格式的数据。点云数据可以是目标环境的三维表示。在一些实施例中,点云数据可以被转换成矩阵表示。在一些实施例中,扫描传感器可以产生图像数据,例如飞行器正行进的道路环境的高清晰度图像和/或视频。定位数据可以包括用于飞行器的GPS坐标。

在一些实施例中,可以从客户端设备110接收指示飞行器移动到特定位置的控制数据。可以经由通信系统120B接收控制数据,并将控制数据直接发送至飞行控制器114,用于生成移动命令以使飞行器移动至所指示的位置。在一些实施例中,控制数据或至少所指示的位置可以由通信系统120B或飞行控制器114传递给捕获管理器308。捕获管理器308可以包括位置监视器310,其基于通过定位传感器接口306接收的位置信息来监视飞行器的当前位置。位置监视器310可以进一步将所指示的位置与飞行器的当前位置进行比较。例如,位置监视器可以实现硬件或软件逻辑以比较两个输入值(例如,飞行器的当前坐标和飞行器的目标坐标),并输出指示两个输入值是否匹配的二进制值。如果两个输入值匹配,则可以将信号发送到扫描触发器312,扫描触发器312之后可以经由扫描传感器接口304向扫描传感器发送指令以使扫描传感器捕获道路环境的扫描数据。如所讨论的,这可以包括使用成像设备捕获的图像数据和/或使用LiDAR传感器捕获的点云数据、和/或道路环境的其他扫描数据。一旦已经捕获了扫描数据,就可以向客户端设备110发送扫描数据以进行进一步处理。

客户端设备110可以包括在一个或多个处理器314上执行的检测管理器128。一个或多个处理器302可以包括CPU、GPU、FGPA、SoC或其他处理器。检测管理器128可以包括传感器接口316和扫描数据处理器317。传感器接口可以包括硬件或软件接口,这些接口实现检测管理器128与耦合到地面载具111的各种扫描传感器和定位传感器之间的数据和/或命令的通信。扫描数据处理器317可以包括数据管理器322,该数据管理器322经由通信系统120A从扫描管理器126接收扫描数据,并且经由扫描传感器接口318从与地面载具111耦合的车载扫描传感器接收扫描数据。来自扫描管理器126的扫描数据可以包括表示当捕获扫描数据时的飞行器的位置的定位数据。在一些实施例中,数据管理器322还可以经由定位传感器接口320从地面载具上所承载的定位传感器收集位置数据。

数据管理器322可以将从扫描管理器接收的扫描数据与从地面载具接收的扫描数据相关联。例如,成对的扫描数据可以被数据管理器加时间戳以彼此关联。关联的数据可以被传递到图像变换管理器324。如所讨论的,图像变换管理器可以实现视角变换技术,以将地面载具收集的正视扫描数据转换为鸟瞰图。图像变换管理器324可以基于由地面载具捕获的正视扫描数据来识别由飞行器捕捉的扫描数据与经变换的鸟瞰图的重叠部分。例如,如上所述,参考物体在两个图像中的位置可用于对齐两个图像和/或将飞行器的扫描数据映射到地面载具的扫描数据。在一些实施例中,可以在由飞行器捕获的扫描数据和由地面载具捕获的正视扫描数据之间执行匹配。如果数据匹配和/或如果识别到重叠,则在与俯视图像匹配之前不需要对数据进行变换。如果它们匹配,则可以使用空中扫描数据而不是变换正视扫描数据。备选地,在一些实施例中,正视扫描数据可以被变换为俯视图,并且空中扫描数据可以用于校准经变换的俯视图(例如,用于校正失真)。

一旦从飞行器接收到的扫描数据已经与地面载具的经变换的扫描数据相匹配,则可以将来自飞行器的扫描数据传递给物体检测器326。物体检测器326可以实现各种物体检测技术,例如,训练为识别扫描数据中的道路物体的物体检测机器学习模型、和/或用于识别道路物体例如车道标记的边缘检测技术。当在从飞行器接收到的扫描数据中识别出道路物体时,可以将物体的位置映射到道路物体在由地面载具捕获的扫描数据中的对应位置。在一些实施例中,可以基于在扫描数据中识别出的物体来生成导航命令。例如,当在扫描数据中检测到车道时,可以计算与扫描数据中检测到的车道拟合的多项式曲线。多项式曲线可用于确定地面载具为了留在车道内的轨迹。可以将其提供给导航控制器328,导航控制器328可以生成地面载具的移动命令。

在一些实施例中,物体检测器326可以确定所收集的扫描数据在地面载具前方提供的范围不足以在足够的时间内识别物体以确定适当的导航命令。例如,天气状况可能会限制能见度,或者前方的道路可能正在蜿蜒曲折,从而限制了地面载具的扫描传感器的有效范围。在一些实施例中,物体检测器可以包括机器学习模型,该机器学习模型被训练为确定收集扫描数据的最佳扫描范围(例如,地面载具前方的距离)。可以基于道路状况(天气、交通等)和/或驾驶状况(当前速度、方向等)来训练模型。在一些实施例中,可以根据过去的导航数据训练模型,该过去的导航数据针对由该区域中行进的其他地面载具收集的地面载具的当前位置。当物体检测器确定需要不同的扫描范围时,物体检测器可以向导航控制器328发送请求,以指示飞行器移动到新位置以在新的扫描范围捕获扫描数据。导航控制器328可以经由通信系统120A向飞行器发送控制数据,并且作为响应,飞行器将其自身重新定位到所指示的位置。

尽管针对飞行器-地面载具对讨论了实施例,但是在各种实施例中,一个飞行器可以将扫描数据提供给多个地面载具。另外,在一些实施例中,多个飞行器可以与地面载具通信,其中每个飞行器在不同位置捕获扫描数据并向地面载具发送扫描数据。地面载具可以使用扫描数据来在地面载具周围构建局部地图(例如,使用同步定位与地图构建(SLAM)技术来构建局部地图)。在一些实施例中,可以将飞行器存储在地面载具中。例如,地面载具可以包括平台,飞行器可以从该平台起飞并着陆。地面载具可以例如确定当前的驾驶状况需要附加的扫描数据,并且可以发射飞行器来收集该数据。当状况改善时,或当飞行器需要额外充电时,飞行器可以返回地面载具进行充电和存储。

图4示出了根据各种实施例的用于道路物体检测的机器学习模型的示例。如所讨论的,在各种实施例中,可以由飞行器和地面载具获取扫描数据。可以将由地面载具获取的正视扫描数据变换为中间格式(例如,鸟瞰图),从而能够使用由飞行器捕获的鸟瞰图扫描数据来校准由地面载具捕获的扫描数据。校准可以包括将中间格式与由飞行器捕获的扫描数据对齐(例如,基于两个数据集中的一个或多个参考物体的位置)、以及增强中间格式(例如,将在由飞行器获取的扫描数据中包括的相应深度信息添加到中间格式的重叠部分)。在各种实施例中,可以将中间格式提供为对机器学习模型的输入,以对扫描数据执行物体检测、模式识别或其他推断。

在一些实施例中,由飞行器获取的每个图像在像素级别与中间格式匹配(例如,其中由飞行器获取的扫描数据的至少一部分和地面载具重叠)。可以训练机器学习模型,例如卷积神经网络(CNN)400,以识别与中间格式的每个像素或像素补丁相关的语义信息。例如,可以维护包括地面真实标签(例如,车道标记、道路、载具、交通障碍等)在内的训练数据集。可以根据训练数据集训练CNN 400,直到CNN的输出在地面真实标签的阈值置信度内。在一些实施例中,到CNN的输入可以表示为N*4*H*W,其中N对应于输入图像数据中的输入补丁的数量,4对应于输入图像数据中的信道的数量(例如,每个像素可以包括R+G+B+深度值),H对应于输入图像数据的高度,并且W对应于输入图像数据的宽度。在一些实施例中,深度可以对应于已经被添加到中间格式的由飞行器测量的景深。在一些实施例中,CNN 400可以包括多个层406-412,其中每个层包括卷积层(CONV)、批量归一化层(BN)和激活功能层(RELU)。在一些实施例中,CNN 400可以实现跳过连接架构,其中可以将由一层输出的一些数据提供给下一层,并且可以提供给再下一层,如在414处所描绘的。这允许保留某些可能会以其他方式被抽象掉的数据,以供CNN中的其他层使用。尽管在图4中描绘了一种特定的架构,但是根据实施例可以使用各种机器学习模型。

当执行推断时,可以将输入图像数据402(例如,表示道路环境的鸟瞰图的经变换和校准的中间格式)提供给训练后的CNN 400。CNN 400可以分析输入图像数据402并提供可以表示为N*K*H*W的输出404,其中,对于输入的N个补丁的N*W个像素,输出K个信道的语义信息。每个信道的输出值表示该信道的语义信息的概率。例如,对于某个像素,输出可以是车道标记80%、道路13%、载具1%。结果,可以表征输入图像数据中每个像素的内容。这允许例如识别输入图像中显示车道标记的每个像素。然后,可以将曲线拟合到那些像素,以识别载具正在行进的当前车道。然后,地面载具可以将投影从中间格式反向变换为正视图,并将包括车道标记的那些像素映射到正视图。所得的曲线可用于生成移动命令,该移动命令使地面载具遵循将地面载具保持在车道中的轨迹。

如上所述,在一些实施例中,可以使用在飞行器和地面载具两者的扫描数据中描绘的参考物体来校准地面载具的扫描数据。为了考虑两个视角之间的照明差异,可以使用各种技术(例如零均值标准化互相关(ZNCC)、半全局匹配(SGM)和扫描(sweeping))来补偿输入扫描数据之间的辐射度变化。在一些实施例中,可以使用k均值聚类或其他聚类技术来快速识别扫描数据中的特征。可以基于可能的重要性为特征分配权重。在一些实施例中,可以使用扫描数据中的参考物体的位置来执行校准。可以给与参考物体相对应的一个或多个像素分配标签,以指示它们与参考物体相关联。这为扫描数据提供了像素级别的校准。

如所讨论的,在一些实施例中,扫描数据可以包括点云数据。点云数据可以是目标环境(例如,道路环境)的三维表示。该3D表示可以被划分为体素(例如3D像素)。绘图数据的点云中的每个点都与相对于扫描传感器确定的扫描器参考系中的位置相关联。由定位传感器产生的可移动物体的定位数据然后可以被用于将扫描仪参考系中的该位置转换为世界坐标系中的输出参考系。在一些实施例中,可以在从飞行器向地面载具发送扫描数据之前对扫描数据进行编码。例如,由飞行器上的扫描传感器获取的扫描数据可以是密集表示,其可以在向地面载具发送之前被变换成稀疏表示。在一些实施例中,可以发送扫描数据的每一帧之间的差异,而不是发送扫描数据的整个帧。在一些实施例中,由飞行器获取的点云数据可以用于增强由地面载具获取的点云数据。例如,飞行器可以更精确地捕获与地面载具远离的物体的点云的X和Y分量。该数据可以与地面载具共享,从而提高安装有三维点云的地面载具的计算精度。

在一些实施例中,飞行器和地面载具可以各自被配置为使用同步定位与地图构建(SLAM)技术来构建道路环境的地图以生成局部地图。SLAM技术可以使用由扫描传感器和/或各种其他传感器(例如IMU、陀螺仪或其他合适的传感器)捕获的数据。由飞行器生成的SLAM可以被发送给地面载具,并与由地面载具生成的SLAM组合以扩展由地面载具生成的局部地图。在一些实施例中,交通状况(例如,天气状况、交通密度等)可能限制地面载具使用SLAM技术生成地图的能力。当检测到这种交通状况时,地面载具可以指示飞行器捕获鸟瞰图视觉数据以完成由地面载具生成的局部地图。

图5示出了根据各种实施例的在可移动物体环境中的多个载具之间共享传感器信息的方法的流程图。在502处,可以由包括在地面载具中的第二计算设备从与飞行器耦合的第一计算设备接收第一扫描数据。使用耦合到飞行器的第一扫描传感器来获取第一扫描数据。在一些实施例中,第一扫描数据包括基于由第一扫描传感器收集的点云数据生成的第一绘图数据。

在504处,从耦合到地面载具的第二扫描传感器获取第二扫描数据。在一些实施例中,第一扫描数据可以被与飞行器通信的多个地面载具接收。在一些实施例中,可以由与地面载具通信的多个飞行器获取扫描数据,并且可以由多个飞行器将扫描数据发送给地面载具。在一些实施例中,第一扫描传感器包括第一LiDAR传感器,并且第二扫描传感器包括第二LiDAR传感器。在一些实施例中,第二扫描数据包括基于由第二扫描传感器收集的点云数据生成的第二绘图数据。在一些实施例中,第一绘图数据可以与第二绘图数据组合以增加由地面载具维护的局部地图的覆盖区域。

在506处,可以基于第一扫描数据和第二扫描数据中的至少一个参考物体来识别第一扫描数据和第二扫描数据的重叠部分。在一些实施例中,至少一个参考物体包括在第一扫描数据和第二扫描数据中表示的道路物体的表示。

在508处,可以基于在第一扫描数据和第二扫描数据的重叠部分中识别的一个或多个导航物体来执行导航控制命令。在一些实施例中,一个或多个导航物体包括在第一扫描数据和第二扫描数据的重叠部分中表示的行驶车道。

在一些实施例中,该方法还可以包括:从地面载具上的第二计算设备接收移动命令,该移动命令包括位置,从而使飞行器移动到该位置;以及在该位置处或附近获取第一扫描数据。在一些实施例中,该位置包括位置坐标、相对于地面载具或其他物体的位置中的至少一个。

在一些实施例中,该方法还可以包括:将第一扫描数据和第二扫描数据变换成中间格式;使用机器学习模型来对中间格式执行物体识别以识别一个或多个导航物体,该机器学习模型被训练为识别一个或多个导航物体;以及基于物体识别来确定导航控制命令。在一些实施例中,机器学习模型的输入包括来自中间格式的多个输入补丁、信道的数目以及输入补丁的高度和宽度,信道的数目代表与每个输入补丁相关联的颜色和深度。机器学习模型的输出包括每个输入补丁的一个或多个置信度得分,该一个或多个置信度得分与一个或多个导航物体相关联。

在一些实施例中,该方法还可以包括:检测影响地面载具的交通状况;以及响应于检测到的交通状况,向飞行器上的第一计算设备发送命令以收集第一绘图数据。

无人飞行器(UAV)携带计算设备和传感器,这使UAV能够实现同步定位与地图构建(SLAM)来构建其环境的地图。UAV可以在飞行时使用扫描传感器(例如,成像传感器、LiDAR传感器等)扫描其环境,并为其自身构建定位地图以规划路线。所得的地图还可以用于避障和自动驾驶。然而,UAV在其可携带的计算设备、传感器、电池等的数量和复杂度方面仍然受到限制,这导致使用SLAM技术生成大型准确地图的能力降低。另外,在收集数据以执行SLAM时,飞行器会遇到风、用户造成的移动以及其他不稳定性的影响,这会限制所收集数据的准确性。此外,某些UAV可能移动得太快,以至于无法使用精确的SLAM进行导航。

SLAM技术提供了一种方法:构建和/或更新可移动物体所位于的环境的实时地图,并同步保持可移动物体在实时地图内的位置,并且SLAM技术处理在构建或更新陌生环境的地图并同时同步跟踪代理的局部环境时的计算问题。典型的SLAM处理构建立体帧并连接帧以形成连续地图。可以使用诸如单目相机或双目相机、LiDAR传感器或其他扫描传感器的成像传感器来执行SLAM。

无人机和其他无人飞行器(UAV)可以携带的传感器和计算机的数量和质量可能受到限制。这可以是由于此类装备的成本、重量限制、功率限制等引起的。然而,车辆和其他地面载具携带复杂计算机和传感器的能力并没有受到太大限制。车辆提供了更安全且更稳定的平台来携带昂贵的设备,而且通常很容易满足任何额外的重量或功率要求。当车辆沿着道路行驶时,它可以使用其车载传感器来生成高精度的局部地图。车辆可以使用相机、LiDAR、惯性测量单元、陀螺仪和其他传感器来生成高精度地图。车辆可以将所得的高精度地图向在车辆附近飞行的无人机发送。无人机在附近飞行时,还可以根据其机载传感器生成地图。然而,由于无人机携带的传感器类型以及无人机可用的计算资源,生成的是精度较低的地图。然而,无人机可以将其地图与从车辆接收到的高精度地图组合起来,以获取可以被用于在环境中导航的高精度地图(例如,用于避开物体,生成路线等)。实施例利用在车辆或其他地面载具中可用的更高质量的传感器和计算机来改善可用于无人机或其他UAV的地图。

实施例提供了一种地图构建方法,其可以使用由地面载具以及地面载具可用的计算设备和传感器收集的数据,生成比无人机自身能够生成的更全面和准确的地图。UAV可以与地面载具共享UAV收集的数据、以及使用SLAM技术构建的任何地图。地面载具可以将其自身的地图与UAV的地图组合以生成可以与UAV共享的组合地图。与由UAV单独生成的地图相比,组合的地图可以包括更多的细节并且覆盖更大的区域。然后,可以向UAV发送组合的地图,以用于导航、追踪和避障。

图6示出了根据各种实施例的飞行器和地面载具的示例600。如上所述,地面载具111可以包括一个或多个扫描传感器132,例如LiDAR传感器。地面载具的扫描传感器可以具有感测范围602、604,地面载具可以在该感测范围内检测其环境。飞行器104还可以包括用来扫描其环境的一个或多个扫描传感器124。如上所述,飞行器104和地面载具111都可以包括使飞行器和地面载具能够导航其环境的各种传感器、计算设备、移动机构和控制器。

只要地面载具在地面载具的传感器的范围内运行,则地面载具可以使用其扫描传感器132获取飞行器的位置。该位置可以相对于地面载具,或者可以是世界坐标系或其他坐标系中的绝对位置。飞行器104和地面载具111两者可以使用它们各自的传感器来对它们所位于的环境执行SLAM。如将进一步讨论的,当与飞行器可用的传感器和计算设备相比时,地面载具可以使用改进的传感器和计算设备来执行SLAM。因此,与飞行器相比,地面载具可以生成更准确的SLAM,并向飞行器提供地图以用于导航。在一些实施例中,飞行器还可以使用SLAM技术来构建环境的地图,该地图与由地面载具产生的地图相比精度较低。飞行器可以向地面载具发送其地图,然后地面载具可以将飞行器的地图与由地面载具生成的地图进行组合,并且将更高精度的组合地图返回给飞行器以用于导航。

图7示出了根据各种实施例的使用飞行器和地面载具生成可移动物体环境的地图的示例700。如图7所示,在702处,地面载具111可以利用地面载具扫描传感器132执行SLAM。在各种实施例中,SLAM技术可以用于使用来自各种传感器的数据生成局部地图,所述各种传感器包括扫描传感器和其他传感器,例如IMU、陀螺仪和其他合适的传感器。扫描传感器可以是成像传感器或LiDAR传感器,其可以用于获取地面载具111的视角中的环境的实时地图。利用车载传感器和处理器的优势,该实时构建地图具有比由飞行器104构建的实时地图高的精度。除了改进了地面载具的传感器和处理能力之外,它还提供了更稳定的用于收集环境的视觉或LiDAR数据的平台,从而提供更准确的实时地图。

在一些实施例中,地面载具可以从飞行器请求飞行器的位置。飞行器可以提供其在GNSS坐标中的位置、或通过组合飞行器的初始位置和实时运动状态而获取的实时相对位置。在一些实施例中,地面载具可以直接使用耦合到地面载具的扫描传感器132或其他扫描传感器(例如,雷达传感器、飞行时间(ToF)相机或其他传感器)来获取飞行器的相对位置。在704处,使用飞行器的位置,地面载具可以构建实时地图,并向飞行器发送实时地图。在一些实施例中,地面载具还可以将其位置与实时地图一起提供给飞行器。

在706处,飞行器可以使用其机载扫描和定位传感器执行SLAM和定位。然而,与从地面载具获取的实时地图相比,由飞行器生成的所得实时地图可能具有相对较低的精度。在一些实施例中,飞行器可以识别实时地图的重叠部分,并将实时地图组合成组合的实时地图。

在一些实施例中,飞行器可以将向地面载具发送其实时地图。然后,地面载具可以识别实时地图的重叠部分,并将它们组合成组合的实时地图。在各种实施例中,可以使用扫描匹配技术或通过在每个实时地图中识别的匹配特征来合并实时地图,以识别地图的重叠部分。然后,可以通过基于重叠部分将每个地图中的位置映射到到另一个来合并实时地图。在一些实施例中,飞行器可以使用成像传感器来构建实时地图,而地面载具可以使用LiDAR传感器来构建实时地图(反之亦然)。通过将基于图像的实时地图中的特征识别为基于点云的实时地图中的特征,地面载具可以将这些实时地图合并。例如,飞行器可以将通过其成像传感器获取的视觉图像信息发送到地面载具。地面载具可以转换基于图像的实时地图的坐标系,以匹配由地面载具收集的点云数据的坐标系。然后,地面载具可以将匹配的重叠部分的组合地图返回给飞行器以用于导航。

图8示出了根据各种实施例的使用飞行器和地面载具生成可移动物体环境的地图的替代示例800。如图8所示,地面载具111可以使用其车载扫描传感器132生成高精度SLAM,如802处所示。在804处,飞行器104可以捕获实时图像数据并将其发送给地面载具。然后,在806处,地面载具可以使用从飞行器获取的视觉数据和由地面载具生成的SLAM两者来生成地图。这将所有地图生成操作从飞行器卸载到地面载具,其中飞行器仅提供实时图像数据。在一些实施例中,地面载具可以通过将控制数据提供给飞行器来使用所生成的组合地图控制飞行器,以执行物体避开、追踪和其他导航任务。

在一些实施例中,飞行器104可以向地面载具111提供俯视扫描数据(例如,如以上关于图1至图5所述)。作为由地面载具的车载传感器捕获的扫描数据的附加或替代,地面载具可以使用俯视扫描数据来生成SLAM。然后,地面载具可以将所得的SLAM提供给飞行器111,和/或基于所得的SLAM将控制数据提供给飞行器以执行各种导航任务。

图9示出了根据各种实施例的由飞行器绘图管理器和地面载具绘图管理器进行的协作地图构建的示例。如图9所示,空中绘图管理器900可以在计算设备112的一个或多个处理器302上执行。一个或多个处理器302可以包括CPU、GPU、FGPA、SoC或其他处理器。空中绘图管理器900可以包括传感器接口303和地图生成器904。

传感器接口303可以包括扫描传感器接口304和定位传感器接口306。传感器接口303可以包括硬件和/或软件接口。扫描传感器接口304可以从扫描传感器(例如,成像设备、LiDAR传感器或其他扫描传感器)接收数据,并且定位传感器接口306可以从定位传感器(例如,GNSS传感器、RTK传感器等)接收数据。在各种实施例中,扫描传感器可以产生点云格式的数据。点云数据可以是目标环境的三维表示。在一些实施例中,点云数据可以被转换成矩阵表示。在一些实施例中,扫描传感器可以产生图像数据,例如飞行器正行进的道路环境的高清晰度图像和/或视频。定位数据可以包括用于飞行器的GPS坐标。

在一些实施例中,地图生成器904可以包括数据管理器908,该数据管理器908可以经由扫描传感器接口从空中绘图管理器上所承载的扫描传感器获取扫描数据。数据管理器还可以通过定位传感器接口306从飞行器的定位传感器获取实时位置数据。数据管理器908可以将扫描数据和位置数据传递给实现一种或多种SLAM技术的SLAM模块。SLAM模块910可以输出飞行器正在行进的环境的实时地图以及飞行器在该地图内的位置。如所讨论的,由于例如机载传感器、计算设备112的性能、飞行中的飞行器的稳定性等,由SLAM模块910生成的实时地图可能是相对不太精确的地图。一旦已经生成了实时地图,地图生成器就可以经由通信系统120B将实时地图传递给客户端设备110上的地面绘图管理器。如所讨论的,在一些实施例中,地图生成器904可以仅输出扫描数据,而无需首先使用SLAM模块910生成实时地图。例如,资源管理器912可以监控计算设备112上的计算资源可用性。如果可用资源(例如,存储器、存储容量、电池电量、处理器利用率等)低于阈值,则资源管理器912可以指示数据管理器将扫描数据和位置数据提供给地面绘图管理器,以请求代表飞行器执行SLAM。

客户端设备110可以包括在一个或多个处理器314上执行的地面绘图管理器902。一个或多个处理器302可以包括CPU、GPU、FGPA、SoC或其他处理器。地面绘图管理器902可以包括传感器接口316和地图生成器906。传感器接口可以包括硬件或软件接口,这些接口实现地面绘图管理器902与耦合到地面载具111的各种扫描传感器和定位传感器之间的数据和/或命令的通信。地图生成器906可以包括数据管理器914,该数据管理器914经由通信系统120A从空中绘图管理器900接收扫描数据,并且经由扫描传感器接口318从与地面载具111耦合的车载扫描传感器接收扫描数据。数据管理器914还可以包括经由定位传感器接口306的地面载具的位置数据。在一些实施例中,数据管理器914还可以经由扫描传感器接口304接收飞行器的位置数据。例如,地面载具111可以使用车载LiDAR传感器或其他扫描传感器来确定飞行器与地面载具的相对位置。来自扫描管理器126的扫描数据可以包括表示当捕获扫描数据时的飞行器的位置的定位数据。

数据管理器914可以将扫描数据和位置数据传递到SLAM模块916,以生成地面载具所位于的环境的实时地图。SLAM模块916可以实施各种SLAM技术来生成实时地图。由于相对较高质量的扫描传感器、地面载具平台的稳定性以及可用的计算资源,SLAM模块916可以输出相对较高精度的实时地图。在一些实施例中,由SLAM模块916生成的实时地图和由SLAM模块910生成的实时地图可以被提供给地图合并模块918。地图合并模块918可以实施扫描匹配技术、特征匹配技术或其他图像处理技术以合并两个实时地图。例如,可以基于在两个实时地图中识别的共同特征来识别两个实时地图的重叠部分。所得的组合地图可以经由通信系统120A被提供给飞行器,以用于执行各种导航操作。在一些实施例中,仅将两个实时地图的重叠部分提供给飞行器。在一些实施例中,SLAM模块916可以基于直接从飞行器获取的扫描数据来生成实时地图,而不是使用由空中绘图管理器900生成的SLAM图以及从地面载具获取的扫描数据来生成实时地图。在这样的实施例中,输出实时地图可以被提供给飞行器,而无需额外的合并步骤。在一些实施例中,地面载具可以使用组合的实时地图来控制飞行器,而无需将组合的实时地图提供给飞行器。相反,地面载具可以生成导航命令,该导航命令被发送到飞行器,然后由飞行器的飞行控制器转换为移动命令。

尽管针对飞行器-地面载具对讨论了实施例,但是在各种实施例中,一个飞行器可以将扫描数据提供给多个地面载具。另外,在一些实施例中,多个飞行器可以与地面载具通信,其中每个飞行器在不同位置捕获扫描数据并向地面载具发送扫描数据。在一些实施例中,地面载具可以是自主载具。备选地,地面载具可以是手动载具,其包括如本文所述的适当的扫描传感器和位置传感器。

图10示出了根据各种实施例的可移动物体环境中的协作地图构建的方法1000的流程图。在1002处,飞行器可以从地面载具接收第一实时地图。第一实时地图基于使用与地面载具耦合的第一扫描传感器收集的第一扫描数据。在一些实施例中,由飞行器从地面载具接收第一实时地图(其中,第一实时地图基于使用与地面载具耦合的第一扫描传感器收集的第一扫描数据)可以包括:向地面载具发送第二实时地图,该地面载具被配置为:将第二实时地图中的坐标转换为匹配第一实时地图的坐标系,确定该坐标系中的第二实时地图与第一实时地图的重叠部分,并且将重叠部分发送给飞行器。在一些实施例中,接收实时地图可以包括从地面载具接收飞行器的位置信息。在一些实施例中,位置信息包括使用第一扫描传感器确定的实时相对位置。在一些实施例中,位置信息包括从飞行器接收的全球导航卫星系统(GNSS)。在一些实施例中,地面载具是自主载具。

在1004处,可以获取第二实时地图,该第二实时地图基于使用与飞行器耦合的第二扫描传感器收集的第二扫描数据。在一些实施例中,第一实时地图是比第二实时地图精度高的地图。在1006处,可以基于第一实时地图和第二实时地图来生成第三实时地图。在一些实施例中,基于第一实时地图和第二实时地图生成第三实时地图可以包括:确定第一实时地图和第二实时地图的重叠部分;以及使用重叠部分来合并第一实时地图和第二实时地图。

在一些实施例中,第一扫描传感器包括LiDAR传感器,并且第二扫描传感器包括视觉传感器。基于从第一扫描传感器获取的点云数据来构建第一实时地图,并且基于从第二扫描传感器获取的视觉数据来构建第二实时地图。

在一些实施例中,该方法还可以包括:确定与飞行器相关联的可用资源低于阈值;向地面载具发送请求以生成第三实时地图,该请求包括第二实时地图;以及从地面载具接收第三实时地图。

在一些实施例中,该方法还可以包括:从与地面载具通信的多个飞行器获取多个实时地图;基于第一实时地图和来自多个飞行器的每个对应的实时地图,生成第四实时地图;向多个飞行器中的每一个发送第四实时地图。

在一些实施例中,地面载具被配置为从与地面载具耦合的第三扫描传感器获取第三扫描数据,第一扫描传感器包括LiDAR传感器,第三扫描传感器包括成像传感器,并使用同步定位与地图构件(SLAM)算法基于第一扫描数据和第三扫描数据生成第一实时地图。

在一些实施例中,该方法还可以包括:将第二扫描数据发送到地面载具,其中,地面载具被配置为使用同步定位与地图构建(SLAM)算法基于第一扫描数据和第二扫描数据来生成第一实时地图,其中,第一扫描传感器包括激光雷达传感器,第二扫描传感器包括成像传感器。

在一些实施例中,一种用于基于来自多个载具的传感器信息生成地图的系统可以包括:飞行器,其包括第一计算设备和第一扫描传感器;以及地面载具,其包括第二计算设备和第二扫描传感器。第一计算设备可以包括至少一个处理器和扫描管理器,该扫描管理器包括第一指令,第一指令在由处理器执行时,使扫描管理器从第一扫描传感器获取俯视视角下的第一扫描数据,并向第二计算设备发送第一扫描数据。第二计算设备可以包括至少一个处理器和检测管理器,该检测管理器包括第二指令,第二指令在由所述处理器执行时,使检测管理器从第一计算设备接收第一扫描数据,至少部分地基于第一扫描数据生成局部地图,并且至少部分地基于局部地图执行导航控制命令。如所讨论的,可以使用各种SLAM技术基于来自多个传感器的数据生成局部地图,该多个传感器包括扫描传感器和其他传感器,例如IMU、陀螺仪等。

在一些实施例中,第二计算设备可以进一步被配置为从第二扫描传感器获取第二扫描数据。从第二扫描传感器获取向前视角下的第二扫描数据。在一些实施例中,为了至少部分地基于第一扫描数据生成局部地图,第二指令在被执行时,还使检测管理器至少部分地基于第一扫描数据将第二扫描数据从向前视角变换为俯视视角,以获取经变换的第二扫描数据,并且基于经变换的第二扫描数据来生成局部地图。在一些实施例中,为了至少部分地基于第一扫描数据生成局部地图,第二指令在被执行时,还使检测管理器识别第一扫描数据中的与第二扫描数据的一部分相对应的一部分,并基于第一扫描数据中的所识别的一部分来生成局部地图。在各种实施例中,如上所述的扫描匹配和其他技术可以用于识别第一扫描数据中的与第二扫描数据的一部分相对应的一部分。第一扫描数据的一部分和第二扫描数据的一部分可以包括道路环境的相同区域的表示。图11示出了根据各种实施例的在软件开发环境中支持可移动物体接口的示例。如图11所示,可移动物体接口1103可以用于提供对软件开发环境1100(例如软件开发工具包(SDK)环境)中的可移动物体1101的访问。如上所述,可以使用SDK或移动SDK来实现扫描管理器,以使应用能够执行实时绘图,如本文所述。

此外,可移动物体1101可以包括各种功能模块A至C 1111至1113,并且可移动物体接口1103可以包括不同的接口部件A至C 1131至1133。可移动物体接口1103中的每个所述接口部件A至C 1131至1133可以表示可移动物体1101中的模块A至C 1111至1113。

根据本发明的各种实施例,可移动物体接口1103可以提供一个或多个回调函数,用于支持应用和可移动物体1101之间的分布式计算模型。

应用可以使用回调函数来确认可移动物体1101是否已经接收到命令。此外,应用可以使用回调函数来接收执行结果。因此,即使应用和可移动物体1101在空间和逻辑上分离,它们也可以交互。

如13所示,接口部件A至C 1131至1133可以与监听器A至C 1141至1143相关联。监听器A至C 1141至1143可以通知接口部件A至C 1131至1133使用对应的回调函数来从相关模块接收信息。

另外,为可移动物体接口1103准备数据1120的数据管理器1102可以解耦和打包可移动物体1101的相关功能。此外,数据管理器1102可以用于管理应用和可移动物体1101之间的数据交换。因此,应用开发者不需要参与复杂的数据交换过程。

例如,SDK可以提供一系列回调函数,用于传送实例消息和从无人飞行器接收执行结果。SDK可以配置回调函数的生命周期,以便确保信息交换稳定并完成。例如,SDK可以在无人飞行器和智能电话(例如,使用Android系统或iOS系统)上的应用之间建立连接。在智能电话系统的生命周期之后,回调函数(例如从无人飞行器接收信息的函数)可以利用智能电话系统中的模式并相应地将语句更新到智能电话系统生命周期的不同阶段。

图12示出了根据各种实施例的无人飞行器接口的示例。如图12所示,无人飞行器接口1203可以代表无人飞行器1201。因此,无人飞行器环境1200中的应用(例如APP 1204至1206)可以访问和控制无人飞行器1201。

例如,无人飞行器1201可以包括各种模块,例如相机1211、电池1212、云台1213和飞行控制器1214。

对应地,可移动物体接口1203可以包括相机部件1221、电池部件1222、云台部件1223和飞行控制器部件1224。

另外,可移动物体接口1203可以包括地面站部件1226,其与飞行控制器部件1224相关联。地面站部件操作为执行可能需要高级特权的一个或多个飞行控制操作。

图13示出了根据各种实施例的软件开发工具包(SDK)中针对无人飞行器的部件的示例。SDK可以对应于上述扫描管理器的全部或一部分,或者可以用于将扫描管理器实现为独立的应用。如图13所示,SDK 1300中的无人机类1301是无人飞行器(或无人机)的其它部件1302至1307的集合。可以访问其他部件1302至1307的无人机类1301可以与其他部件1302至1307交换信息并控制其他部件1302至1307。

根据各种实施例,应用可以仅被无人机类1301的一个实例访问。备选地,在应用中可以存在无人机类1301的多个实例。

在SDK中,应用可以连接到无人机类1301的实例,以便将控制命令上传到无人飞行器。例如,SDK可以包括用于建立与无人飞行器的连接的功能。此外,SDK可以使用端连接功能断开与无人飞行器的连接。在连接到无人飞行器之后,开发者可以访问其他类(例如,相机类1302和云台类1304)。然后,可以将飞行器类1301用于调用特定功能,例如,提供可以由飞行控制器用来控制无人飞行器的行为和/或限制其移动的访问数据。

根据各种实施例,应用可以使用电池类1303以用于控制无人飞行器的电源。此外,应用可以使用电池类1303来规划和测试各种飞行任务的调度。

由于电池是无人飞行器中最受限制的元件之一,所以应用可以认真考虑电池的状态,不仅是为了无人飞行器的安全,而且还为了确保无人飞行器可以完成指定的任务。例如,电池类1303可以被配置成使得如果电池电量低,则无人飞行器可以终止任务并直接返航。

使用SDK,应用可以通过调用从无人机电池类请求信息的功能来获取电池的当前状态和信息。在一些实施例中,SDK可以包括用于控制这种反馈的频率的功能。

根据各种实施例,应用可以使用相机类1302以用于定义可移动物体(例如无人飞行器)中的相机上的各种操作。例如,在SDK中,相机类包括用于在SD卡中接收媒体数据、获取和设置照片参数、拍摄照片和录制视频的功能。

应用可以使用相机类1302以用于修改照片和记录的设置。例如,SDK可以包括使开发者能够调整所拍摄照片的大小的功能。此外,应用可以使用媒体类来维护照片和记录。

根据各种实施例,应用可以使用云台类1304以用于控制无人飞行器的视野。例如,云台类可以用于配置实际视图,例如设置无人飞行器的第一人视图。此外,云台类可以用于自动稳定云台,以便聚焦在一个方向上。此外,应用可以使用云台类来修改用于检测不同物体的视角。

根据各种实施例,应用可以使用飞行控制器类1305以用于提供关于无人飞行器的各种飞行控制信息和状态。如所讨论的,飞行控制器类可以包括用于接收和/或请求访问数据的功能,以用于控制无人飞行器在无人飞行器环境中的各个区域的移动。

使用主控制器类,应用可以监控飞行状态,例如使用即时消息。例如,主控制器类中的回调函数可以每千毫秒(1000毫秒)发送回即时消息。

此外,主控制器类允许应用的用户调查从无人飞行器接收的实例消息。例如,飞行员可以分析每个飞行的数据,以便进一步提高他们的飞行技能。

根据各种实施例,应用可以使用地面站类1307来执行用于控制无人飞行器的一系列操作。

例如,SDK可能要求应用具有2级SDK密钥以使用地面站类。地面站类可以提供一键式飞行、一键式返航、通过app手动控制无人机(即操纵杆模式)、设置巡航和/或航路点以及各种其他任务调度功能。

根据各种实施例,应用可以使用通信部件,以用于建立应用和无人飞行器之间的网络连接。

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

本发明的特征可以以计算机程序产品的形式、或者使用计算机程序产品、或者借助于计算机程序产品执行,计算机程序产品例如是具有存储在其上/内的指令的存储介质(媒介)或计算机可读介质(媒介),这些指令可用于对处理系统进行编程以执行本文陈述的任何特征。存储介质可以包括但不限于:任何类型的盘,包括:软盘、光盘、DVD、CD-ROM、微型驱动器和磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存设备、磁卡或光卡、纳米系统(包括分子存储器IC)或者适于存储指令和/或数据的任何类型的介质或设备。

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

本发明的特征还可以使用例如诸如专用集成电路(ASIC)和现场可编程门阵列(FPGA)设备的硬件部件来从硬件上实现。实现硬件状态机以执行在此描述的功能对于相关领域的技术人员将是显而易见的。

此外,可以使用包括一个或多个处理器、存储器和/或根据本公开的教导编程的计算机可读存储介质在内的一个或多个常规通用或专用数字计算机、计算设备、机器或微处理器,来方便地实现本公开的实施例。编程技术人员可以根据本公开的教导容易地准备适当的软件编码,这对软件领域的技术人员将是显而易见的。

尽管上面已经描述了各实施例,但是应当理解,它们仅仅是作为示例而不是限制来提出的。本领域普通技术人员应该清楚的是在不脱离本发明的精神和范围的情况下可以进行形式和细节上的各种变化。

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

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

在上述各种实施例中,除非另外特别指出,诸如短语“A、B或C中的至少一个”之类的分离性语言旨在被理解为意指A、B或C中任一个或其任意组合(例如,A、B和/或C)。因此,分离性语言不意图也不应该理解为暗示给定实施例要求存在至少一个A、至少一个B或者至少一个C。

41页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:材料感测式光成像、检测和测距(LIDAR)系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类