一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

控制传感器激活和解激活以实现节能定位的制作方法

2022-07-29 21:39:25 来源:中国专利 TAG:


1.本公开涉及在设备定位期间控制多传感器操作。


背景技术:

2.定位和映射算法(例如同时定位和映射(slam)算法)可以与带有多个传感器行进的移动设备一起使用,以同时构建一致的几何地图并确定移动设备在地图内的位置。一些定位和映射算法利用来自相机的数据,并且有时还利用其他类型的传感器来提高鲁棒性,但在某些环境中仍然无法产生一致的地图。在视觉退化的环境(例如,黑暗的房间或隧道)中,由于确定或识别特征的概率较低或根本不能确定或识别特征,因此很难从相机中提取有用的信息。


技术实现要素:

3.本文公开的一些实施例涉及一种由使用随设备运载的传感器集合来执行定位的设备的方法。该方法包括针对传感器集合中的每个传感器确定置信度分数。该方法基于其各自的置信度分数满足定义的阈值来从传感器集合中定义要保持活动的传感器的子集。该方法解激活传感器集合内具有不满足定义的阈值的置信度分数的传感器。解激活包括通过传感器中的解激活的传感器来控制功耗。
4.在一些其他实施例中,该方法基于确定其各自的硬件资源利用率是否满足定义的规则,选择性地解激活传感器的子集内的传感器中的各个传感器。在另一些其他实施例中,该方法基于设备的速度来调节在活动的子集中的传感器的采样率和/或分辨率。
5.本文公开的一些其他实施例涉及相应的设备,该设备被配置为使用随设备运载的传感器集合来执行定位。该设备包括存储程序代码的存储器,该程序代码由处理器执行以执行包括针对传感器集合中的每个传感器确定置信度分数的操作。该操作还包括在传感器集合中基于其各自的置信度分数满足定义的阈值(例如,等于或高于定义的正阈值)来定义要保持活动的传感器的子集。该操作还包括解激活传感器集合内具有不满足定义的阈值(例如,小于定义的正阈值)的置信度分数的传感器。解激活包括通过传感器中的解激活的传感器来控制功耗。
6.在一些实施例中,该设备还包括收发器。由处理器执行的操作还可以包括通过收发器与位于邻近的设备通信。基于获得由位于邻近的设备使用的当前活动的传感器的列表来确定传感器中的一个传感器的置信度分数。
7.这些和其他实施例可以提供的潜在优势在于,用于定位的传感器的解激活和激活基于传感器的各个置信度分数来控制,并且可以导致系统的功耗降低,并且使得能够在继续满足持续的定位性能要求的同时更优化地使用资源。
8.在查看以下附图和详细描述之后,根据实施例的其他方法、设备和对应的计算机程序产品对于本领域技术人员将是显而易见的,或将变得显而易见。意图所有这样的方法、设备和对应的计算机程序产品被包括在本描述中,被包括在本公开的范围中,并且由所附
权利要求来保护。此外,意图是本文公开的所有实施例可以单独实施或以任何方式和/或组合组合。
附图说明
9.本公开的各个方面通过示例来说明,并且不受附图的限制。在附图中:
10.图1示出了根据本公开的一些实施例的示出设备在不同区域之间的移动和相关联的传感器激活/解激活操作的地理地图的顶视图;
11.图2示出了根据本公开的一些实施例的示出运载设备和传感器集合的车辆经过示例环境的移动的地理地图的顶视图;
12.图3示出了包括根据本公开的一些实施例操作的一对计算设备、传感器和slam支持节点的slam系统;
13.图4示出了根据本公开的一些实施例的执行传感器调度操作的slam系统的功能元件;
14.图5示出了根据本公开的一些实施例配置的slam系统的特征跟踪算法的操作;以及
15.图6和图7示出了根据本公开的一些实施例的用于控制由设备用于定位的传感器的激活和解激活的操作流程图。
具体实施方式
16.在下文中,将参考附图更全面地描述本发明构思,在附图中示出了本发明构思的实施例的示例。然而,本发明构思可以用多种不同形式来体现,并且不应当被解释为限于本文中所阐述的实施例。相反,提供这些实施例使得本公开将全面和完整,并且将各个本发明构思的范围充分传达给本领域技术人员。还应注意,这些实施例并不互相排斥。来自一个实施例的组件可以被默认假设为存在于/用于另一实施例中。
17.现有技术解决方案(例如microsoft hololens、magic leap、arcore、arkit等)假设需要激活其所有机载传感器以执行定位或执行定位和映射(例如slam)。这显著影响这些设备的电池寿命。然而,某些类型的传感器仅在操作上适用于某些类型的环境。例如,在非常黑暗的环境中,热成像相机可以提供比rgb可见光相机更准确的传感器数据。因此,不管传感器性能如何,保持所有传感器激活都可能是对能源和其他资源的不必要浪费。本文的各种实施例涉及在执行定位或执行组合的定位和映射(例如,slam)时,考虑数据获取期间的功率耗散以及在处理所获取的数据时消耗的功率(cpu/gpu、存储器等)来控制各个传感器的激活和解激活。
18.执行slam的任何现有技术设备(例如,增强现实/虚拟现实头戴式耳机、智能电话、半自主车辆、机器人等)都在激活其所有运载的传感器的情况下操作。尽管设备操作的环境可以是静态的,但是传感器所经历的光照条件和其他参数可能导致slam算法生成不一致的地图。因此,重要的是不仅为设备装备各种不同类型的传感器和/或不同配置的传感器,而且还以更优化的方式利用传感器。本文中的各种实施例涉及基于针对在某些区域处的传感器确定的置信度分数,在定位操作期间和/或在组合的定位和映射操作期间动态适配激活和解激活哪些传感器。
19.一些其他实施例涉及高效的调度算法,该调度算法确定当前用于环境内设备的定位操作并且可以进一步用于环境内的映射操作的传感器的更优化子集。尽管在slam操作处理期间激活和解激活传感器的上下文下描述了一些实施例,但这些实施例不限于与slam一起使用,而是更一般地可以用于在可能基于或可能不基于slam的定位操作期间或在组合的定位和映射操作期间激活和解激活传感器。
20.当确定将激活或解激活哪些传感器时,调度算法响应环境特性的变化对各种传感器的影响。调度算法可以操作为提供降低的功耗,从而延长定位或组合的定位和映射(例如,slam)的操作时间,并且可以改善其他系统资源利用率(例如,处理器利用率、存储器利用率、网络利用率等)。调度算法还可以操作为识别哪些传感器对于在特定环境中使用最重要,从而能够更有效地选择在该环境中哪些传感器将由设备运载。调度算法的一个实施例被配置为假设环境的特性随时间保持静态。例如,该算法可以被配置为假设光照条件最影响rgb相机的置信度分数。此外,假设携带rgb相机传感器的设备将在具有固定照明且没有太阳光干扰的地下室环境中执行slam。该算法可以被配置为识别rgb相机正在提供为良好传感器,因为rgb相机跟踪了足够的特征,随后该算法可以将其确定为任何携带相同类型和制造的rgb相机的设备在那个环境内都应该执行得良好的指示。
21.在运载传感器负载s={s1,s2,...,sn}={si}的设备的上下文下描述了本文的各种实施例。术语|s|与集合s的基数相对应。每个传感器si的状态xi可以是0(解激活)或1(激活)。传感器的解激活状态可以对应于将其各自的采样率设置为较低的速率或零,并且传感器的激活状态可以对应于基于设备的当前动态将其采样率设置为增加的速率或默认值。备选地或附加地,传感器的解激活状态可以对应于将其各自的分辨率设置为较低的分辨率或零,并且传感器的激活状态可以对应于基于设备的当前动态将其分辨率设置为增加的分辨率或默认值(足以支持定位)。考虑数据获取期间传感器的功率耗散,以及在slam线程中处理所获取的数据时消耗的功率来估计每个传感器si消耗的功率ei。
22.本文的各种实施例基于传感器在某个区域的当前性能(响应于当前感测的条件而在线执行)或基于传感器在存储在slam地图中的先前会话的性能(离线执行)来选择最合适的传感器组合。系统解激活所有未选择的传感器以降低总功耗和其他系统资源利用率(例如,处理器利用率、存储器利用率、网络利用率等)。可以在单独的线程上运行的定位和映射算法在任何时候都只使用激活的传感器。
23.现在将参考图1和图6来解释用于控制传感器集合的激活和解激活的示例操作,该传感器集合由设备用于执行定位和/或执行定位和映射(例如,slam)。图1示出了根据本公开的一些实施例的示出设备在不同区域之间的移动和相关联的传感器激活/解激活操作的地理地图的顶视图。图6示出了根据本公开的一些实施例的设备使用随设备运载的传感器集合执行定位的操作的流程图。
24.参考图6,设备使用随设备运载的传感器集合执行定位的操作包括针对传感器集合中的传感器(si)中的每一个确定600置信度分数(λ_i)。该操作基于其各自的置信度分数满足定义的阈值(例如,等于或高于定义的阈值)来定义602传感器集合中将保持活动的传感器的子集。传感器子集优选地是非空集合,以确保至少一个传感器保持活动。然后,该操作解激活604传感器集合内具有不满足定义的阈值(例如,小于定义的阈值)的置信度分数的传感器。解激活操作包括通过传感器中的解激活的传感器来控制功耗。将传感器的置信
度分数与定义的阈值进行比较的操作可以意味着将传感器中的每一个的置信度分数与相同的阈值进行比较,或者可以意味着不同的传感器可以与不同的阈值相关联,使得将每个传感器的置信度分数与该传感器的相关联的阈值进行比较。因此,术语“定义的阈值”可以意味着与传感器集合相关联的单个值或值的集合。
25.参考图1的说明性示例,示出了传感器a满足性能规则的地理区域a,示出了传感器b满足性能规则的另一地理区域b,并且示出了传感器a和b两者满足性能规则的重叠区域a-b。当运载传感器a和b的设备在仅传感器a满足性能规则的区域a内并且在区域a-b之外时,传感器a主动向定位算法或组合的定位和映射算法(例如,slam算法)馈送数据并且解激活传感器b。当设备沿着路径区段1从区域a移动到传感器a和b两者都满足性能规则的区域a-b时,取决于传感器a和b的相对功耗、定位性能、组合的定位和映射性能(例如,slam性能)、资源利用率等,可能激活传感器b,并且可能解激活传感器a。当运载设备沿着路径区段2移动到区域b并且在区域a-b之外时,传感器b主动向定位算法或组合的定位和映射算法(例如,slam算法)馈送数据,并且解激活传感器a。
26.图2示出了地理地图的顶视图,其示出了运载设备200和传感器201和203的集合的车辆经过示例环境的移动。设备和传感器可以以其他方式运载,例如通过人、机器人、飞机(例如无人机)、船舶等。设备200可以是但不限于智能电话、可穿戴计算机、增强现实头戴式耳机、虚拟现实头戴式耳机、混合现实头戴式耳机、半自主或自主车辆、无人机、飞机、机器人等中的任何一个的组件。尽管仅示出了两个传感器,但应当理解,计算设备可以与被配置为向slam算法馈送数据的任何多个传感器一起使用。传感器的示例类型包括但不限于rgb相机、红外相机、惯性测量单元(imu)、雷达传感器、光检测和测距(lidar)传感器、声学测距传感器、接近传感器、gps和射频收发器(例如,5g无线电)。针对第一传感器201和第二传感器203确定置信度分数,以确定第一传感器201和第二传感器是否适合设备200所在环境的位置和特性。
27.参考图2,以下用于计算传感器的置信度分数以及激活和解激活传感器的方法可以通过运载计算设备200、第一传感器201和第二传感器203的车辆沿着路径209(例如,道路)经过环境来例示。当车辆沿着路径209行进时,它执行在本公开的实施例中讨论的各种操作。例如,在第一区域205中,计算设备200确定第一传感器201满足定义的规则,这使车辆保持在第一区域205中时激活第一传感器201或保持第一传感器201激活。车辆行进到第二区域207中,其中计算设备200确定第一传感器201传递不满足定义的阈值(例如,小于定义的阈值)的置信度分数。计算设备200可以触发两个备选操作实施例。在一个实施例中,第一传感器201的不令人满意的置信度分数使先前解激活的所有机载传感器(在这种情况下仅第二传感器203)被重新激活并分析,以确定哪些重新激活的传感器产生满足定义的阈值的置信度分数。在另一实施例中,该操作参照可用的定位和映射(例如,slam地图)数据结构,该数据结构识别过去在第二区域207中被激活并提供了令人满意的置信度分数的一个或多个传感器,并且该操作响应地激活该一个或多个传感器。该操作可以解激活第一传感器201以减少功耗并节省其他系统资源,例如处理、存储、通信等。
28.根据本文的各种实施例,用于控制传感器的激活和解激活的操作响应于针对传感器确定的置信度分数来执行,该传感器由设备用于定位和/或组合的定位和映射。置信度分数是指示数据的准确性的可信度的度量,该数据可以由在位置处和/或在环境中的传感器
或传感器集合来提供,该位置或环境具有由传感器中的一个或多个传感器感测的某些特性和/或特征。传感器的置信度分数与使用来自传感器的数据的定位算法或组合的定位和映射(例如,slam算法)的性能高度相关。下面解释可以用于确定供定位处理或组合的定位和映射处理(例如,slam处理)使用的传感器的置信度分数的操作。
29.在一些实施例中,置信度分数λi被定义为在来自传感器的数据中可检测的视觉特征的在线比率的函数。如果没有检测出特征,则传感器的置信度分数为零。否则,对于非零数量的内点和异常点检测出的特征,传感器si的置信度分数λi可以基于以下等式来确定:
[0030][0031]
在上面的等式中,#inliers和#inliers分别是在传感器数据流的帧f中检测出的特征的内点和异常点的数量,并且f是计算置信度分数的连续帧的数量。尽管示例等式是在检测视觉特征和传感器数据流的上下文中描述的,但是所公开的用于确定置信度分数的操作可以与具有在传感器数据中可识别的指定描述符的任何类型的特征一起使用。
[0032]
因此,在更一般的实施例中,传感器中的一个传感器的置信度分数可以基于由传感器检测出的内点特征的数量与内点和异常点特征的总数的比率来确定600。内点特征中的每一个具有与定义的模型一致的特性,并且异常点特征中的每一个具有与定义的模型不一致的特性。
[0033]
该实施例的假设是传感器或数据包括“内点”,即,其分布可以使用定义的模型参数集来可操作地确定的数据,但也可能经受噪声和作为不适合模型的数据的“异常点”。例如,异常点可能来自噪声的极值或来自错误的传感器测量或解释传感器数据的不正确假设操作。
[0034]
在一些实施例中,对于每个传感器si,用于控制传感器的激活和解激活的操作检索来自传感器的数据的多个连续帧的内点和异常点的数量。内点和异常点的数量可以由针对每个传感器操作的特征跟踪模块(ftm)确定,该特征跟踪模块可以是定位算法或组合的定位和映射算法的必要组件,因此不应该增加计算开销。用于传感器(例如相机)的ftm可以检测和跟踪关键点。传感器数据内的特征的位置是来自相机传感器的图像内的关键点。
[0035]
存在多种确定特征的描述符以检测和跟踪关键点的方式。关键点的描述符可以包括但不限于二元鲁棒不变可扩展关键点(brisk)、快速视网膜关键点(freak)、加速鲁棒特征(surf)、尺度不变特征变换(sift)、定向fast和旋转brief(orb)、来自加速分段测试的特征(fast)、二元鲁棒独立基本特征(brief)。不同的描述符可以用于不同类型的传感器(例如:深度内核描述符可以用于深度传感器)。在基于视觉的slam中,随机采样一致法(ransac)通常用于几何验证和异常点检测。可以基于在以下出版物中描述的操作来计算所跟踪的特征的内点和异常点集合:buczko,martin&willert,volker,

