会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 无人地面载具 / 用于无人飞行器和地面载运工具之间的协作地图构建的技术

用于无人飞行器和地面载运工具之间的协作地图构建的技术

申请号 CN201980005624.3 申请日 2019-03-08 公开(公告)号 CN111670339B 公开(公告)日 2024-01-26
申请人 深圳市大疆创新科技有限公司; 发明人 王铭钰;
摘要 公开了用于使用多个载运工具的协作地图构建技术。这样的系统可以包括:包括第一计算装置和第一扫描传感器的地面载运工具,以及包括第二计算装置和第二扫描传感器的飞行器。地面载运工具可以基于使用第一扫描传感器的第一扫描数据来获得第一实时地图,并且将第一实时地图和位置信息发送给飞行器。飞行器可以接收来自第一计算装置的第一实时地图和位置信息,基于使用第二扫描传感器采集的第二扫描数据来获得第二实时地图,并且基于第一实时地图和第二实时地图来获得第三实时地图。
权利要求

1.一种用于协作地图构建的系统,包括:

地面载运工具,包括第一计算装置;

第一扫描传感器,耦合到所述地面载运工具;

飞行器,包括第二计算装置;

第二扫描传感器,耦合到所述飞行器;

所述第一计算装置包括至少一个处理器和地面载运工具绘图管理器,所述地面载运工具绘图管理器包括第一指令,所述第一指令当由所述处理器执行时,使所述地面载运工具绘图管理器:基于使用所述第一扫描传感器的第一扫描数据来获得第一实时地图;以及将第一实时地图和位置信息发送给所述飞行器;

所述第二计算装置包括至少一个处理器和飞行器绘图管理器,所述飞行器绘图管理器包括第二指令,所述第二指令当由所述处理器执行时,使所述飞行器绘图管理器:接收来自所述第一计算装置的所述第一实时地图和所述位置信息;

基于使用所述第二扫描传感器采集的第二扫描数据来获得第二实时地图;以及基于所述第一实时地图和所述第二实时地图来获取第三实时地图。

2.根据权利要求1所述的系统,其中,所述第一实时地图是比所述第二实时地图精度更高的地图。

3.根据权利要求1所述的系统,其中,为了基于所述第一实时地图和所述第二实时地图来获得第三实时地图,所述第二指令在被执行时还使所述飞行器绘图管理器:确定所述第一实时地图和所述第二实时地图的重叠部分;以及使用所述重叠部分来合并所述第一实时地图和所述第二实时地图。

4.根据权利要求1所述的系统,其中,所述第一扫描传感器包括LiDAR传感器,并且所述第二扫描传感器包括视觉传感器。

5.根据权利要求4所述的系统,其中,所述第一实时地图是基于从所述第一扫描传感器获得的点云数据来构建的,并且所述第二实时地图是基于从所述第二扫描传感器获得的可视数据来构建的。

6.根据权利要求5所述的系统,其中,为了基于使用所述第一扫描传感器从所述地面载运工具的视角采集的第一扫描数据来获得第一实时地图,所述第一指令在被执行时还使所述地面载运工具绘图管理器:从所述飞行器获得所述第二实时地图;

将所述第二实时地图中的坐标转换到一坐标系,以匹配所述第一实时地图;

在所述坐标系中确定所述第一实时地图和所述第二实时地图的重叠部分;以及向所述飞行器发送所述重叠部分。

7.根据权利要求1所述的系统,其中,所述第二指令在被执行时还使所述飞行器绘图管理器:确定与所述第二计算装置相关联的可用资源在阈值以下;

向所述第一计算装置发送生成第三实时地图的请求,所述请求包括所述第二实时地图;以及从所述第一计算装置接收所述第三实时地图。

8.根据权利要求1所述的系统,还包括:

与所述地面载运工具通信的多个飞行器,其中,所述多个飞行器中的每个飞行器向所述载运工具提供对应的实时地图;并且其中,所述第一指令在被执行时还使所述地面载运工具绘图管理器:从所述多个飞行器获得每个对应的实时地图;

基于所述第一实时地图和来自所述多个飞行器的每个对应的实时地图来生成第四实时地图;以及向所述多个飞行器中的每个飞行器发送所述第四实时地图。

9.根据权利要求1所述的系统,其中,所述位置信息包括从所述飞行器接收的全球导航卫星系统“GNSS”。

10.根据权利要求1所述的系统,其中,所述位置信息包括使用所述第一扫描传感器确定的实时相对位置。

11.根据权利要求1所述的系统,其中,所述地面载运工具是自主载运工具。

12.根据权利要求1所述的系统,其中,为了基于使用所述第一扫描传感器从所述地面载运工具的视角采集的第一扫描数据来获得第一实时地图,所述第一指令在被执行时还使所述地面载运工具绘图管理器:从耦合所述地面载运工具的第三扫描传感器获得第三扫描数据,所述第一扫描传感器包括LiDAR传感器并且所述第三扫描传感器包括成像传感器;以及使用同步定位与地图构建“SLAM”算法,基于所述第一扫描数据和所述第三扫描数据来生成所述第一实时地图。

13.根据权利要求1所述的系统,其中,为了基于使用所述第一扫描传感器从所述地面载运工具的视角采集的第一扫描数据来获得第一实时地图,所述第一指令在被执行时还使所述地面载运工具绘图管理器:从所述飞行器获得所述第二扫描数据,所述第一扫描传感器包括LiDAR传感器并且所述第二扫描传感器包括成像传感器;以及使用同步定位与地图构建“SLAM”算法,基于所述第一扫描数据和所述第二扫描数据来生成所述第一实时地图。

14.根据权利要求1所述的系统,其中,所述第一指令在被执行时还使所述地面载运工具绘图管理器:从所述飞行器接收第三地图;

基于所述第三地图生成控制数据以对所述飞行器进行导航;以及向所述飞行器发送所述控制数据。

15.根据权利要求1所述的系统,其中,所述第二指令在被执行时还使所述飞行器绘图管理器:基于第三地图生成控制数据以对所述飞行器进行导航。

16.一种用于协作地图构建的方法,包括:

由飞行器从地面载运工具接收第一实时地图和位置信息,其中,所述第一实时地图基于使用耦合到所述地面载运工具的第一扫描传感器采集的第一扫描数据;

基于使用耦合到所述飞行器的第二扫描传感器采集的第二扫描数据来获得第二实时地图;以及基于所述第一实时地图和所述第二实时地图来生成第三实时地图。

17.根据权利要求16所述的方法,其中,所述第一实时地图是比所述第二实时地图精度更高的地图。

18.根据权利要求16所述的方法,其中,基于所述第一实时地图和所述第二实时地图来生成第三实时地图还包括:确定所述第一实时地图和所述第二实时地图的重叠部分;以及使用所述重叠部分来合并所述第一实时地图和所述第二实时地图。

19.根据权利要求16所述的方法,其中,所述第一扫描传感器包括LiDAR传感器,并且所述第二扫描传感器包括视觉传感器。

20.根据权利要求19所述的方法,其中,所述第一实时地图是基于从所述第一扫描传感器获得的点云数据来构建的,并且所述第二实时地图是基于从所述第二扫描传感器获得的可视数据来构建的。

21.根据权利要求20所述的方法,由飞行器从地面载运工具接收第一实时地图,其中,所述第一实时地图基于使用耦合到所述地面载运工具的第一扫描传感器采集的第一扫描数据,还包括:将所述第二实时地图发送给所述地面载运工具,所述地面载运工具被配置为:将所述第二实时地图中的坐标转换到一坐标系,以匹配所述第一实时地图;

在所述坐标系中确定所述第一实时地图和所述第二实时地图的重叠部分;以及向所述飞行器发送所述重叠部分。

22.根据权利要求16所述的方法,还包括:

确定与所述飞行器相关联的可用资源在阈值以下;

向所述地面载运工具发送生成所述第三实时地图的请求,所述请求包括所述第二实时地图;以及从所述地面载运工具接收所述第三实时地图。

23.根据权利要求16所述的方法,还包括:

从与所述地面载运工具通信的多个飞行器获得多个实时地图;

基于所述第一实时地图和来自所述多个飞行器的每个对应的实时地图来生成第四实时地图;以及向所述多个飞行器中的每个飞行器发送所述第四实时地图。

24.根据权利要求16所述的方法,其中,由所述飞行器从地面载运工具接收第一实时地图还包括:从所述地面载运工具接收所述飞行器的位置信息。

25.根据权利要求16所述的方法,其中,所述位置信息包括从所述飞行器接收的全球导航卫星系统“GNSS”。

26.根据权利要求16所述的方法,其中,所述位置信息包括使用所述第一扫描传感器确定的实时相对位置。

27.根据权利要求16所述的方法,其中,所述地面载运工具是自主载运工具。

28.根据权利要求16所述的方法,其中,所述地面载运工具被配置为:从耦合到所述地面载运工具的第三扫描传感器获得第三扫描数据,所述第一扫描传感器包括LiDAR传感器并且所述第三扫描传感器包括成像传感器,以及使用同步定位与地图构建“SLAM”算法,基于所述第一扫描数据和所述第三扫描数据来生成所述第一实时地图。

29.根据权利要求16所述的方法,还包括:

向所述地面载运工具发送所述第二扫描数据,其中,所述地面载运工具被配置为:使用同步定位与地图构建“SLAM”算法,基于所述第一扫描数据和所述第二扫描数据来生成所述第一实时地图,其中,所述第一扫描传感器包括LiDAR传感器并且所述第二扫描传感器包括成像传感器。

30.根据权利要求16所述的方法,还包括:

向所述地面载运工具发送第三地图,所述地面载运工具:基于所述第三地图生成控制数据以对所述飞行器进行导航;以及向所述飞行器发送所述控制数据;以及

执行所述控制数据。

31.根据权利要求16所述的方法,还包括:

基于第三地图来生成控制数据以对所述飞行器进行导航。

32.一种非暂时性计算机可读存储介质,包括存储在其上的指令,所述指令在由一个或多个处理器执行时使所述一个或多个处理器:由飞行器从地面载运工具接收第一实时地图和位置信息,其中,所述第一实时地图基于使用耦合到所述地面载运工具的第一扫描传感器采集的第一扫描数据;

基于使用耦合到所述飞行器的第二扫描传感器采集的第二扫描数据来获得第二实时地图;以及基于所述第一实时地图和所述第二实时地图来生成第三实时地图。

33.根据权利要求32所述的非暂时性计算机可读存储介质,其中,所述第一实时地图是比所述第二实时地图精度更高的地图。

34.根据权利要求32所述的非暂时性计算机可读存储介质,其中,为了基于所述第一实时地图和所述第二实时地图生成所述第三实时地图,所述指令在被执行时还使所述一个或多个处理器:确定所述第一实时地图和所述第二实时地图的重叠部分;以及使用所述重叠部分来合并所述第一实时地图和所述第二实时地图。