how to distinguish inliers from outliers in visual odometry for high-speed automotive applications

(2016)10.1109/ivs.2016.7535429。
[0036]
当相应的图像登记未能找到要在图像序列中匹配的特征所需的空间变换时,该特征可以被可操作地认为是异常点,其中,该特征是在由视觉传感器(例如,rgb相机)捕获的图像中跟踪的2d特征。2d特征跟踪的示例如图5所示。图5示出了根据本公开的一些实施例
配置的slam系统的特征跟踪算法的操作。在图5中,确定传感器帧(t)中位于i(x,y)处的特征随后移动到传感器帧(t dt)中的位置i(x dx,y dy)。
[0037]
当相应的点云登记未能找到要在点云序列中匹配的特征/片段所需的空间变换时,该特征/片段被可操作地认为是异常点,其中,该特征/片段是在由距离传感器(例如lidar)创建的点云中检测出的3d特征/片段。
[0038]
可以通过ransac算法的操作来区分界内点和异常点。在以下出版物中描述了在通过仿射变换映射的两个图像之间的匹配集合中分离内点和异常点的示例算法:beckouche,simon,et al.“robust outliers detection in image point matching.”2011 ieee international conference on computer vision workshops,2011,pp.180-187。
[0039]
在一个实施例中,置信度分数是基于所跟踪的特征的位置在传感器数据的连续帧之间的如何振荡来确定的。在一个实施例中,基于被确定为在连续采样帧中获得的传感器数据内的特征的位置之间发生的振荡量来确定600传感器中的一个传感器的置信度分数。在传感器的连续帧中跟踪被确定为在某个特征的位置中发生的振荡量。
[0040]
例如,在包括相机的传感器中,尽管特定特征的2d位置可能会由于运载传感器的设备的运动而改变,但该特征的全局3d位置应保持恒定。如果将来自连续帧的特征的2d位置映射到3d空间产生波动大于某个阈值的回3d位置,其意味着传感器的性能很差。
[0041]
在另一实施例中,基于传感器与定义的阈值相比的信噪比(snr)来确定600传感器中的一个传感器的置信度分数。所跟踪的特征的位置越振荡,传感器的snr过低的可能性就越高,因此,添加到定位处理或组合的定位和映射处理的信息是不足够低的值。与设备的动态相比,传感器的采样率可能相对较慢,因此定位处理可能无法产生准确的结果,或者组合的定位和映射处理操作可能无法产生一致的地图。
[0042]
在另一实施例中,基于以下来确定600传感器中的一个传感器的置信度分数:确定传感器相对于地图的定位,该地图由识别先前已由一个或多个传感器感测到的局部特征的数据结构来定义,以及基于传感器当前是否感测由定义地图的数据结构识别的局部特征来确定传感器中的一个传感器的置信度分数。可以利用现有地图来评估当前使用的传感器集合。例如,如果设备已设法在可用地图内进行定位,但其周围环境中的某些特征没有如预期从地图观察到,那么这可能是当前正在使用的传感器集合由于各种原因(例如,不同的照明条件、反射表面、房间中的移动对象等)不适合于当前环境的指示。
[0043]
在另一实施例中,基于以下来确定传感器中的一个传感器的置信度分数:确定传感器相对于地图的定位,该地图由识别局部特征的位置的数据结构来定义,以及基于传感器识别局部特征的位置与数据结构识别局部特征的位置的比较来确定传感器中的一个传感器的置信度分数。房间中具有已知几何、尺寸和位置的地标可以用作部分地面实况,其使得该操作能够确定定位误差作为设备姿态误差的估计。该操作可以使用定位误差来确定来自传感器的数据的置信度。
[0044]
在另一实施例中,基于传感器对地图内的位置的定位来确定600传感器中的一个传感器的置信度分数,该地图内的位置由识别传感器在这些位置处的性能的数据结构来定义。基于对地图内的位置的定位,从数据结构中检索传感器的性能。然后基于所检索的性能来确定置信度分数。
[0045]
当确定600置信度分数时,地图的数据结构可以存储在由操作访问的联网数据存
储库中。
[0046]
如上所述,解激活604传感器的操作可以包括触发传感器转换到较低功率状态和触发传感器断电中的一个。备选地或附加地,解激活604传感器的操作包括将传感器的数据采样率设置为降低的采样率和零中的一个。
[0047]
在一些实施例中,基于其各自的置信度分数和传感器操作中的相似度量的组合来执行定义602传感器(201和203)集合中保持活动的传感器子集的操作。例如,如果传感器si的置信度分数超过预定义的置信度阈值μi,则该传感器可能属于由以下定义的集合sb:
[0048]
sb={si|si∈sa∧λi≥μi},
[0049]
其中,μi取决于理想环境条件下传感器的规格。如果|sb|>0,则至少一个传感器已超过其各自的置信度阈值,并且该操作可以解激活不属于sb的传感器。否则,不解激活任何传感器并跳过该操作。这些操作可以操作为偏置激活传感器集合以使其操作特性更加多样化,如下面进一步详细描述的。
[0050]
在一些实施例中,基于传感器的硬件资源的利用率和其总置信度分数来将传感器集合sc定义为保持活动,其中参考图7的操作流程图,设备基于确定其各自的硬件资源利用率是否满足定义的规则来选择性地解激活700传感器的子集内的传感器中的各个传感器。示例硬件资源可以包括但不限于功耗、处理器利用率、存储器利用率和网络通信利用率中的任何一项或多项。
[0051]
激活的传感器的组合的总数为每个组合ξ导致硬件资源利用率e
ξ
,并且可以定义总置信度分数λ
ξ
∈(0,1],使得同质性受到惩罚。在一些实施例中,602传感器子集被定义以惩罚在操作中包含具有大于相似度的阈值级别的传感器。这种惩罚可以取决于两个或更多个同质传感器如何观察环境的不相连部分。各种不同的传感器使用互补信息丰富了周围环境的表示,并且通过使用冗余信息改善了测量的精度。该步骤以三个连续的子步骤完成:
[0052]
a.排除e
ξ
超过预定义阈值ε的传感器组合。
[0053]
b.从剩余的组合中选择活动传感器数量最高的多个传感器。
[0054]
c.选择λ
ξ
最大化的最优组合ξ
*