35.根据权利要求32所述的非暂时性计算机可读存储介质,其中,所述第一扫描传感器包括LiDAR传感器,并且所述第二扫描传感器包括视觉传感器。

36.根据权利要求35所述的非暂时性计算机可读存储介质,其中,所述第一实时地图是基于从所述第一扫描传感器获得的点云数据来构建的,并且所述第二实时地图是基于从所述第二扫描传感器获得的可视数据来构建的。

37.根据权利要求36所述的非暂时性计算机可读存储介质,其中,为了由飞行器从地面载运工具接收第一实时地图,其中,所述第一实时地图基于使用耦合到所述地面载运工具的第一扫描传感器采集的第一扫描数据,所述指令在被执行时还使所述一个或多个处理器:将所述第二实时地图发送给所述地面载运工具,其中,所述地面载运工具被配置为:将所述第二实时地图中的坐标转换到一坐标系,以匹配所述第一实时地图;

在所述坐标系中确定所述第一实时地图和所述第二实时地图的重叠部分;以及向所述飞行器发送所述重叠部分。

38.根据权利要求32所述的非暂时性计算机可读存储介质,其中,所述指令在被执行时还使所述一个或多个处理器:确定与所述飞行器相关联的可用资源在阈值以下;

向所述地面载运工具发送生成所述第三实时地图的请求,所述请求包括所述第二实时地图;以及从所述地面载运工具接收所述第三实时地图。

39.根据权利要求32所述的非暂时性计算机可读存储介质,其中,所述指令在被执行时还使所述一个或多个处理器:从与所述地面载运工具通信的多个飞行器获得多个实时地图;

基于所述第一实时地图和来自所述多个飞行器的每个对应的实时地图来生成第四实时地图;以及向所述多个飞行器中的每个飞行器发送所述第四实时地图。

40.根据权利要求32所述的非暂时性计算机可读存储介质,其中,所述位置信息包括从所述飞行器接收的全球导航卫星系统“GNSS”。

41.根据权利要求32所述的非暂时性计算机可读存储介质,其中,所述位置信息包括使用所述第一扫描传感器确定的实时相对位置。

42.根据权利要求32所述的非暂时性计算机可读存储介质,其中,所述地面载运工具是自主载运工具。

43.根据权利要求32所述的非暂时性计算机可读存储介质,其中,为了基于使用所述第一扫描传感器从所述地面载运工具的视角采集的第一扫描数据来获得第一实时地图,所述指令在被执行时还使所述一个或多个处理器:从耦合到所述地面载运工具的第三扫描传感器获得第三扫描数据,所述第一扫描传感器包括LiDAR传感器并且所述第三扫描传感器包括成像传感器;以及使用同步定位与地图构建“SLAM”算法,基于所述第一扫描数据和所述第三扫描数据来生成所述第一实时地图。

44.根据权利要求32所述的非暂时性计算机可读存储介质,其中,为了基于使用所述第一扫描传感器从所述地面载运工具的视角采集的第一扫描数据来获得第一实时地图,所述指令在被执行时还使所述一个或多个处理器:从所述飞行器获得所述第二扫描数据,所述第一扫描传感器包括LiDAR传感器并且所述第二扫描传感器包括成像传感器;以及使用同步定位与地图构建“SLAM”算法,基于所述第一扫描数据和所述第二扫描数据来生成所述第一实时地图。

45.根据权利要求32所述的非暂时性计算机可读存储介质,其中,所述指令在被执行时还使所述一个或多个处理器:从所述飞行器接收第三地图;

基于所述第三地图生成控制数据以对所述飞行器进行导航;以及向所述飞行器发送所述控制数据。

46.根据权利要求32所述的非暂时性计算机可读存储介质,其中,所述指令在被执行时还使所述一个或多个处理器:基于第三地图生成控制数据以对所述飞行器进行导航。

说明书全文

用于无人飞行器和地面载运工具之间的协作地图构建的技术

[0001] 相关申请的交叉引用
[0002] 本申请涉及已提交的题为“TECHNIQUES FOR SHARING MAPPING DATA BETWEEN AN UNMANNED AERIAL VEHICLE AND A GROUND VEHICLE(用于在无人飞行器和地面载运工具之间共享绘图数据的技术)”(代理案号1013P1147PCT)的国际申请,通过引用将其并入本文。

技术领域

[0003] 所公开的实施例总体上涉及用于绘图和物体检测的技术,并且更具体地但不排他地涉及无人飞行器和地面载运工具之间的协作地图构建。

背景技术

[0004] 公开了用于使用多个载运工具的协作地图构建技术。这样的系统可以包括:包括第一计算装置和第一扫描传感器的地面载运工具,以及包括第二计算装置和第二扫描传感器的飞行器。地面载运工具可以基于使用第一扫描传感器的第一扫描数据来获得第一实时地图,并且将第一实时地图和位置信息发送给飞行器。飞行器可以接收来自第一计算装置的第一实时地图和位置信息,基于使用第二扫描传感器采集的第二扫描数据来获得第二实时地图,并且基于第一实时地图和第二实时地图来获得第三实时地图。

发明内容

[0005] 公开了用于在多个载运工具之间共享传感器信息的技术。一种用于在多个载运工具之间共享传感器信息的系统,该系统可以包括:包括第一计算装置和第一扫描传感器的飞行器,以及包括第二计算装置和第二扫描的地面载运工具。飞行器可以使用第一扫描传感器来获得第一扫描数据并将第一扫描数据发送给第二计算装置。地面载运工具可以接收来自第一计算装置的第一扫描数据,从第二扫描传感器获得第二扫描数据,基于扫描数据中的至少一个参考物体来识别第一扫描数据和第二扫描数据的重叠部分,以及基于在第一扫描数据和第二扫描数据的重叠部分中识别出的一个或多个车行道物体来执行导航控制命令。

附图说明

[0006] 图1示出根据各实施例的飞行器和地面载运工具的示例。
[0007] 图2A至图2C示出根据各实施例的从飞行器和地面载运工具获得的车行道环境的扫描数据的示例。
[0008] 图3示出根据各实施例的扫描管理器和检测管理器的示例。
[0009] 图4示出根据各实施例的用于车行道物体检测的机器学习模型的示例。
[0010] 图5示出根据各实施例的在可移动物体环境中的多个载运工具之间共享传感器信息的方法的流程图。
[0011] 图6示出根据各实施例的飞行器和地面载运工具的示例。
[0012] 图7示出根据各实施例的使用飞行器和地面载运工具生成可移动物体环境的地图的示例。
[0013] 图8示出根据各实施例的使用飞行器和地面载运工具生成可移动物体环境的地图的备选示例。
[0014] 图9示出根据各实施例的通过飞行器绘图管理器和地面载运工具绘图管理器的协作地图构建的示例。
[0015] 图10示出根据各实施例的可移动物体环境中的协作地图构建的方法的流程图。
[0016] 图11示出根据各实施例的在软件开发环境中支持可移动物体接口的示例。
[0017] 图12示出根据各实施例的无人飞行器接口的示例。
[0018] 图13示出根据各实施例的软件开发套件(SDK)中针对无人飞行器的部件的示例。

具体实施方式