[0055]
在一些实施例中,总置信度是各个置信度分数的加权平均值,其中每个权重wi取决于传感器si在组合ξ中出现的频率,使得同质性受到惩罚。总分数可以描述为:
[0056]
其中
[0057][0058]
xi表示传感器si在组合ξ中的状态(0:空闲,1:活动),n表示机载传感器的总数,p是惩罚因子(0≤p≤1),并且是传感器si在组合ξ中出现的频率。
[0059]
潜在优势在于,这些操作偏置活动传感器集合以使其操作特性更加多样化,这可以使定位处理或组合的定位和映射处理在设备和传感器行进通过具有广泛不同特性(例如,环境光亮度变化、光/rf表面反射率、可识别的表面特征密度、特征范围、感测的环境噪声、环境干扰等)的环境时具有更鲁棒的性能。
[0060]
在另一实施例中,可以基于机器学习(ml)算法来估计总置信度λ
ξ
分数,其中传感器的不同组合用于评估定位算法或组合的定位和映射算法(例如,slam算法)的性能。在针对给定环境内的不同区域从若干个传感器收集大量数据后,可以以更高的准确度来评估针对特定区域的每个组合的总置信度分数。这些操作可以用于为与不同地理区域相关的每个传感器生成性能配置文件。
[0061]
在一个实施例中,针对设备的操作基于其最近邻设备当前正在使用的传感器集合来选择最合适的传感器集合sc(协作定位或协作组合的定位和映射)。这节省了资源和时间,因为该操作不需要以在线方式评估设备自身的传感器的性能,这是因为在假设相邻设备的传感器具有相同或足够相似的操作特性(例如与设备运载的传感器类型和制造商相同)的情况下,设备信任其最近邻设备的决策。
[0062]
在另一实施例中,该操作基于从先前会话存储的针对不同区域的总置信度分数λ
ξ
来选择最合适的传感器集合sc。从组合的定位和映射算法(例如,slam算法)生成的地图被分成网格,并且在每个网格中存储每个组合ξ的总置信度分数λ
ξ
。这样,在设备的相同或不同操作的未来会话中,如果当前活动的传感器的性能降级,则该操作将通过从设备正在朝向其移动的网格中检索传感器的总置信度分数λ
ξ
来直接激活最合适的传感器集合,并将相应地解激活性能不佳的传感器。这将节省功率,因为无需激活整个机载传感器集合以在线评估。
[0063]
进一步参考图7,该操作可以基于运载传感器的设备的速度来调节702子集中的活动的传感器的采样率。换句话说,如果传感器si的置信度分数高于预定义阈值,并且如果携带传感器负载的设备的动态较慢,则以使置信度分数保持超出某个值的方式来减小传感器各自的采样率。
[0064]
较快/较慢的动态的概念取决于应用。对于设备或其环境的较快动态,可以以更高的传感器采样率来执行该操作,使得传感器捕获足够的信息来表征环境。相反,对于组合了足够高的置信度分数的较慢的动态,传感器的采样率可以相应地减小,导致更低的功耗和更低的数据带宽。如果定位算法或组合的定位和映射算法以分布式方式实现,其中前端操作由设备上的传感器和计算资源执行,并且后端操作在边缘或云上运行,或者在更强(在cpu、存储器等方面)的相邻设备上运行,则数据带宽的降低导致通信成本减小。当设备及其环境的相对动态快于设备的传感器在以其最大速率采样时可以捕获的信息时,定位算法可能存在产生准确度输出不足的风险,或者组合的定位和映射算法可能存在无法产生一致的地图的风险。
[0065]
在一些实施例中,设备的动态控制传感器激活/解激活的决策处理发生的速率。因此,解激活604传感器的操作可以包括将传感器的数据采样率没置为降低的采样率和零中的一个。
[0066]
图3示出了包括根据本公开的一些实施例操作的一对设备、传感器和slam支持节点的slam系统350。尽管在slam处理期间激活和解激活传感器的上下文中描述了图3的系统,但所描述的实施例不限于与slam一起使用,而是可以更一般地用于在可能基于或可能不基于slam的定位操作期间或组合的定位和映射操作期间激活和解激活传感器。
[0067]
第一设备300可以包括或可操作地连接到可以随第一设备300运载的传感器301、303和305的第一集合。位于邻近第一设备300的第二设备310可以包括或可操作地连接到可
以随第二设备310运载的传感器311、313、315的第二集合。第一设备300和第二设备310可以是但不限于智能电话、可穿戴计算机、增强现实头戴式耳机、虚拟现实头戴式耳机、混合现实头戴式耳机、半自主或自主车辆、飞机、机器人、船舶等中的任何一个的组件。第一设备300和第二设备310及其连接的传感器可以任何方式运载,例如通过人、车辆、无人机、飞机、船舶、机器人等。传感器的示例类型包括但不限于rgb相机、红外相机、惯性测量单元(imu)、雷达传感器、光检测和测距(lidar)传感器、声学测距传感器、接近传感器、gps和射频收发器(例如,5g无线电)。
[0068]
第一设备300包括slam处理器309、存储器304和无线收发器307,无线收发器307可以经由无线电接入节点(ran)321或323与第二设备310和/或slam支持节点327通信。处理器309可操作地连接到传感器301、303、305的第一集合。存储器304存储由处理器309执行的程序代码以执行操作,并且可以存储地图存储库302。由slam处理器执行的操作可以包括:确定传感器集合中的每个传感器的置信度分数;基于传感器各自的置信度分数满足定义的阈值,在传感器301、303、305的集合中定义保持活动的传感器的子集;以及解激活传感器301、303、305的集合内具有不满足定义的阈值的置信度分数的传感器。解激活可以包括通过传感器中的解激活的传感器来控制功耗。
[0069]
如上所述,将传感器的置信度分数与定义的阈值进行比较的操作可以意味着将传感器中的每一个的置信度分数与相同的阈值进行比较,或者可以意味着不同的传感器与不同的阈值相关联,使得将每个传感器的置信度分数与该传感器的相关联的阈值进行比较。因此,术语“定义的阈值”可以意味着与传感器集合相关联的单个值或值的集合。一些其他实施例涉及用于确定一个或多个阈值的各种操作,传感器置信度分数与该阈值进行比较。在一个实施例中,设备300在其中移动的环境中的每个子区域可以在地图中与随设备300运载的每个传感器(传感器301、303、305的第一集合)的置信度分数相关联。环境的每个子区域还可以与处理来自耦合传感器的数据的定位算法的性能度量相关联。在一个实施例中,给定n个传感器,来自每个传感器的数据流可以被馈送到并行运行的n个定位和映射算法中。每个定位算法都输出对设备姿态(例如位置和取向)的估计。定位算法的一个性能度量可能是输出设备的估计和受信任姿态之间的绝对误差。可以经由以下三种方法中的任何一种或多种来获得受信任姿态:
[0070]
1.从通信地连接到设备的外部运动捕获(跟踪)系统获得;或者
[0071]
2.从随设备运载的高质量独立定位系统获得;或者
[0072]
3.从传感器301、303、405的第一集合中的传感器中的被确定为当前提供最高置信度分数的一个传感器获得。
[0073]
一旦已经针对传感器301、303、405的第一集合中的每个传感器获得了足够的置信度分数和绝对误差对,该操作就可以确定每个传感器的绝对误差和置信度分数之间的关系。可以基于所确定的传感器的绝对误差与置信度分数之间的关系来确定用于传感器中的特定一个传感器的阈值,以在执行在传感器之间选择性地切换的操作时提供期望的定位性能。
[0074]
在对应的操作实施例中,定义的阈值包括阈值集合,在该集合中的每个阈值与该集合中的传感器中的不同的一个传感器相关联,并且该集合中的传感器中的一个传感器的阈值是基于设备的受信任当前姿态与从使用来自传感器的数据的定位性能输出的姿态的
比较来确定的。
[0075]
同样如上所述,该操作定义了传感器集合中要保持活动的传感器子集。传感器子集优选地是非空集合。换句话说,没备将不会解激活所有传感器,否则将使得无法继续执行设备的定位。然而,在某些环境情况下,可能所有传感器都将传递低于其阈值的置信度分数。在这种情况下,阈值过低并且可以基于当前环境来改变。假设操作最初设置了期望的性能级别(例如,绝对误差低于某个阈值),则应将阈值重新调谐(减小)到不违反性能度量的点。由于这种重新调谐将以在线(例如,实时)方式进行,因此具有最高置信度分数的传感器将用作参考(受信任)。备选地,不同的性能级别可以与每个传感器的不同阈值相关联。当性能度量改变级别时,信息可以存储在地理地图中。该操作可以适应于最大可实现的性能并响应于此调谐相应的阈值。在性能度量需要低于某个临界值的最坏场景下(例如,低于该值,定位应用不能运行或定位算法失败并且不提供姿态估计),则可以将指示消息存储在地理地图中,使得如果任何当前传感器将来将访问(不同设备)或重新访问(相同设备)当前子区域,则该操作可以确定定位算法应该预期失败。
[0076]
第二设备310可以与第一设备300类似地配置。第二设备310运载传感器311、313、315的集合,并且包括slam处理器319、无线收发器317和存储器314,存储器314存储程序代码,所述程序代码由处理器(319)执行以执行操作。处理器可操作地连接到传感器311、313、315的集合。
[0077]
第一设备300和/或第二设备310可以被配置为包含执行控制传感器激活和解激活的操作以及执行定位操作并且可以进一步执行映射操作,例如slam算法处理所需的所有程序代码和相关电路。至少一些定位和/或映射操作可以由网络节点(例如所示的slam支持节点317)执行。设备300和310可以被配置为经由ran 321和323中的一个或多个以及网络325与slam支持节点317通信。slam支持节点327包括处理器332,该处理器332可以被配置为执行根据本文公开的一个或多个实施例的用于激活和解激活传感器的一些或所有操作。slam支持节点327可以存储map(地图)存储库331,该map存储库331可以用于确定激活或解激活哪些传感器,以及确定何时激活或解激活传感器。
[0078]
图4示出了根据本公开的一些实施例的执行传感器调度操作的slam系统的功能元件。参考图4,slam系统包括传感器调度线程功能块401、slam线程功能块403、传感器s1、s2、sn的集合、电池409和具有采样调节器421和功率模式控制器422的传感器控制块。
[0079]
传感器调度线程功能块401被配置为执行以下操作步骤,包括:激活(步骤411)传感器集合sa;针对传感器集合中的每个传感器si,确定(步骤412)内点和异常点的数量;确定(步骤413)每个传感器si的置信度分数λi;基于传感器的置信度分数来定义(步骤414)传感器集合sa中要保持活动的传感器的子集sb;基于传感器的硬件资源利用率和传感器的总置信度分数来定义(步骤415)要保持活动的传感器集合sc;以及基于设备的动态(例如,平移速度、旋转速度等)和/或环境的动态(例如,日出/日落时间帧、高对比度阴影发生密度等)来调节(步骤416)传感器的采样率。
[0080]
参考图4,slam线程功能块403被配置为执行slam操作。slam线程功能块403包括前端操作405和后端操作407。前端操作405可以包括良好特征确定功能431、特征跟踪功能433、异常点检测功能435、传感器融合功能437、数据关联功能439和定位功能441。后端操作407可以包括地图合并功能443、地图概括功能445、地图优化功能447和地图估计功能449。
[0081]
传感器控制功能块通过由控制传感器的采样率的采样调节器421执行的操作和/或通过由控制传感器的功耗的功率模式控制器422执行的操作来激活和解激活传感器s1、s2和sn的集合。
[0082]
另外的定义和实施例:
[0083]
在对发明构思的各种实施例的以上描述中,要理解的是,本文使用的术语仅用于描述具体的实施例的目的,而不意图限制发明构思。除非另外定义,否则本文使用的所有术语(包括技术术语和科学术语)具有与本发明构思所属领域的普通技术人员通常所理解的意义相同的意义。将理解,诸如在通用词典中定义的术语等的术语应被解释为具有与它们在本说明书的上下文和相关技术中的意义相一致的意义,而不被解释为理想或过于正式的意义,除非本文有这样的明确定义。
[0084]
当元件被称为相对于另一元件进行“连接”、“耦合”、“响应”或其变化时,它可以直接连接、耦合到或者响应于其它元件,或者可以存在中间元件。相反,当元件被称作相对于另一元件进行“直接连接”、“直接耦合”、“直接响应”或其变化时,不存在中间元件。贯穿全文,类似附图标记表示类似的元件。此外,本文使用的“耦合”、“连接”、“响应”或其变型可以包括无线耦合、连接或响应。如本文使用的,单数形式“一”,“一个”和“所述”意在还包括复数形式,除非上下文明确地给出相反的指示。为了简洁和/或清楚,可能没对公知的功能或结构进行详细描述。术语“和/或”包括关联列出的一个或多个项目的任意和所有组合。
[0085]
将理解,虽然本文中可以使用术语第一、第二、第三等来描述各元件/操作,但是这些元件/操作不应被这些术语限制。这些术语仅用于将一个元素/操作与另一个元素/操作相区分。因此,在一些实施例中的第一元素/操作可以在其他实施例中称作第二元素/操作,而不会脱离本发明构思的教导。贯穿说明书,相同的附图标记或相同的参考符号表示相同或类似的元素。
[0086]
如本文使用的术语“包括(comprise、comprising、comprises、include、including、includes)”、“具有(have、has、having)”或其变形是开放式的,并且包括一个或多个所陈述的特征、整数、元件、步骤、组件、或功能,但是不排除存在或添加一个或多个其它特征、整数、元件、步骤、组件、功能或其组合。此外,如本文的使用,常用缩写“例如(e.g.)”源于拉丁短语“exempli gratia”,其可以用于介绍或指定之前提到的项目的一个或多个一般示例,而不意在作为该项目的限制。常用缩写“即(i.e.)”源于拉丁短语“id est”,可以用于指定更广义的引述的具体项目。
[0087]
本文参考计算机实现的方法、装置(系统和/或设备)和/或计算机程序产品的框图和/或流程图图示描述了示例实施例。应理解,可以通过由一个或多个计算机电路执行的计算机程序指令来实现框图和/或流程图图示的框以及框图和/或流程图图示中的框的组合。可以将这些计算机程序指令提供给通用计算机电路、专用计算机电路和/或其它可编程数据处理电路的处理器电路来产生机器,使得经由计算机和/或其它可编程数据处理装置的处理器执行的指令转换和控制晶体管、存储器位置中存储的值、以及这种电路内的其它硬件组件,以实现框图和/或流程图框中指定的功能/动作,并由此创建用于实现框图和/或流程图框中指定的功能/动作的装置(功能体)和/或结构。
[0088]
这些计算机程序指令也可以存储在有形计算机可读介质中,所述有形计算机可读介质能够指导计算机或其它可编程数据处理装置按照具体的方式作用,使得在计算机可读
介质中存储的指令产生制品,所述制品包括实现在所述框图和/或流程图的框中指定的功能/动作的指令。因此,发明构思的实施例可以在硬件和/或在诸如数字信号处理器之类的处理器上运行的软件(包括固件、贮存软件、微代码等)上实现,所述吹起可以统称为

电路



模块

或其变体。
[0089]
还应注意,在一些备选实现中,在框中标记的功能/动作可以不以流程图中标记的顺序发生。例如,依赖于所涉及的功能/动作,连续示出的两个框实际上可以实质上同时执行,或者框有时候可以按照相反的顺序执行。此外,可以将流程图和/或框图的给定框的功能分成多个框和/或流程图和/或框图的两个或更多个框的功能可以至少部分地被集成。最后,在不脱离发明构思的范围的情况下,可以在所示出的框之间添加/插入其他框,和/或可以省略框/操作。此外,尽管一些框包括用于指示通信的主要方向的关于通信路径的箭头,但是应理解,通信可以以与所表示的箭头相反的方向发生。
[0090]
在基本上不脱离本发明构思原理的前提下,可以对实施例做出许多改变和修改。所有这些改变和修改旨在在本文中被包括在发明构思的范围内。因此,上述主题应理解为示例性的而非限制性的,并且所附实施例的示例旨在覆盖落入本发明构思的精神和范围之内的所有这些修改、改进和其他实施例。因此,在法律允许的最大范围内,本发明构思的范围应由所附实施例的示例及其等同物的最宽允许解释来确定,并且不应受限于或限制于之前的具体实施方式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献