[0019] 在附图的图中通过示例而非限制的方式示出本发明,在附图中,相同的附图标记表示相似的元件。应当注意到:在本公开中针对“实施例”或“一个实施例”或“一些实施例”的引用不一定指的是相同实施例,且这种引用意味着至少一个实施例。
[0020] 本发明的以下描述描述了使用可移动物体的目标映射。为了简化说明,通常使用无人驾驶飞行器(UAV)作为可移动物体的示例。对于本领域技术人员显而易见的是,可以使用其他类型的可移动物体而没有限制。
[0021] 自动驾驶技术可以包括各种感测、确定和执行任务,例如环境感测、路径规划、行为确定和控制执行。关于感测,自动驾驶载运工具可以基于由安装在载运工具上的一个或多个传感器收集的数据来分析其周围环境,传感器包括例如视觉传感器、LiDAR传感器、毫米波雷达传感器、超声传感器等。可以使用图像处理工具、机器学习技术等对传感器数据进行分析,以确定深度信息和语义信息,来辅助载运工具识别周围的人和物体。另外,LiDAR传感器为载运工具提供准确的、更长距离的测量和定位数据。
[0022] 由于传感器安装在载运工具上,因此存在传感器的视野限制和视角限制。例如,在分析行车道时,图像数据可以由前置相机捕捉,并且可以通过将图像数据的前视透视图投影到鸟瞰图图像(例如俯视透视图)来对该图像数据的透视图进行变换。这种投影会引入失真,从而导致图像数据的准确性下降。透视效果导致车道线和图像数据中表示的其他物体会聚在比它们离成像传感器的距离更远的位置。因此,载运工具前方可通过前置相机(或其他成像传感器)清楚地辨识出的环境的长度受到限制。因此,在透视变换之后,车道标记和其他较远的物体通常会相对模糊。取决于用于获得图像数据的鸟瞰图的投影类型,图像中表示远离成像传感器的物体的部分可能变得更加失真,使得难以可靠地应用诸如Canny边缘检测、二进制图像分析和其他技术之类的图像处理技术来识别车道标记和图像数据中的其他物体。
[0023] 另外,透视变换操作需要特定的相机有效,即使如此,也必须在可以对图像进行变换之前准备好图像。此外,相机安装在载运工具上的方式和当前的车行道状况,如车行道的角度,将对变换的可靠性和基于经变换的图像的任何分析产生显著影响。此外,诸如用于获得二进制图像的技术之类的技术需要梯度和颜色阈值,它们可能通常不适用于大多数车行道状况(例如天气条件、年久失修的道路、以及可能降低诸如车道标记之类的一些车行道物体的可见度的其他车行道状况)。所有这些分析还都需要能够快速地执行,然而传统技术可以处理大约4.5帧/秒(FPS),而车载相机的帧数可能为30FPS或更高。
[0024] 在一些实施例中,随着汽车在车行道上行进,它可以使用相机来捕捉车行道环境的图像。这些图像可以包括其他附近的汽车、树木、灯杆、标志和其他附近的物体的表示。在现有系统中,可以将这些图像从前透视视图变换到俯视图,然后可以将其用于生成本地地图。然而,由于相机安装在汽车前部的方式,所以相机具有有限的视野。当将这些图像变换为俯视图时,变换会引入不准确性,例如模糊或其他失真。此外,如上所述,变换本身需要附加的时间和处理资源。由于经变换的图像中的不准确性,所以基于这些图像生成的结果地图也不太准确和有用。这也限制了依赖于这些地图的特征的有用性和/或可靠性,例如车道检测和其他辅助驾驶功能。代替仅依赖于经变换的图像,实施例可以使用通过无人机或其他无人飞行器(UAV)捕捉的图像,无人机或其他无人飞行器(UAV)可以直接捕捉俯视图像,而无需任何变换或相关联的不准确性。然后,汽车可以使用其自身的图像和由无人机采集的那些图像来生成地图,减少或消除了由变换引入的潜在不准确性。同样,可以更有效地生成地图,而无需时间或资源对图像进行变换。
[0025] 实施例通过使用飞行器采集数据并将数据发送给地面载运工具以用于物体检测和其他导航任务中来改善环境数据的数据采集和处理。例如,飞行器可以捕捉车行道环境的鸟瞰图并将它提供给地面载运工具进行处理。因为鸟瞰图是直接从飞行器获得的,所以不需要透视变换,因此数据没有透视变换引起的失真。在各实施例中,地面载运工具可以使用由飞行器捕捉的扫描数据(例如图像数据、点云数据等)来执行自主驾驶和/或辅助驾驶功能。例如,地面载运工具可以使用从飞行器接收的扫描数据来执行车道检测。可以如通常已知的技术来执行车道检测,例如通过使用如Canny边缘检测来识别扫描数据中指示车道边界的车道标记。附加地或备选地,可以执行二进制图像分析。可以通过利用梯度和颜色阈值来获得二进制图像。可以对扫描数据中的每个像素进行分析,当像素的值比阈值高时,可以将该像素设置为1,并且当像素比阈值低时,可以将该像素设置为0。可以在得到的二进制图像上运行滑动窗,以计算用于拟合二进制图像中表示的车道的多项式曲线。因为从飞行器接收的扫描数据未经变换,因此没有因透视变换而引起的失真,所以对该扫描数据执行的车道检测提供更准确的车道检测结果。另外,由于不需要透视变换,因此可以更快地处理图像数据。
[0026] 图1示出根据各实施例的在可移动物体环境100中的可移动物体的示例。如图1所示,可移动物体环境100中的客户端装置110可以经由通信链路106与可移动物体104通信。可移动物体104可以是无人飞行器、无人载运工具、手持装置和/或机器人。客户端装置110可以是便携式个人计算装置、智能电话、遥控器、可穿戴计算机、虚拟现实/增强现实系统、个人计算机和/或包括在另一载运工具(例如地面载运工具111,如自主载运工具、无人载运工具、载人载运工具等)中的计算装置。在一些实施例中,客户端装置可以从地面载运工具
111移除。例如,客户端装置可以是便携式个人计算装置(例如智能电话、平板计算机或其他便携式装置),用户可以经由诸如USB、蓝牙、WiFi或其他接口之类的有线或无线通信接口将便携式个人计算装置附接到地面载运工具。另外,地面装置111可以包括通信系统120A,其负责处理客户端装置110和可移动物体104之间的经由通信系统120B的通信。例如,无人飞行器可以包括上行链路和下行链路。上行链路可以用于发送控制信号,下行链路可以用于发送媒体或视频流。
[0027] 根据各实施例,通信链路106可以是网络(网络的一部分),其基于各种无线技术,例如WiFi、蓝牙、3G/4G/5G和其他射频技术。此外,通信链路106可以基于其他计算机网络技术,例如互联网技术或任何其他有线或无线联网技术。在一些实施例中,通信链路106可以是非网络技术,包括直接的点对点连接,例如通用串行总线(USB)或通用异步收发器(UART)。
[0028] 在各实施例中,可移动物体环境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可以从可移动物体中移除。
[0029] 尽管可移动物体104通常被描述为飞行器,但是这不是限制性的,并且可以使用任何合适类型的可移动物体。本领域技术人员将了解,本文中在飞行器系统的背景下描述的实施例中的任何实施例可以被应用于任何合适的可移动物体(例如UAV)。如本文所使用的,“飞行器”可以用于指代能够飞行的可移动物体的子集(例如飞行器、UAV等),而“地面载运工具”可被用于指代在地面上行进的可移动物体的子集(例如由驾驶者人工控制或自主控制的汽车和卡车)。
[0030] 根据各实施例,可移动物体104可以包括一个或多个移动机构116(例如推进机构)、感测系统118和通信系统120B。移动机构116可以包括旋翼、螺旋桨、叶片、发动机、电机、轮子、轴、磁体、喷嘴、动物或人类中的一个或多个。例如,可移动物体可以具有一个或多个推进机构。移动机构可以都是相同的类型。备选地,移动机构可以是不同类型的移动机构。移动机构116可以使用诸如支撑元件(例如驱动器轴)之类的任何合适的装置被安装在可移动物体104上(反之亦然)。移动机构116可以安装在可移动物体1100的任何合适的部分上,例如顶部、底部、前部、后部、侧面或其合适的组合。
[0031] 在一些实施例中,移动机构116可以使可移动物体104能够垂直地从表面起飞或垂直地降落在表面上,而不需要可移动物体104的任何水平移动(例如无需沿着跑道行进)。可选地,移动机构116可以可操作地允许可移动物体104以特定位置和/或朝向悬停在空中。移动机构116中的一个或多个可以独立于其他移动机构受到控制,例如由在客户端装置110、计算装置112或与移动机构通信的其他计算装置上运行的应用来控制。备选地,移动机构116可以被配置为同时受到控制。例如,可移动物体104可以具有多个水平朝向的旋翼,其可以向可移动物体提供升力和/或推力。可以致动多个水平朝向的旋翼以向可移动物体104提供垂直起飞、垂直降落和悬停能力。在一些实施例中,水平朝向的旋翼中的一个或多个可以沿顺时针方向旋转,而水平朝向的旋翼中的一个或多个可以沿逆时针方向旋转。例如,顺时针旋翼的数量可以等于逆时针旋翼的数量。为了控制由每个旋翼产生的升力和/或推力,从而调整可移动物体104(例如相对于多达三个平移度和多达三个旋转度)的空间布局、速度和/或加速度,可以独立地改变每个水平朝向的旋翼的转速。如本文另外讨论的,控制器,例如飞行控制器114,可以向移动机构116发送移动命令以控制可移动物体104的移动。这些移动命令可以基于从客户端装置110、计算装置112或其他实体接收的指令和/或从客户端装置110、计算装置112或其他实体接收的指令中得到。
[0032] 感测系统118可以包括可感测可移动物体104(例如相对于各个平移度和各个旋转度)的空间布局、速度和/或加速度的一个或多个传感器。一个或多个传感器可以包括:包括GPS传感器、运动传感器、惯性传感器、接近传感器或成像传感器(例如相机)的传感器中的任意传感器。由感测系统118提供的感测数据可用于(例如使用合适的处理单元和/或控制模块)控制可移动物体104的空间布局、速度和/或朝向。备选地,感测系统118可用于提供关于可移动物体周围的环境的数据,例如天气条件、接近潜在障碍物、地理特征的位置、人造结构的位置等。
[0033] 飞行控制器114可以连接到各种功能模块108,例如磁力计、气压计和惯性测量单元(IMU)。在一些实施例中,通信系统120B可以代替飞行控制器114或者作为其补充连接到计算装置112。在一些实施例中,由一个或多个功能模块108和感测系统118采集的传感器数据可以从飞行控制器传递到计算装置112。在一些实施例中,计算装置112可以经由诸如以太网或通用串行总线(USB)的高带宽连接来连接到扫描传感器124。在一些实施例中,感测系统可以包括定位传感器。定位传感器可以包括无线电,例如4G、5G或其他蜂窝或移动网络无线电。实时动态(RTK)模块可以使用无线电来增强全球导航卫星服务(GNSS)模块采集的定位数据,GNSS模块例如GPS、GLOSNASS、伽利略、北斗等。RTK模块可以使用无线电从参考站接收参:考信号,并且提供对GNSS模块提供的定位数据的校正。
[0034] 如图1所示,地面载运工具111还可以包括耦合到客户端装置110的一个或多个传感器。在一些实施例中,这些传感器可以包括扫描传感器130和扫描传感器132。扫描传感器130和扫132可以包括LiDAR传感器、高清成像传感器(例如静止相机或视频相机)或提供对目标环境的高分辨率扫描的其他传感器。如图1所示,扫描传感器130可以耦合到地面载运工具111上的上部位置。扫描传感器130定位为捕捉地面载运工具周围的环境的扫描数据。
例如,可以将LiDAR传感器配置为采集表示载运工具的周围环境的360度视图的点云数据。
类似地,高清成像传感器可以采集地面载运工具周围的环境的图像数据(例如静止图像和视频)。扫描传感器132可以耦合到地面载运工具111的前方位置处,以捕捉地面载运工具正前方的环境的扫描数据。例如,扫描传感器132可以采集与地面载运工具正在其中运行的车行道环境有关的扫描数据(例如识别车行道物体(如车行道环境中存在的车道标记、其他载运工具、树木和其他物体)、驾驶状况(例如天气条件)、交通信息(包括与附近载运工具有关的信息)、车行道信息(例如道路类型、地面状况等))。在一些实施例中,地面载运工具111还可以包括定位传感器134。在一些实施例中,定位传感器可以包括全球导航卫星服务(GNSS)模块,例如GPS、GLOSNASS、伽利略、北斗等。定位传感器134可包括无线电,例如4G、5G或其他蜂窝或移动网络无线电。实时动态(RTK)模块可以使用无线电来增强GNSS模块采集的定位数据。RTK模块可以使用无线电从参考站接收参考信号,并且提供对GNSS模块提供的定位数据的校正。
[0035] 通信系统120B使得能够经由通信链路106和通信系统120A与客户端装置110的通信,通信链路106可以包括如上面所讨论的各种有线和/或无线技术。通信系统120A或120B可以包括适合于无线通信的任意数量的发送器、接收器和/或收发器。通信可以是单向通信,使得数据只能沿一个方向发送。例如,单向通信可以仅涉及可移动物体104向客户端装置110发送数据,或反之亦然。可以从客户端装置的通信系统120A的一个或多个发送器向可移动物体的通信系统120B的一个或多个接收器发送数据,或反之亦然。备选地,通信可以是双向通信,使得可以在可移动物体104和客户端装置110之间的两个方向上发送数据。双向通信可以涉及从通信系统120B的一个或多个发送器向客户端装置110的通信系统120A的一个或多个接收器发送数据,并且反之亦然。
[0036] 在一些实施例中,客户端装置110可以通过通信链路106的透明传输信道与安装在计算装置112上的扫描管理器126进行通信。可以通过可移动物体的飞行控制器来提供透明传输信道,透明传输信道允许数据不变地(例如“透明”地)传递到扫描管理器或计算装置112上的其他应用。在一些实施例中,扫描管理器126可以利用软件开发工具包(SDK)、应用编程接口(API)或可移动物体、计算装置、扫描传感器124等可用的其他接口。在各实施例中,扫描管理器可以由可移动物体104上的一个或多个处理器(例如,飞行控制器114或其他处理器)、计算装置112、遥控器111、客户端装置110或与可移动物体104通信的其他计算装置来实现。在一些实施例中,扫描管理器126可被实现为在客户端装置110、计算装置112或与可移动物体104通信的其他计算装置上执行的应用。
[0037] 在一些实施例中,在客户端装置110或计算装置112上执行的应用(例如检测管理器128或扫描管理器126)可以向可移动物体104、载体122和搭载物124中的一个或多个提供控制数据,并且从可移动物体104、载体122和搭载物124中的一个或多个接收信息(例如,可移动物体、载体或搭载物的位置和/或运动信息;由搭载物感测的数据,例如由搭载物相机捕捉的图像数据;以及根据由搭载物相机捕捉的图像数据生成的数据)。在一些实施例中,应用可以将控制数据基于从扫描传感器130和/或扫描传感器132接收的扫描数据。
[0038] 在一些实施例中,控制数据(例如,经由移动机构116的控制)可以导致可移动物体的位置和/或朝向的修改,和/或(例如,经由载体122的控制)导致搭载物相对于可移动物体的移动。来自应用的控制数据可以导致搭载物的控制,例如对扫描传感器124、相机或其他图像捕捉装置的操作的控制(例如拍摄静止或动态图片、放大或缩小、打开或关闭、切换成像模式、改变图像分辨率、改变焦点、改变景深、改变曝光时间、改变视角或视野)。
[0039] 在一些实例中,来自可移动物体、载体和/或搭载物的通信可以包括来自(例如,感测系统118或者感测传感器124或其他搭载物的)一个或多个传感器的信息和/或基于感测信息生成的数据。通信可以包括来自一个或多个不同类型的传感器(例如,GPS传感器、运动传感器、惯性传感器、接近传感器或成像传感器)的感测信息。这样的信息可以涉及可移动物体、载体和/或搭载物的定位(例如位置、朝向)、移动或加速度。来自搭载物的这种信息可以包括由搭载物捕捉的数据或搭载物的感测状态。
[0040] 在一些实施例中,可以将计算装置112添加到可移动物体。计算装置可以由可移动物体供电并且可以包括一个或多个处理器,例如CPU、GPU、现场可编程门阵列(FPGA)、片上系统(SoC)、专用集成电路(ASIC)或其他处理器。计算装置可以包括操作系统(OS),例如Windows 基于 的操作系统或其他OS。任务处理可以从飞行控制器114卸载到计算装置112。在各实施例中,扫描管理器115可以在计算装置112、客户端装置
110、搭载物124、远程服务器(未示出)或其他计算装置上执行。在一些实施例中,计算装置
112和客户端装置110可以是相同的装置。
[0041] 如所讨论的,可以使用诸如单应性(homography)的透视变换技术来将地面载运工具上的扫描传感器130采集的图像数据变换为鸟瞰图。这导致鸟瞰图失真,其可能丢失各车行道物体的细节,例如车道标记的平行性、模糊的标记等,这可能导致在识别地面载运工具111行进的车道时发生错误。代替依赖于将前视图像变换为鸟瞰图图像,实施例可以利用从可移动物体104获得的鸟瞰图扫描数据。在一些实施例中,扫描管理器126可用于从地面载运工具111正在其中运行的车行道环境采集扫描数据。在一些实施例中,扫描数据可以包括在地面载运工具111前方或周围的车行道的图像数据。可以在由客户端装置110指示的位置处或由客户端装置110指示的位置附近采集扫描数据(例如卫星导航系统坐标、相对于地面载运工具的位置等)。图像数据可以由扫描管理器126发送给地面载运工具111的检测管理器128。
[0042] 在一些实施例中,检测管理器可以从扫描传感器130获得扫描数据。来自扫描传感器13()的扫描数据可以包括来自前置扫描传感器130的前视图像数据。在一些实施例中,可以将扫描传感器130安装到地面载运工具111,以捕捉后视图像数据、侧视图像数据、俯视图像数据或任何合适方向上的图像数据。检测管理器128可以使用扫描数据中的参考物体来识别从可移动物体和地面载运工具接收的扫描数据中的重叠部分。参考物体可以包括车行道环境中的路标、灯杆、树木或其他可识别的物体。在一些实施例中,参考物体可以是车行道环境中的坐标(例如GPS坐标),其与对应的扫描数据中的点相对应。这些坐标可以表示与可由地面载运工具和飞行器二者看到的任意点相对应,例如可移动物体104正下方的点。因为由可移动物体捕捉的扫描数据不包括任何与变换有关的失真,所以与经变换的前向透视图(例如,前视图)相比,该扫描数据可用于对地面载运工具111前方更长的距离执行车道检测。在一些实施例中,可以将前视图像数据变换为俯视图(例如,鸟瞰图),并且可以识别出由可移动物体捕捉的扫描数据和经变换的鸟瞰图之间的重叠部分。然后,可以基于重叠部分,使用由可移动物体活捉的扫描数据对经变换的鸟瞰图进行校准。在各实施例中,可以使用扫描匹配技术、特征匹配或其他配准技术来配准扫描数据并识别重叠部分。
[0043] 图2A至图2C示出根据各实施例的从飞行器和地面载运工具获得的车行道环境的扫描数据的示例。如图2A所示,车行道环境200可以包括在车行道上行驶的地面载运工具和在车行道上方飞行的飞行器。如所讨论的,每个载运工具可以包括一个或多个扫描传感器,以从车行道环境采集扫描数据。扫描数据的一种用途是执行各种自主驾驶和/或辅助驾驶功能,例如车道检测。
[0044] 如所讨论的,由地面载运工具111上的扫描传感器捕捉的扫描数据可以从载运工具视角捕捉,如图2B中的206所示。如图2B所示,载运工具透视图导致车道会聚。可以使用透视变换技术将载运工具视图变换为鸟瞰视图。然而,这可能导致扫描数据的失真。例如,取决于使用的透视变换,车行道环境200中距地面载运工具的扫描传感器较远的部分可能变得模糊,并且在经变换的扫描数据中可能不再显示为平行。根据使用的车道检测技术,这些失真可能导致车道被误识别。同样,其他车行道物体,例如其他载运工具、标志、树木之类的环境障碍物,和其他这种物体也可能在经变换的图像数据中被误识别。
[0045] 然而,根据实施例,如208处所示,可以直接从飞行器104获得车行道环境200的鸟瞰图。从飞行器获得的扫描数据不需要进行变换即可显示来自鸟瞰视图的车行道环境。因此,扫描数据没有由透视变换引起的失真。
[0046] 因此,在各实施例中,地面载运工具111可以使用由飞行器104捕捉的扫描数据(例如图像数据、点云数据等)来执行自主驾驶和/或辅助驾驶功能。例如,地面载运工具可以使用从飞行器接收的扫描数据来执行车道检测。可以如通常已知的技术来执行车道检测,例如通过使用如Canny边缘检测来识别扫描数据中指示车道边界的车道标记。附加地或备选地,可以执行二进制图像分析。可以通过利用梯度和颜色阈值来获得二进制图像。可以对扫描数据中的每个像素进行分析,当像素的值比阈值高时,可以将该像素设置为1,并且当像素比阈值低时,可以将该像素设置为0。可以在得到的二进制图像上运行滑动窗,以计算用于拟合二进制图像中表示的车道的多项式曲线。因为从飞行器接收的扫描数据未经变换,因此没有因透视变换而引起的失真,所以对该扫描数据执行的车道检测提供更准确的车道检测结果。
[0047] 可以对从地面载运工具接收的扫描数据进行校准,以利用通过分析从飞行器接收的扫描数据而获得的更准确的车道检测信息。例如,如图2A至图2C所示,可以选择对可被飞行器和地面载运工具二者观察到的参考物体202执行校准。参考物体202可以是车行道环境中的物理物体,例如树木(如图所示)、路标、立杆或固定的车行道物体。附加地或备选地,参考物体202可以是车行道环境中的点204(例如特定的GPS坐标)。例如,如图2A所示,参考物体可以是在飞行器正下方的点204(例如,全局位置或者相对于地面载运工具或飞行器的位置)。
[0048] 如图2B所示,可以在载运工具扫描数据中识别参考物体202。参考物体可以与扫描数据中的坐标相关联(例如基于像素的图像坐标系)。例如,图2B所示的示例前视图是车行道环境200在二维图像平面上的投影。使用地面载运工具的扫描传感器的固有参数(例如焦距、镜头参数等)和外部参数(例如位置、朝向等),可以使用投影矩阵从二维图像平面的图像坐标系转换到三维车行道环境的世界坐标系。类似地,可以使用透视变换从前视图像平面转换到鸟瞰图像平面。这些变换允许将经变换的鸟瞰图中的位置映射到前视图和映射到车行道环境200。对于物理参考物体,可以识别扫描数据中表示参考物体的像素。在一些实施例中,诸如物体识别之类的图像处理技术和/或机器学习技术可用于识别扫描数据中的参考物体。可以基于扫描数据将表示扫描数据中的参考物体的像素映射到经变换的鸟瞰图。
[0049] 如所讨论的,参考物体可以是飞行器正下方的位置或车行道环境中的其他点。飞行器可以使用诸如全球导航卫星服务(GNSS)传感器之类的定位传感器,例如GPS、北斗等,来确定其位置。参考物体的位置可以是高度值归零(或设置为另一值,例如地面载运工具的高度值)的飞行器的位置。在一些实施例中,飞行器可以将其位置提供给地面载运工具。在一些实施例中,地面载运工具可以使用耦合到地面载运工具的一个或多个传感器来识别飞行器相对于地面载运工具的位置的位置。传感器可以包括红外测距仪、超声波测距仪、雷达传感器、LiDAR传感器等。地面载运工具可以使用传感器数据来确定飞行器相对于地面载运工具的位置。地面载运工具可以包括用于确定地面载运工具的当前位置的GNSS传感器。使用其当前位置和飞行器的相对位置,地面载运工具可以确定飞行器在车行道环境的世界坐标系中的位置。如所讨论的,地面载运工具可以将世界坐标系中的位置转换到前视图像206的图像坐标系。一旦被转换到图像坐标系,地面载运工具就可以将该位置从图像坐标系映射到经变换的鸟瞰图坐标系。
[0050] 在一些实施例中,当飞行器发送其鸟瞰图208时,地面载运工具可以识别由飞行器捕捉的鸟瞰图208和基于由地面载运工具捕捉的前视图206的经变换的鸟瞰图的重叠部分。例如,参考物体在两个图像中的位置可用于配准两个图像和/或将飞行器的扫描数据映射到地面载运工具的扫描数据。在一些实施例中,飞行器可以提供在地面载运工具前方比地面载运工具的扫描数据所示的延伸得更远的扫描数据。因此,地面载运工具可以使用来自飞行器的使用参考物体配准的扫描数据来扩展其车行道环境的视野。
[0051] 在一些实施例中,地面载运工具111可以使用绝对坐标(例如,使用全球导航卫星服务坐标)或相对于地面载运工具的位置来指示飞行器捕捉在车行道环境中的特定位置处或车行道环境中的特定位置附近的扫描数据。例如,地面载运工具可以向地面载运工具的前方100米位置的飞行器发送控制数据。飞行器可以处理控制数据并且飞行器可以生成发送给飞行器的移动机构116的移动命令,该移动命令使飞行器行进到所指示的位置。然后,飞行器可以在所指示的位置处捕捉扫描数据并且将扫描数据发送给地面载运工具以进行进一步处理。
[0052] 图3示出根据各实施例的扫描管理器和检测管理器的示例300。如图3所示,扫描管理器126可以在计算装置112的一个或多个处理器302上执行。一个或多个处理器302可以包括CPU、GPU、FGPA、SoC或其他处理器。扫描管理器126可以包括传感器接口303和捕捉管理器308。
[0053] 传感器接口303可以包括扫描传感器接口304和定位传感器接口306。传感器接口303可以包括硬件接口和/或软件接口。扫描传感器接口304可以从扫描传感器(例如成像装置、LiDAR传感器或其他扫描传感器)接收数据,并且定位传感器接口306可以从定位传感器(例如GNSS传感器、RTK传感器等)接收数据。在各实施例中,扫描传感器可以产生点云格式的数据。点云数据可以是目标环境的三维表示。在一些实施例中,点云数据可以转换成矩阵表示。在一些实施例中,扫描传感器可以产生图像数据,例如飞行器正在其中行进的车行道环境的高清图像和/或视频。定位数据可以包括飞行器的GPS坐标。
[0054] 在一些实施例中,可以从指示飞行器移动到特定位置的客户端装置110接收控制数据。可以经由通信系统120B接收控制数据,并且将控制数据直接发送给将用于生成移动命令的飞行控制器114,移动命令使飞行器移动到所指示的位置。在一些实施例中,控制数据或至少所指示的位置可以由通信系统120B或飞行控制器114传递给捕捉管理器308。捕捉管理器308可以包括位置监测器310,其基于通过定位传感器接口306接收的位置信息来监测飞行器的当前位置。位置监测器310还可以将所指示的位置与飞行器的当前位置进行比较。例如,位置监测器可以实现硬件或软件逻辑,以比较两个输入值(例如飞行器的当前坐标和飞行器的目标坐标),并且输出指示两个输入值是否匹配的二进制值。如果两个输入值匹配,则可以将信号发送到扫描触发器312,扫描触发器312然后可以经由扫描传感器接口304向扫描传感器发送指令,该指令使扫描传感器捕捉车行道环境的扫描数据。如所讨论的,这可以包括使用成像装置捕捉的图像数据和/或使用LiDAR传感器捕捉的点云数据、和/或车行道环境的其他扫描数据。一旦捕捉到扫描数据,就可以将扫描数据发送给客户端装置110以进行进一步处理。
[0055] 客户端装置110可以包括在一个或多个处理器314上执行的检测管理器128。一个或多个处理器302可以包括CPU、GPU、FGPA、SoC或其他处理器。检测管理器128可以包括传感器接口316和扫描数据处理器317。传感器接口可以包括硬件接口或软件接口,硬件接口或软件接口促进检测管理器128与耦合到地面载运工具111的各扫描传感器和定位传感器之间的数据和/或命令的通信。扫描数据处理器317可以包括数据管理器322,数据管理器322经由通信系统120A接收来自扫描管理器126的扫描数据,并且经由扫描传感器接口318从耦合到地面载运工具111的自带扫描传感器接收扫描数据。来自扫描管理器126的扫描数据可以包括定位数据,定位数据表示在捕捉扫描数据时飞行器的位置。在一些实施例中,数据管理器322还可以经由定位传感器接口320从地面载运工具上的定位传感器采集位置数据。
[0056] 数据管理器322可以将从扫描管理器接收的扫描数据与从地面载运工具接收的扫描数据相关联。例如,数据管理器可以为成对的扫描数据加上时间戳,以使它们彼此相关联。已相关联的数据可以传递给图像变换管理器324。如所讨论的,图像变换管理器可以实现透视变换技术,以将由地面载运工具采集的前视扫描数据转换为鸟瞰图。图像变换管理器324可以识别飞行器捕捉的扫描数据与基于地面载运工具捕捉的前视扫描数据的经变换的鸟瞰图的重叠部分。例如,如上所述,参考物体在两个图像中的位置可用于配准两个图像和/或将飞行器的扫描数据映射到地面载运工具的扫描数据。在一些实施例中,可以在由飞行器捕捉的扫描数据和由地面载运工具捕捉的前视扫描数据之间执行匹配。如果数据匹配和/或如果识别出重叠,则在与俯视图像进行匹配之前不需要对数据进行变换。如果它们匹配,则可以使用空中扫描数据来代替对前视扫描数据进行变换。备选地,在一些实施例中,可以将前视扫描数据变换为俯视图,并且空中扫描数据可用于校准经变换的俯视图(例如,对失真进行校正)。
[0057] 一旦从飞行器接收的扫描数据已经与地面载运工具的经变换的扫描数据匹配,就可以将来自飞行器的扫描数据传递给物体检测器326。物体检测器326可以实现各种物体检测技术,例如经训练的用于识别扫描数据中的车行道物体的物体检测机器学习模型和/或用于识别车行道物体(例如车道标记)的边缘检测技术。当在从飞行器接收的扫描数据中识别出车行道物体时,可以将物体的位置映射到它们在由地面载运工具捕捉的扫描数据中的对应位置。在一些实施例中,可以基于在扫描数据中识别的物体来生成导航命令。例如,当在扫描数据中检测到车道时,可以计算对扫描数据中检测到的车道进行拟合的多项式曲线。多项式曲线可用于确定地面载运工具要遵循以保持在车道内的轨迹。可以将其提供给导航控制器328,导航控制器328可以为地面载运工具生成移动命令。
[0058] 在一些实施例中,物体检测器326可以确定经采集的扫描数据在地面载运工具前方提供的范围不足以在足够的时间中识别出物体,从而确定适当的导航命令。例如,天气条件可以限制可见度,或者前方车行道可能是蜿蜒曲折的,从而限制了地面载运工具的扫描传感器的有效范围。在一些实施例中,物体检测器可以包括机器学习模型,该机器学习模型被训练为确定采集扫描数据的最佳扫描范围(例如,地面载运工具前方的距离)。可以基于车行道状况(天气、交通等)和/或驾驶状况(当前速度、方向等)来训练该模型。在一些实施例中,可以在由已经在该区域中行进的其他地面载运工具采集的地面载运工具的当前位置处的过去导航数据上训练该模型。当物体检测器确定需要不同的扫描范围时,物体检测器可以向导航控制器328发送请求,以指示飞行器移动到新的位置,以在新的扫描范围捕捉扫描数据。导航控制器328可以经由通信系统120A向飞行器发送控制数据,并且作为响应,飞行器可以将其自身重新定位到所指示的位置。
[0059] 尽管针对飞行器‑地面载运工具对讨论了实施例,但是在各实施例中,一个飞行器可以向多个地面载运工具提供扫描数据。另外,在一些实施例中,多个飞行器可以与地面载运工具通信,使每个飞行器在不同位置捕捉扫描数据并将扫描数据发送给地面载运工具。地面载运工具可以使用扫描数据来构建地面载运工具周围的本地地图(例如使用同步定位与地图构建(SLAM)技术)。在一些实施例中,可以将飞行器存储在地面载运工具中。例如,地面载运工具可以包括平台,飞行器可以从该平台起飞和降落。地面载运工具可以例如确定当前的驾驶条件需要附加的扫描数据并且可以发射飞行器来采集扫描数据。当条件改善时或当飞行器需要额外充电时,飞行器可以返回地面载运工具进行充电和存储。
[0060] 图4示出根据各实施例的用于车行道物体检测的机器学习模型的示例。如所讨论的,在各实施例中,可以通过飞行器和地面载运工具获得扫描数据。可以将由地面载运工具获得的前视扫描数据变换为中间格式(例如鸟瞰图),该中间格式使由地面载运工具捕捉的扫描数据能够使用由飞行器捕捉的鸟瞰图扫描数据来校准。校准可以包括以下二者:将中间格式与由飞行器捕捉的扫描数据配准(例如基于一个或多个参考物体在两个数据集中的位置)、以及中间格式的增强(例如将包括在由飞行器获得的扫描数据中的对应深度信息添加到中间格式的重叠部分)。在各实施例中,可以将中间格式作为输入提供给机器学习模型,以对扫描数据执行物体检测、模式识别或其他推断。
[0061] 在一些实施例中,由飞行器获得的每个图像在像素级别与中间格式进行匹配(例如其中在由飞行器和地面载运工具获得的扫描数据的至少一部分重叠)。可以训练机器学习模型,例如卷积神经网络(CNN)400,以识别与中间格式中的每个像素或像素块(patch)相关联的语义信息。例如,可以维护包括地面实况标签(例如车道标记、道路、载运工具、交通障碍等)的训练数据集。可以在训练数据集上训练CNN400,直到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中描绘了一种特定的架构,但是根据实施例,可以使用各种机器学习模型。
[0062] 当执行推断时,可以将输入图像数据402(例如表示车行道环境的鸟瞰图的经变换和校准的中间格式)提供给经训练的CNN 400。CNN 400可以分析输入图像数据402并且提供可以表示为N*K*H*W的输出404,其中,针对输入的N个块的N*W个像素,输出K个通道的语义信息。每个通道的输出值表示该通道的语义信息的概率。例如,对于某个像素,输出可以是车道标记80%、道路13%、载运工具1%。结果,可以表征输入图像数据中的每个像素的内容。这允许例如识别出输入图像中显示车道标记的每个像素。然后可以针对那些像素进行曲线拟合,以识别载运工具正在其中行进的当前车道。然后,地面载运工具可以将投影从中间格式反变换为前视图,并且将包括车道标记的那些像素映射到前视图。得到的曲线可用于生成移动命令,该移动命令使地面载运工具遵循将地面载运工具保持在车道中的轨迹。
[0063] 如上文所讨论的,在一些实施例中,可以使用在飞行器和地面载运工具二者的扫描数据中描绘的参考物体来校准地面载运工具的扫描数据。为了解决两个透视图(perspective)之间的照明差异,可以使用各种技术,例如零均值标准化互相关(ZNCC)、半全局匹配(SGM),并且可以使用扫描来补偿输入扫描数据之间的辐射度变化。在一些实施例中,可以使用k均值聚类或其他聚类技术来快速识别扫描数据中的特征。可以基于可能的重要性来为特征分配权重。在一些实施例中,可以使用参考物体在扫描数据中的位置来执行校准。可以向与参考物体相对应的一个或多个像素分配标签,以指示它们与参考物体相关联。这为扫描数据提供了像素级别的校准。
[0064] 如所讨论的,在一些实施例中,扫描数据可以包括点云数据。点云数据可以是目标环境(例如车行道环境)的三维表示。该3D表示可以被划分为体素(例如3D像素)。绘图数据的点云中的每个点都与相对于扫描传感器所确定的扫描器参考帧中的位置相关联。然后,由定位传感器产生的可移动物体的定位数据可用于将扫描器参考帧中的该位置转换到世界坐标系中的输出参考帧。在一些实施例中,可以在将扫描数据从飞行器传送到地面载运工具之前对其进行编码。例如,由飞行器上的扫描传感器获得的扫描数据可以是密集表示,可以在发送给地面载运工具之前将其变换为稀疏表示。在一些实施例中,可以发送扫描数据的每一帧之间的差异,而不是发送扫描数据的整个帧。在一些实施例中,由飞行器获得的点云数据可用于增强由地面载运工具获得的点云数据。例如,飞行器可以更准确地捕捉远离地面载运工具的物体的点云的X分量和Y分量。该数据可以与地面载运工具共享,从而提高安装有三维点云的地面载运工具的计算准确性。
[0065] 在一些实施例中,飞行器和地面载运工具可以各自配置为使用同步定位与地图构建(SLAM)技术来绘制车行道环境,以生成本地地图。SLAM技术可以使用由扫描传感器和/或其他各种传感器,例如IMU、陀螺仪或其他合适的传感器捕捉的数据。可以将飞行器生成的SLAM发送给地面载运工具,并与地面载运工具生成的SLAM组合,以扩展地面载运工具生成的本地地图。在一些实施例中,交通状况(例如,天气状况、交通密度等)可能限制地面载运工具使用SLAM技术生成地图的能力。当检测到这些交通状况时,地面载运工具可以指示飞行器捕捉鸟瞰图可视数据,以完善由地面载运工具生成的本地地图。
[0066] 图5示出根据各实施例的在可移动物体环境中的多个载运工具之间共享传感器信息的方法的流程图。在502处,可以通过包括在地面载运工具中的第二计算装置从耦合到飞行器的第一计算装置接收第一扫描数据。使用耦合到飞行器的第一扫描传感器获得第一扫描数据。在一些实施例中,第一扫描数据包括基于由第一扫描传感器采集的点云数据生成的第一绘图数据。
[0067] 在504处,从耦合到地面载运工具的第二扫描传感器获得第二扫描数据。在一些实施例中,可以通过与飞行器通信的多个地面载运工具接收第一扫描数据。在一些实施例中,可以通过与地面载运工具通信的多个飞行器获得扫描数据,并且可以通过多个飞行器将扫描数据发送给地面载运工具。在一些实施例中,第一扫描传感器包括第一LiDAR传感器并且第二扫描传感器包括第二LiDAR传感器。在一些实施例中,第二扫描数据包括基于第二扫描传感器采集的点云数据生成的第二绘图数据。在一些实施例中,第一绘图数据可以与第二绘图数据组合以增加由地面载运工具维护的本地地图的覆盖区域。
[0068] 在506处,可以基于第一扫描数据和第二扫描数据中的至少一个参考物体来识别第一扫描数据和第二扫描数据的重叠部分。在一些实施例中,至少一个参考物体包括表示在第一扫描数据和第二扫描数据中的车行道物体的表示。
[0069] 在508处,可以基于在第一扫描数据和第二扫描数据的重叠部分中识别出的一个或多个导航物体来执行导航控制命令。在一些实施例中,一个或多个导航物体包括表示在第一扫描数据和第二扫描数据的重叠部分中的行驶车道。
[0070] 在一些实施例中,方法还可以包括:从地面载运工具上的第二计算装置接收移动命令,移动命令包括位置,使飞行器移动到该位置;以及,在该位置处或该位置附近获得第一扫描数据。在一些实施例中,该位置包括位置坐标、相对于地面载运工具或其他物体的位置中的至少一项。
[0071] 在一些实施例中,方法还可以包括:将第一扫描数据和第二扫描数据变换为中间格式;使用机器学习模型对中间格式执行物体识别,以识别该一个或多个导航物体,机器学习模型被训练为识别一个或多个导航物体;以及,基于物体识别来确定导航控制命令。在一些实施例中,对机器学习模型的输入包括:来自中间格式的多个输入块、通道的数量、以及输入块的高度和宽度,通道的数量表示与每个输入块相关联的颜色和深度。机器学习模型的输出包括:每个输入块的一个或多个置信度得分、与一个或多个导航物体相关联的一个或多个置信度得分。
[0072] 在一些实施例中,方法还可以包括:检测影响地面载运工具的交通状况;以及,响应于检测到的交通状况,向飞行器上的第一计算装置发送命令,以采集第一绘图数据。
[0073] 无人飞行器(UAV)载有使UAV能够实施同步定位与地图构建(SLAM)来绘制其环境的计算装置和传感器。UAV可以在飞行时使用扫描传感器,例如成像传感器、LiDAR传感器等)扫描其环境,并为自己构建定位绘图以规划路线。得到的地图还可用于避障和自动驾驶。然而,UAV在其可载有的计算装置、传感器、电池等的数量和复杂程度方面仍然受到限制,这导致使用SLAM技术生成大型准确地图的能力降低。另外,在采集数据以执行SLAM时,飞行器会遭受风、用户造成的移动以及其他不稳定因素的影响,这会限制采集的数据的准确性。另外,一些UAV可能移动得太快,以至于无法将准确的SLAM用于导航。
[0074] SLAM技术提供一种构建和/或更新可移动物体在其中操作的环境的实时地图并且同时保持可移动物体在实时地图内的位置的方法,解决了在构建或更新不熟悉环境的地图的同时保持对与之同步的代理的跟踪的计算问题。典型的SLAM对构建立体框架并且连接该框架以形成连续地图进行处理。可以使用诸如单目相机或双目相机、LiDAR传感器或其他扫描传感器之类的成像传感器来执行SLAM。
[0075] 无人机和其他无人飞行器(UAV)在其可以载有的传感器和计算机的数量和质量上受到限制。这可能是由于这些设备的成本、重量限制、功率限制等引起的。然而,汽车和其他地面载运工具在其载有复杂计算机和传感器的能力上并没有受到限制。汽车提供更安全和更稳定的平台来载有昂贵的设备,并且通常很容易满足任何附加的重量要求或功率要求。当汽车沿着车行道行驶时,它可以使用其自身的车载传感器来生成高精度的本地地图。汽车可以使用相机、LiDAR、惯性测量单元、陀螺仪和其他传感器来生成高精度地图。汽车可以将得到的高精度地图发送给在汽车附近飞行的无人机。无人机在附近飞行时还可以根据其自身的传感器来生成地图。然而,由于无人机载有的传感器类型和无人机可用的计算资源,这是精度较低的地图。然而,无人机可以将其地图与从汽车接收的高精度地图组合,以获得可用于在其环境中进行导航(例如避开物体、生成路线等)的高精度地图。实施例利用在汽车或其他地面载运工具中可用的更高质量的传感器和计算机来改善无人机或其他UAV可以获得的地图。
[0076] 实施例提供一种地图构建方法,其可以使用由地面载运工具以及地面载运工具可用的计算装置和传感器采集的数据来生成比UAV自身能够生成的更全面和准确的地图。UAV可以与地面载运工具共享它采集的数据以及使用SLAM技术构建的任何地图。地面载运工具可以将其自身的地图与UAV的地图组合以生成可以与UAV共享的组合地图。与UAV单独生成的地图相比,组合地图可以包括更多的细节并且覆盖更大的区域。然后可以将组合地图发送给UAV,以用于导航、跟随和避障。
[0077] 图6示出根据各实施例的飞行器和地面载运工具的示例600。如上所述,地面载运工具111可以包括一个或多个扫描传感器132,例如LiDAR传感器。地面载运工具的扫描传感器可以具有感测范围602、604,在该范围内它可以检测其环境。飞行器104还可以包括一个或多个扫描传感器124,飞行器104可以利用扫描传感器扫描自身的环境。如上所述,飞行器104和地面载运工具111都可以包括各种传感器、计算装置、移动机构和控制器,它们使飞行器和地面载运工具能够行驶于其环境。
[0078] 只要飞行器在地面载运工具的传感器的范围内运行,地面载运工具传感器就可以使用其扫描传感器132来获得飞行器的位置。该位置可以相对于地面载运工具,或者可以是世界坐标系或其他坐标系中的绝对位置。飞行器104和地面载运工具111二者可以使用它们各自的传感器来对它们正在其中运行的环境执行SLAM。如另外讨论的,与飞行器可用的传感器和计算装置相比,地面载运工具可以使用更好的传感器和计算装置来执行SLAM。因此,与飞行器相比,地面载运工具可以生成更准确的SLAM,并将地图提供给飞行器以用于导航。在一些实施例中,飞行器还可以使用SLAM技术来绘制环境,与地面载运工具产生的地图相比,这可能导致较低精度的地图。飞行器可以将其地图发送给地面载运工具,地面载运工具则可以将飞行器的地图与地面载运工具生成的地图组合,并且将更高精度的组合地图返回给飞行器以用于导航。
[0079] 图7示出根据各实施例的使用飞行器和地面载运工具生成可移动物体环境的地图的示例700。如图7所示,在702处,地面载运工具111可以使用地面载运工具扫描传感器132来执行SLAM。在各实施例中,SLAM技术可用于使用来自各传感器的数据生成本地地图,各传感器包括扫描传感器和其他传感器,例如IMU、陀螺仪和其他合适的传感器。扫描传感器可以是成像传感器或LiDAR传感器,其可以用于获得地面载运工具111的视角中的环境的实时地图。利用载运工具上安装的传感器和处理器的优势,该实时构建地图具有比由飞行器104构建的实时地图更高的精度。除了地面载运工具更好的传感器和处理能力之外,它还提供更稳定的平台,可从该平台采集环境的可视数据或LiDAR数据,从而提供更准确的实时地图。
[0080] 在一些实施例中,地面载运工具可以从飞行器请求飞行器的位置。飞行器可以提供其在GNSS坐标中的位置或通过组合飞行器的初始位置和实时移动状态所获得的实时相对位置。在一些实施例中,地面载运工具可以直接使用耦合到地面载运工具的扫描传感器132或其他扫描传感器,例如雷达传感器、飞行时间(ToF)相机或其他传感器来获得飞行器的相对位置。使用飞行器的位置,地面载运工具可以构建实时地图并且在704处将其发送给飞行器。在一些实施例中,地面载运工具还可以将其位置与实时地图一起提供给飞行器。
[0081] 在706处,飞行器可以使用其自带的扫描和定位传感器来执行SLAM和定位。然而,与从地面载运工具获得的实时地图相比,由飞行器生成的结果实时地图可能具有相对低的精度。在一些实施例中,飞行器可以识别实时地图的重叠部分并且将实时地图组合为经组合的实时地图。
[0082] 在一些实施例中,飞行器可以将其实时地图发送给地面载运工具。然后,地面载运工具可以识别实时地图的重叠部分,并将它们组合为经组合的实时地图。在各实施例中,可以使用扫描匹配技术或通过匹配在每个实时地图中识别的特征来识别多个地图的重叠部分,以合并实时地图。然后,可以通过基于重叠部分将每个地图中的位置映射到另一个来合并实时地图。在一些实施例中,飞行器可以使用成像传感器来构建实时地图,而地面载运工具可以使用LiDAR传感器来构建实时地图(或反之亦然)。通过将基于图像的实时地图中的特征识别为基于点云的实时地图中的特征,这些实时地图可以由地面载运工具合并。例如,飞行器可以将通过其成像传感器获得的视觉图像信息发送给地面载运工具。地面载运工具可以转换基于图像的实时地图的坐标系,以匹配由地面载运工具采集的点云数据的坐标系。然后,地面载运工具可以将经匹配的重叠部分的组合地图返回给飞行器以用于导航。
[0083] 图8示出根据各实施例的使用飞行器和地面载运工具生成可移动物体环境的地图的备选示例800。如图8所示,地面载运工具111可以使用其自带的扫描传感器132来生成高精度SLAM,如在802处所示。在804处,飞行器104可以捕捉实时图像数据并将其发送给地面载运工具。在806处,地面载运工具然后可以使用从飞行器获得的可视数据和由地面载运工具产生的SLAM二者来生成地图。这将从飞行器生成的所有地图卸载到地面载运工具上,而飞行器仅提供实时图像数据。在一些实施例中,地面载运工具可以使用其生成的组合地图,通过向飞行器提供控制数据来控制飞行器,以执行避开物体、跟随和其他导航任务。
[0084] 在一些实施例中,飞行器104可以向地面载运工具111提供俯视扫描数据(例如,如上文关于图1‑图5所述)。俯视扫描数据可被地面载运工具另外使用,或者作为对由地面载运工具的自带传感器捕捉的扫描数据的备选,以生成SLAM。然后,地面载运工具可以将得到的SLAM提供给飞行器111和/或基于得到的SLAM向飞行器提供控制数据以执行各种导航任务。
[0085] 图9示出根据各实施例的通过飞行器绘图管理器和地面载运工具绘图管理器的协作地图构建的示例。如图9所示,空中绘图管理器900可以在计算装置112的一个或多个处理器302上执行。一个或多个处理器302可以包括CPU、GPU、FGPA、SoC或其他处理器。空中绘图管理器900可以包括传感器接口303和地图生成器904。
[0086] 传感器接口303可以包括扫描传感器接口304和定位传感器接口306。传感器接口303可以包括硬件接口和/或软件接口。扫描传感器接口304可以从扫描传感器(例如成像装置、LiDAR传感器或其他扫描传感器)接收数据,并且定位传感器接口306可以从定位传感器(例如GNSS传感器、RTK传感器等)接收数据。在各实施例中,扫描传感器可以产生点云格式的数据。点云数据可以是目标环境的三维表示。在一些实施例中,点云数据可以转换为矩阵表示。在一些实施例中,扫描传感器可以产生图像数据,例如飞行器正在行进的车行道环境的高清图像和/或视频。定位数据可以包括飞行器的GPS坐标。
[0087] 在一些实施例中,地图生成器904可以包括数据管理器908,数据管理器908可以经由扫描传感器接口从空中绘图管理器自带的扫描传感器获得扫描数据。数据管理器还可以经由定位传感器接口306从飞行器的定位传感器获得实时位置数据。数据管理器908可以将扫描数据和位置数据传递给SLAM模块,其实现一种或多种SLAM技术。SLAM模块910可以输出飞行器正在其中行进的环境的实时地图以及飞行器在该地图内的位置。如所讨论的,由于例如自带的传感器、计算装置112的性能、飞行时飞行器的稳定性等,由SLAM模块910生成的实时地图可能是相对不太精确的地图。一旦生成实时地图,地图生成器就可以经由通信系统120B将实时地图发送给客户端装置110上的地面绘图管理器。如所讨论的,在一些实施例中,地图生成器904可以仅输出扫描数据,而无需首先使用SLAM模块910生成实时地图。例如,资源管理器912可以监测计算装置112上的计算资源可用性。如果可用资源(例如内存、存储容量、电池电量、处理器利用率等)在阈值以下,则资源管理器912可以在代表飞行器执行SLAM的请求中指示数据管理器向地面绘图管理器提供扫描数据和位置数据。
[0088] 客户端装置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的扫描数据可以包括定位数据,该定位数据表示捕捉扫描数据时飞行器的位置。
[0089] 数据管理器914可以将扫描数据和位置数据发送给SLAM模块916,以生成地面载运工具正在其中运行的环境的实时地图。SLAM模块916可以实现各种SLAM技术来生成实时地图。由于相对更高质量的扫描传感器、地面载运工具平台的稳定性和可用的计算资源,SLAM模块916可以输出相对更高精度的实时地图。在一些实施例中,可以将由SLAM模块916生成的实时地图和由SLAM模块910生成的实时地图提供给地图合并模块918。地图合并模块918可以实现扫描匹配技术、特征匹配技术或其他图像处理技术,以合并两个实时地图。例如,可以基于在两个地图中识别的共同特征来识别两个实时地图的重叠部分。可以经由通信系统120A将得到的组合地图提供给飞行器,以用于执行各种导航操作。在一些实施例中,仅将两个实时地图的重叠部分提供给飞行器。在一些实施例中,SLAM模块916可以基于直接从飞行器获得的扫描数据来生成实时地图,而不是使用由空中绘图管理器900生成的SLAM地图和从地面载运工具获得的扫描数据。在这样的实施例中,可以将所输出的实时地图提供给飞行器,而无需额外的合并步骤。在一些实施例中,地面载运工具可以使用经组合的实时地图来控制飞行器,而无需将经组合的实时地图提供给飞行器。替代地,地面载运工具可以生成导航命令,该导航命令被发送给飞行器并由飞行器的飞行控制器转换为移动命令。
[0090] 尽管针对飞行器‑地面载运工具对讨论了实施例,但是在各实施例中,一个飞行器可以向多个地面载运工具提供扫描数据。另外,在一些实施例中,多个飞行器可以与地面载运工具通信,使每个飞行器在不同位置捕捉扫描数据并将扫描数据发送给地面载运工具。在一些实施例中,地面载运工具可以是自动驾驶载运工具。备选地,地面载运工具可以是手动驱动的载运工具,其包括如本文所述的适当的扫描传感器和位置传感器。
[0091] 图10示出根据各实施例的在可移动物体环境中的协作地图构建的方法1000的流程图。在1002处,飞行器可以从地面载运工具接收第一实时地图。第一实时地图基于使用耦合到地面载运工具的第一扫描传感器采集的第一扫描数据。在一些实施例中,由飞行器从地面载运工具接收第一实时地图,其中,第一实时地图基于使用耦合到地面载运工具的第一扫描传感器采集的第一扫描数据可以包括:向地面载运工具发送第二实时地图,地面载运工具被配置为将第二实时地图中的坐标转换到一坐标系,以匹配第一实时地图,在坐标系中确定第一实时地图和第二实时地图的重叠部分,以及将重叠部分发送给飞行器。在一些实施例中,接收实时地图可以包括从地面载运工具接收飞行器的位置信息。在一些实施例中,位置信息包括使用第一扫描传感器确定的实时相对位置。在一些实施例中,位置信息包括从飞行器接收的全球导航卫星系统(GNSS)。在一些实施例中,地面载运工具是自动驾驶载运工具。
[0092] 在1004处,可以获得第二实时地图,第二实时地图基于使用耦合到飞行器的第二扫描传感器采集的第二扫描数据。在一些实施例中,第一实时地图是比第二实时地图精度更高的地图。在1006处,可以基于第一实时地图和第二实时地图来生成第三实时地图。在一些实施例中,基于第一实时地图和第二实时地图来生成第三实时地图可以包括确定第一实时地图和第二实时地图的重叠部分,以及使用重叠部分来合并第一实时地图和第二实时地图。
[0093] 在一些实施例中,第一扫描传感器包括LiDAR传感器,并且第二扫描传感器包括视觉传感器。第一实时地图是基于从第一扫描传感器获得的点云数据来构建的,并且第二实时地图是基于从第二扫描传感器获得的可视数据来构建的。
[0094] 在一些实施例中,该方法还可以包括:确定与飞行器相关联的可用资源在阈值以下,向地面载运工具发送用于生成第三实时地图的请求,该请求包括第二实时地图,以及从地面载运工具接收第三实时地图。
[0095] 在一些实施例中,该方法还可包括:从与地面载运工具通信的多个飞行器获得多个实时地图,基于第一实时地图和来自所述多个飞行器中的每个对应的实时地图来生成第四实时地图,以及向多个飞行器中的每个飞行器发送第四实时地图。
[0096] 在一些实施例中,地面载运工具被配置为:从耦合到地面载运工具的第三扫描传感器获得第三扫描数据,第一扫描传感器包括LiDAR传感器并且第三扫描传感器包括成像传感器,以及使用同步定位与地图构建(SLAM)算法,基于第一扫描数据和第三扫描数据来生成第一实时地图。
[0097] 在一些实施例中,该方法还可以包括:将第二扫描数据发送给地面载运工具,其中,地面载运工具被配置为,使用同步定位与地图构建(SLAM)算法,基于第一扫描数据和第二扫描数据来生成第一实时地图,其中,第一扫描传感器包括激光雷达传感器并且第二扫描传感器包括成像传感器。
[0098] 在一些实施例中,一种用于基于来自多个载运工具的传感器信息来生成地图的系统可以包括:飞行器,包括第一计算装置和第一扫描传感器;以及地面载运工具,包括第二计算装置和第二扫描传感器。第一计算装置可以包括至少一个处理器和扫描管理器,扫描管理器包括第一指令,第一指令在由处理器执行时,使扫描管理器从俯视角度从第一扫描传感器获得第一扫描数据,以及,向第二计算装置传送第一扫描数据。第二计算装置可以包括至少一个处理器和检测管理器,检测管理器包括第二指令,第二指令在由处理器执行时,使检测管理器接收来自第一计算装置的第一扫描数据,以及,至少部分地基于第一扫描数据来生成本地地图,并且至少部分地基于本地地图来执行导航控制命令。如所讨论的,各种SLAM技术可用于基于来自多个传感器的数据来生成本地地图,这些传感器包括扫描传感器和其他传感器,例如IMU、陀螺仪等。
[0099] 在一些实施例中,第二计算装置还可以被配置为从第二扫描传感器获得第二扫描数据。从前视角度从第二扫描传感器获得第二扫描数据。在一些实施例中,为了至少部分地基于第一扫描数据来生成本地地图,第二指令在被执行时还使检测管理器至少部分地基于第一扫描数据来将第二扫描数据从前视图变换为俯视图,以获得经变换的第二扫描数据,以及基于经变换的第二扫描数据来生成本地地图。在一些实施例中,为了至少部分地基于第一扫描数据来生成本地地图,第二指令在被执行时还使检测管理器识别第一扫描数据中与第二扫描的部分相对应的部分,以及基于经识别的第一扫描数据的部分来生成本地地图。在各实施例中,如上所述的扫描匹配和其他技术可用于识别第一扫描数据中与第二扫描数据的部分相对应的部分。第一扫描数据的部分和第二扫描数据的部分可以包括车行道环境的相同区域的表示。
[0100] 图11示出根据各实施例的在软件开发环境中支持可移动物体接口的示例。如图11所示,可移动物体接口1103可以用于提供对软件开发环境1100(例如软件开发工具包(SDK)环境)中的可移动物体1101的访问。如上所述,可以使用SDK或移动SDK来实现扫描管理器,以使应用能够执行如本文所述的实时映射。
[0101] 此外,可移动物体1101可以包括各种功能模块A‑C 1111‑1113,并且可移动物体接口1103可以包括不同的接口部件A‑C1131‑1133。可移动物体接口1103中的每个所述接口部件A‑C 1131‑1133可以表示可移动物体1101中的模块A‑C 1111‑1113。
[0102] 根据各实施例,可移动物体接口1103可以提供一个或多个回调函数,用于支持应用和可移动物体1101之间的分布式计算模型。
[0103] 应用可以使用回调函数来确认可移动物体1101是否已经接收到命令。此外,应用可以使用回调函数来接收执行结果。因此,即使应用和可移动物体1101在空间和逻辑上分离,它们也可以交互。
[0104] 如图11所示,接口部件A‑C 1131‑1133可以与监听器A‑C 1141‑1143相关联。监听器A‑C 1141‑1143可以通知接口部件A‑C 1131‑1133使用对应的回调函数来从相关模块接收信息。
[0105] 另外,为可移动物体接口1103准备数据1120的数据管理器1102可以解耦和打包可移动物体1101的相关功能。此外,数据管理器1102可以用于管理应用和可移动物体1101之间的数据交换。因此,应用开发者不需要参与复杂的数据交换过程。
[0106] 例如,SDK可以提供一系列回调函数,用于传送实例消息和从无人驾驶飞行器接收执行结果。SDK可以配置回调函数的生命周期,以便确保信息交换稳定并完成。例如,SDK可以在无人飞行器和智能电话(例如使用Android系统或iOS系统)上的应用之间建立连接。根据智能电话系统的生命周期,回调函数(例如从无人飞行器接收信息的函数)可以利用智能电话系统中的模式并相应地将语句更新到智能电话系统的生命周期的不同阶段。
[0107] 图12示出根据各实施例的无人飞行器接口的示例。如图12所示,无人飞行器接口1203可以表示无人飞行器1201。因此,无人飞行器环境1200中的应用(例如APP 1204‑1206)可以访问和控制无人飞行器1201。
[0108] 例如,无人飞行器1201可以包括各种模块,例如相机1211、电池1212、云台1213和飞行控制器1214。
[0109] 对应地,可移动物体接口1203可以包括相机部件1221、电池部件1222、云台部件1223和飞行控制器部件1224。
[0110] 另外,可移动物体接口1203可以包括地面站部件1226,其与飞行控制器部件1224相关联。地面站操作为执行一个或多个飞行控制操作,这可能需要高级特权。
[0111] 图13示出根据各实施例的软件开发套件(SDK)中的无人飞行器的部件的示例。SDK可以与上述扫描管理器的全部或一部分相对应,或者可以用于将扫描管理器实现为独立的应用。如图13所示,SDK1300中的无人机类1301是用于无人飞行器(或无人机)的其他部件1302‑1307的聚合。可以访问其他部件1302‑1307的无人机类1301可以与其他部件1302‑
1307交换信息并控制其他部件1302‑1307。
[0112] 根据各实施例,应用可以仅被无人机类1301的一个实例访问。备选地,在应用中可以存在无人机类1301的多个实例。
[0113] 在SDK中,应用可以连接到无人机类1301的实例,以便将控制命令上传到无人飞行器。例如,SDK可以包括用于建立与无人飞行器的连接的功能。此外,SDK可以使用端连接功能断开与无人飞行器的连接。在连接到无人飞行器之后,开发者可以访问其他类(例如相机类1302和云台类1304)。然后,可以将无人机类1301用于调用特定功能,例如,提供可以由飞行控制器用来控制无人飞行器的行为和/或限制其移动的访问数据。
[0114] 根据各实施例,应用可以将电池类1303用于控制无人飞行器的电源。此外,应用可以将电池类1303用于规划和测试各种飞行任务的调度。
[0115] 由于电池是无人飞行器中最受限制的元件之一,所以应用可以认真考虑电池的状态,不仅是为了无人飞行器的安全,而且还为了确保无人飞行器可以完成指定的任务。例如,电池类1303可以被配置成使得如果电池电量低,则无人飞行器可以终止任务并直接返航。
[0116] 使用SDK,应用可以通过调用从无人机电池类请求信息的功能来获得电池的当前状态和信息。在一些实施例中,SDK可以包括用于控制这种反馈的频率的函数。
[0117] 根据各实施例,应用可以使用相机类1302来定义可移动物体(例如无人飞行器)中的相机上的各种操作。例如,在SDK中,相机类包括用于在SD卡中接收媒体数据、获得和设置照片参数、拍摄照片和录制视频的函数。
[0118] 应用可以使用相机类1302来修改照片和记录的设置。例如,SDK可以包括使开发者能够调整所拍摄的照片的大小的函数。此外,应用可以使用媒体类来维护照片和记录。
[0119] 根据各实施例,应用可以使用云台类1304来控制无人飞行器的视图。例如,云台类可以用于配置实际视图,例如设置无人飞行器的第一人称视图。此外,云台类可以用于自动稳定云台,以便聚焦在一个方向上。此外,应用可以使用云台类来改变用于检测不同物体的视角。
[0120] 根据各实施例,应用可以使用飞行控制器类1305以用于提供关于无人飞行器的各种飞行控制信息和状态。如所讨论的,飞行控制器类可以包括用于接收和/或请求访问数据的功能,以用于控制无人飞行器在无人飞行器环境中的各个区域的移动。
[0121] 使用主控制器类,应用可以监控飞行状态,例如使用即时消息。例如,主控制器类中的回调函数可以每千毫秒(1000毫秒)回送即时消息。
[0122] 此外,主控制器类允许应用的用户调查从无人飞行器接收的实例消息。例如,飞行员可以分析每次飞行的数据,以便进一步提高他们的飞行技能。
[0123] 根据各实施例,应用可以使用地面站类1307来执行用于控制无人飞行器的一系列操作。
[0124] 例如,SDK可能要求应用具有2级SDK密钥以使用地面站类。地面站类可以提供一键式飞行、一键式返航、通过app手动控制无人机(即操纵杆模式)、设置巡航和/或航路点、以及各种其他任务调度功能。
[0125] 根据各实施例,应用可以使用通信组件,以用于建立应用和无人驾驶飞行器之间的网络连接。
[0126] 本发明的许多特征可以以硬件、软件、固件或其组合的形式执行,或者使用硬件、软件、固件或其组合执行,或者借助于硬件、软件、固件或其组合执行。因此,可以使用处理系统(例如包括一个或多个处理器)来实现本发明的特征。示例性处理器可以包括但不限于:一个或多个通用微处理器(例如单核或多核处理器)、专用集成电路、专用指令集处理器、图形处理单元、物理处理单元、数字信号处理单元、协处理器、网络处理单元、音频处理单元、加密处理单元等。
[0127] 本发明的特征可以以计算机程序产品的形式、或者使用计算机程序产品、或者借助于计算机程序产品执行,计算机程序产品例如是具有存储在其上/内的指令的存储介质(媒介)或计算机可读介质(媒介),这些指令可用于对处理系统进行编程以执行本文陈述的任何特征。存储介质可以包括但不限于:任何类型的盘,包括:软盘、光盘、DVD、CD‑ROM、微型驱动器和磁光盘、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、闪存设备、磁卡或光卡、纳米系统(包括分子存储器IC)或者适于存储指令和/或数据的任何类型的介质或设备。
[0128] 存储在任何一个机器可读介质(媒介)上的本发明的特征可以并入软件和/或固件中,用来对处理系统的硬件进行控制,并且用来使处理系统能够利用本发明的结果与其他机构进行交互。这样的软件或固件可以包括但不限于应用代码、装置驱动程序、操作系统和执行环境/容器。
[0129] 本发明的特征还可以使用例如诸如专用集成电路(ASIC)和现场可编程门阵列(FPGA)设备的硬件组件以硬件实现。实现硬件状态机以执行在此描述的功能对于相关领域的技术人员将是显而易见的。
[0130] 此外,可以使用包括一个或多个处理器、存储器和/或根据本公开的教导编程的计算机可读存储介质在内的一个或多个常规通用或专用数字计算机、计算设备、机器或微处理器,来方便地实现本公开的实施例。编程技术人员可以根据本公开的教导容易地准备适当的软件编码,这对软件领域的技术人员将是显而易见的。
[0131] 尽管上面已经描述了本发明的各实施例,但是应当理解,它们仅仅是作为示例而不是限制来提出的。本领域普通技术人员应该清楚的是在不脱离本发明的精神和范围的情况下可以进行形式和细节上的各种变化。
[0132] 以上已经在功能构建块的辅助下描述了本发明,这些功能构建块示出了指定功能及其关系的执行。为便于描述,本文通常任意定义这些功能构建块的边界。只要所指定的功能及其关系被适当地执行,就可以定义备选边界。因此任何这样的替代边界都在本发明的范围和精神之内。
[0133] 已经提供了本发明的上述描述,用于说明和描述的目的。不是旨在是穷尽性的或将公开的精确形式作为对本发明的限制。本发明的宽度和范围不应当受到上述示例性实施例中任意一个的限制。许多修改和变化对于本领域普通技术人员将是明显的。这些修改和变化包括所公开的特征的任何相关组合。对实施例的选择和描述是为了最好地解释本发明的原理及其实际应用,从而使得本领域的其他技术人员能够理解本发明的各实施例以及适合于预期特定用途的各种修改。意图在于,本发明的范围由所附权利要求及其等同物限定。
[0134] 在上述各种实施例中,除非另外特别指出,诸如短语“A、B或C中的至少一个”之类的分离性语言旨在被理解为意指A、B或C中任一个或其任意组合(例如A、B和/或C)。因此,分离性语言不意图也不应该理解为暗示给定实施例要求存在至少一个A、至少一个B或者至少一个C。