CN112740274A - 在机器人设备上使用光流传感器进行vslam比例估计的系统和方法 - Google Patents

在机器人设备上使用光流传感器进行vslam比例估计的系统和方法 Download PDF

Info

Publication number
CN112740274A
CN112740274A CN201880097333.7A CN201880097333A CN112740274A CN 112740274 A CN112740274 A CN 112740274A CN 201880097333 A CN201880097333 A CN 201880097333A CN 112740274 A CN112740274 A CN 112740274A
Authority
CN
China
Prior art keywords
determining
wheel
optical flow
homography
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201880097333.7A
Other languages
English (en)
Inventor
刘珺
Z·王
W·罗
M·W·方
T·罗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN112740274A publication Critical patent/CN112740274A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • G05D1/0253Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means extracting relative motion information from a plurality of images taken successively, e.g. visual odometry, optical flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/269Analysis of motion using gradient-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/579Depth or shape recovery from multiple images from motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle

Abstract

各个实施例包括用于改善由被装备有图像传感器和光流传感器的机器人设备的处理器进行的导航的方法。机器人设备可以被配置为从图像传感器捕获或接收两个图像帧,基于这些图像帧生成单应性计算,从光流传感器接收光流传感器数据,以及基于单应性计算和光流传感器数据来确定比例估计值。机器人设备可以基于该比例估计值来确定机器人设备姿势(或者图像传感器的姿势)。

Description

在机器人设备上使用光流传感器进行VSLAM比例估计的系统 和方法
背景技术
机器人设备在以半自主或自主的方式执行各种任务方面已经变得越来越普遍。这种机器人设备可以以各种形式体现并且在各种应用中使用,例如用于自动真空吸尘器、无人驾驶飞行器、地面车辆等等中。可以采用机器人设备的应用可以包括娱乐应用(例如,玩具机器人)、对人类不友好的环境(例如,太空、深水、低温、辐射、化学暴露、生物危害等)中的实用应用、危险任务(例如,拆除爆炸物)、在狭窄空间内(例如,倒塌的建筑物)执行琐事(例如,清洁)的操作等等。
由于很多环境不是静态的,因此可以为机器人设备提供建图技术,以允许设备构建其周围环境的地图。此外,机器人设备可以被配置为在地图内定位自身,从而表现出相对高程度的自主性。然而,由于局部环境的时间和空间变化以及障碍物的位置和运动的变化,自主导航可能是复杂的。这种复杂性可能会造成使用现有技术的机器人设备的导航问题。
发明内容
各个方面包括用于使用来自光流传感器的数据实现视觉同时定位和建图的方法、实现这种方法的机器人设备、以及机器人设备内的处理设备。一些方面可以包括:从单目图像传感器接收第一图像帧,从单目图像传感器接收第二图像帧,基于第一图像帧和第二图像帧生成单应性计算,从光流传感器接收光流传感器数据,以及基于单应性计算和光流传感器数据确定比例估计值。
在一些方面,基于第一图像帧和第二图像帧生成单应性计算可以包括:生成单应性矩阵信息结构,以及通过对所生成的单应性矩阵信息结构执行奇异值分解(SVD)运算来生成事务(transaction)信息结构。在一些方面,基于第一图像帧和第二图像帧生成单应性计算可以包括:识别第一图像帧中的至少四个特征点,识别第二图像帧中的至少四个对应特征点,以及生成单应性矩阵信息结构以包括所识别的至少四个特征点和所识别的至少四个对应特征点。
一些方面可以包括:基于比例估计值,确定机器人设备的机器人设备姿势。一些方面可以包括:从车轮编码器接收车轮事务数据,基于单应性计算和车轮事务数据来确定基于车轮的比例估计值,根据基于车轮的比例估计值来确定第一置信度值,以及基于比例估计值来确定第二置信度值,其中,基于比例估计值确定机器人设备姿势可以包括:响应于确定第一置信度值未超过第二置信度值,基于比例估计值来确定机器人设备姿势,以及响应于确定第一置信度值超过第二置信度值,基于车轮事务数据来确定机器人设备姿势。
在一些方面,基于第一图像帧和第二图像帧生成单应性计算可以包括:基于第一图像帧和第二图像帧来生成相机事务信息结构,以及基于单应性计算和车轮事务数据来确定基于车轮的比例估计值可以包括:基于车轮事务数据来生成车轮编码器事务信息结构;以及基于包括在相机事务信息结构中的值和包括在车轮编码器事务信息结构中的值,来确定基于车轮的比例估计值。
一些方面可以包括:从车轮编码器接收车轮事务数据;基于车轮事务数据或光流传感器数据中的至少一者,确定在一段时间内发生的打滑量;以及判断所确定的打滑量是否超过打滑门限值,其中,基于单应性计算和光流传感器数据来确定比例估计值可以包括:响应于确定所确定的打滑量超过打滑门限值,基于单应性计算和光流传感器数据来确定比例估计值;以及响应于确定所确定的打滑量未超过打滑门限值,基于单应性计算和车轮事务数据来确定比例估计值。
一些方面可以包括:从车轮编码器接收车轮事务数据;判断该车轮事务数据是否包括错误或异常数据,其中,基于单应性计算和光流传感器数据来确定比例估计值可以包括:响应于确定车轮事务数据可能包括错误或异常数据,基于单应性计算和光流传感器数据来确定比例估计值。
一些方面可以包括:从车轮编码器接收车轮事务数据;基于车轮事务数据来确定第一置信度值;基于光流传感器数据来确定第二置信度值;以及判断第一置信度值是否超过第二置信度值,其中,基于单应性计算和光流传感器数据来确定比例估计值可以包括:响应于确定第一置信度值未超过第二置信度值,基于单应性计算和光流传感器数据来确定比例估计值;以及响应于确定第一置信度值超过第二置信度值,基于单应性计算和车轮事务数据来确定比例估计值。
一些方面可以包括:将光流传感器数据应用于Lucas-Kanade组件以生成包括针对至少一个特征点的像素速度值和方向值的光流信息;以及基于光流信息生成光流传感器事务信息结构,其中,基于单应性计算和光流传感器数据来确定比例估计值可以包括:基于单应性计算和所生成的光流传感器事务信息结构来确定比例估计值。
另外的方面包括具有光流传感器和处理器的机器人设备,该处理器被配置为执行上面所概述的方法的一个或多个操作。另外的方面包括用于在包括光流传感器的机器人设备中使用的处理设备,其中该处理设备被配置为执行上面所概述的方法的一个或多个操作。另外的方面包括具有用于执行上面所概述的方法的功能的单元的机器人设备。另外的方面可以包括在其上存储有处理器可执行指令的非临时性处理器可读存储介质,所述处理器可执行指令被配置为使机器人设备的处理器执行上面所概述的方法的操作。
附图说明
被并入本文并且构成本说明书一部分的附图,描绘了权利要求书的示例性实施例,并且连同上面给出的概括描述以及下面给出的具体实施方式一起来解释权利要求书的特征。
图1A是根据各个实施例,在通信系统中操作的机器人设备的系统方框图。
图1B是根据各个实施例,利用由相应的电动机驱动的一个或多个车轮的基于地面设计方案的机器人设备的方框图。
图1C是根据各个实施例,示出可以包括在机器人设备中的计算机架构和传感器的系统方框图,其中该机器人设备被配置为采用VSLAM技术。
图2是示出适合于结合各种实施例使用的机器人设备的组件的组件方框图。
图3是示出适合于在实现各个实施例的机器人设备中使用的处理设备的组件方框图。
图4是示出适合于在实现各个实施例的机器人设备中使用的导航系统的组件方框图。
图5A和图5B是根据实施例,示出被配置为采用VSLAM技术的机器人设备中的各种操作和功能组件的方框图,其中该VSLAM技术包括使用光流传感器的VSLAM比例估计。
图5C是示出在没有比例估计值的情况下,机器人设备的相机随时间的轨迹和姿势的图表。
图5D是示出在具有比例估计值的情况下,机器人设备的相机随时间的轨迹和姿势的图表。
图6至图10是根据各种实施例,示出确定机器人设备的姿势的方法的处理流程图。
具体实施方式
现在参照附图来详细地描述各个实施例。在可以的地方,将贯穿附图使用相同的附图标记来指代相同或者类似的组件。对于特定示例和实现的引用只是用于说明目的,而不是旨在限制权利要求书的保护范围。
各个实施例包括由机器人设备的处理器执行的、用于通过采用诸如视觉同时定位和建图(VSLAM)之类的定位和建图技术改进导航的方法,该方法利用光流传感器提供的信息来更好地规划环境中的导航路径。
在一些实施例中,机器人设备的处理器可以被配置为从图像传感器接收第一图像帧,从图像传感器接收第二图像帧,基于第一图像帧和第二图像帧生成单应性计算值,并基于单应性计算值生成单应性矩阵,基于单应性矩阵或单应性计算值确定或生成第一事务(transaction)信息结构(例如,三元素平移矢量等等),从光流传感器接收光流传感器数据,基于光流传感器数据确定或生成第二事务信息结构(例如,光流传感器事务信息结构),基于单应性计算值和光流传感器数据确定比例估计值(例如,基于第一事务信息结构和第二事务信息结构中的值),以及基于该比例估计值确定机器人设备姿势。
在一些实施例中,机器人设备的处理器可以被配置为还从车轮编码器接收车轮事务数据。处理器可以基于车轮事务数据来确定或计算第三事务信息结构(例如,车轮编码器事务信息结构)。处理器可以判断车轮事务数据是否不准确或错误,或者包括异常数据(例如,由于车轮打滑或滑转)。当车轮事务数据不是不准确、错误或异常时,处理器可以使用车轮事务数据来确定比例估计值,以及当车轮事务数据不准确或错误或包括异常数据时,使用光流传感器数据来确定比例估计值。例如,当车轮事务数据不是不准确、错误或异常时,处理器可以使用第一事务信息结构和第三事务信息结构中的值来确定比例估计值,以及在车轮事务数据不准确或错误或包括异常数据时,使用第一事务信息结构和第二事务信息结构中的值来确定比例估计值。
通过为机器人设备配备光流传感器并配置机器人设备智能地使用光流传感器来识别、校正或改善不准确的移动数据,各种实施例提高了机器人设备的性能和功能。例如,根据各种实施例的光流传感器的包含和使用,可以允许机器人设备更好地识别和响应车轮旋转与实际设备运动不太相关的滑动状况。根据各种实施例的光流传感器的包括和使用,还可以允许机器人设备更好地规划其在环境内的导航路径,并且能够使得在预期车轮可能打滑的表面上行进。
如本文所使用的,术语“机器人设备”指代:包括有被配置为提供一些自主或半自主导航和机动能力的车载处理设备的各种类型的机器人车辆、机器人电器、机器人等等中的任何一种。机器人设备的示例包括但不限于:地面车辆和机器人(例如,自主或半自主汽车)、机器人电器(例如,机器人真空吸尘器和其它清洁机器人)、搜索和救援机器人、炸弹检测和解械机器人等等)以及其组合。在一些实施例中,机器人设备可以是有人操纵的。在其它实施例中,机器人设备可以是无人操纵的。在机器人设备是自主的实施例中,机器人设备可以包括车载处理设备,该车载处理设备被配置成在不具有例如来自人类操作员的远程操作指令(例如,经由远程计算设备)的情况下操纵和/或导航机器人设备(即,自主地)。在机器人设备是半自主的实施例中,机器人设备可以包括车载处理设备,该车载处理设备被配置为例如从人类操作员(例如,经由远程计算设备)接收一些信息或指令,并且与所接收的信息或指令一致地自主地操纵和/或导航机器人设备。
如本文所使用的,术语“姿势”指代用于标识机器人设备或其组件在其周围环境中的位置和方位的值或信息结构。在机器人设备在二维环境(例如,沿着地板的表面)中行进的配置中,机器人设备姿势可以通过二维位置(例如,笛卡尔坐标系中的x、y距离或尺寸)和朝向(θ)来指定。在一些实施例中,机器人设备可以被配置为基于刚性变换(R,T)来估计姿势(例如,相机姿势、机器人设备姿势等等),其中R是旋转矩阵(例如,三乘三矩阵信息结构等等),T是事务(例如,三元素平移矢量信息结构等等)。在一些实施例中,可以经由机器人设备处理器对单应性矩阵(H)执行奇异值分解(SVD)运算,来确定旋转矩阵(R)和/或事务(T)的值。在一些实施例中,可以基于相机/机器人设备的方位来确定旋转矩阵(R)的值。在一些实施例中,可以基于相机/机器人设备的方位和/或位置来确定事务(T)的值。
本文使用术语“车轮编码器”来指代收集机器人设备的车轮、轴或车轴的角位置或运动,并将其转换为模拟或数字输出信号以便提供关于车轮的旋转角度、转数和/或转速的信息的传感器或设备。车轮编码器可以使用机械、光学或磁传感器来检测旋转位置变化,对旋转进行计数和/或确定转速。机器人设备的处理器可以使用来自车轮编码器的信息结合车轮直径的知识,来确定位置、速度和/或行驶过的距离信息。车轮编码器的例子包括旋转编码器和轴编码器。在一些实施例中,车轮编码器可以包括或者可以耦合到处理器,该处理器被配置为基于车轮编码器数据生成车轮编码器事务(Tw)信息结构。
如本文所使用的,术语“光流传感器”是指能够通过检测光流来光学地测量运动,并且基于光流或观察到的视觉运动来输出测量值的传感器。光流可以识别或定义由观察者(例如,机器人设备等等)与场景之间的相对运动引起的视觉场景中的对象、表面和边缘的明显运动的模式。光流传感器可以输出能够用于测量机器人设备在表面上的运动的测量值或光流数据/信息。光流信息还可以用于测量机器人设备与机器人设备附近的其它物体之间的视觉运动或相对运动。另外,机器人设备可以将光流信息用于运动检测、对象分割、接触时间信息、扩展计算焦点、运动补偿编码、立体视差测量和其它类似信息。在一些实施例中,光流传感器可以耦合到处理器,该处理器被配置为基于光流信息来生成光流传感器事务(To)信息结构。在一些实施例中,光流传感器可以是耦合到处理器的图像传感器,该处理器被编程为运行光流算法。在一些实施例中,光流传感器可以是视觉芯片,其包括在同一芯片或管芯上的图像传感器和处理器。在一些实施例中,光流传感器可以包括照明光源(例如,发光二极管(LED)激光器)和光学传感器,其被配置为接收由表面反射的来自于光源的光。
通常,机器人设备可以采用VSLAM技术来构建和更新未知环境的地图,同时保持跟踪机器人设备在该环境中的位置。例如,机器人设备可以装备有捕获环境的图像或帧的单目图像传感器。机器人设备可以识别所捕获图像内的突出对象或特征,估计图像中的特征的尺寸和比例,将识别的特征彼此进行比较和/或与测试图像中具有已知尺寸和比例的特征进行比较,并基于这些比较来识别对应关系。每一对应关系可以是一个值集或信息结构,其将一个图像中的特征(或特征点)标识为对于是另一个图像中的相同特征是具有高概率的。换句话说,对应关系可以是处于对应关系的一组图像点(例如,第一图像中的第一点和第二图像中的第二点等等)。机器人设备可以基于所识别的对应关系产生单应性矩阵信息结构,并使用单应性矩阵来确定其在环境内的姿势(例如,位置、方位等等)。
为了支持VSLAM计算,机器人设备可以装备有传感器,其收集对于采用VSLAM技术有用的移动或距离信息。机器人设备可以使用这样的移动或距离信息来确定所捕获的图像或帧之间的距离,并且结合单应性矩阵使用这样的距离信息来估计这些帧中的对象的尺寸和比例。转而,与仅基于捕获的图像来确定姿势相比,这允许机器人设备以更高的精度和准确度来确定其姿势。例如,机器人设备可以使用来自车轮编码器的车轮事务数据,来确定机器人设备在图像/帧之间行进的距离。机器人设备还可以使用来自车轮编码器的车轮事务数据来确定比例估计值。
虽然车轮编码器提供对于采用VSLAM技术有用的信息,但是这些传感器容易由于车轮打滑而提供错误或异常数据,这显著妨碍了设备准确地确定姿势的能力。例如,当机器人设备由于打滑而在某些表面上移动时,车轮旋转传感器(例如,车轮编码器)可能倾向于错误地输出,如在倾斜和/或光滑表面上可能发生的,或者当存在对于车轮转动的阻力时(例如,增加的摩擦力或者其它对旋转的阻碍)。当车轮编码器产生错误数据时,机器人设备可能无法准确地确定图像中的对象/特征的比例、透视或尺寸。转而,这可能妨碍机器人设备以高度置信度、精确度或准确度来确定其在环境中的姿势的能力。
在各个实施例中,机器人设备可以装备有光流传感器,其收集和/或产生可以由处理器用于确定行进距离的光流传感器数据。例如,机器人设备处理器的处理器可以被配置为接收第一图像帧,接收第二图像帧,基于第一图像帧和第二图像帧生成单应性计算值,从光流传感器接收光流传感器数据,基于单应性计算值和光流传感器数据来确定比例估计值,并使用该比例估计值来确定机器人设备姿势。
在一些实施例中,机器人设备的处理器可以被配置为智能地选择和使用光流传感器数据,以替换从车轮旋转传感器收集的不准确数据。例如,处理器可以使用来自光流传感器的行进距离信息以校正或替换异常数据,或者改善从机器人设备中的车轮编码器和/或其它传感器收集的行进距离信息的不准确性。再举一个例子,机器人设备的处理器可以被配置为检测车轮或车轮编码器中的打滑,并且基于检测到的打滑的水平、程度或幅度,智能地判断是否使用从车轮编码器、光流传感器或者其组合收集的信息。
在一些实施例中,机器人设备的处理器可以被配置为捕获光流图像,检测光流图像中的特征点(例如,拐角等等),并将图像/特征点数据应用于Lucas-Kanade组件/功能以生成光流信息。该光流信息可以表征由机器人设备的图像传感器(例如,相机)捕获的两个图像之间的转换或事务。该光流信息可以包括用于识别每个特征点的速度(例如,每单位时间的像素或每个图像的像素)和明显移动方向的信息。
在一些实施例中,机器人设备的处理器可以被配置为使用从光流传感器收集的光流传感器数据来计算或估计图像中的比例或两个图像之间的比例。
可以在各种各样的通信系统100内操作的机器人设备中实现各个实施例,在图1A中示出了通信系统100的一个例子。通信系统100可以包括机器人设备102、基站104、接入点106、通信网络108和网络服务器计算设备110。
机器人设备102可以装备有至少一个空间测量设备103,例如适于在真实世界环境中获得机器人设备102的三维位置的单目相机。机器人设备102还可以装备有用于测量车轮的旋转运动的车轮编码器105和/或被配置为基于光流来检测/测量表面上的移动并输出光流信息的光流传感器107,其中处理器可以使用该光流信息来确定行进距离、速度、像素速度、行进方向等等。此外,机器人设备102可以装备有多个额外传感器中的任何一个,例如相机、方位传感器、单目图像传感器、红外传感器、惯性测量单元(IMU)以及其组件(例如,加速度计、陀螺仪、磁力计等)、保险杠传感器等等。
基站104可以被配置为在广域(例如,宏小区)以及小型小区(其可以包括微小区、毫微微小区、微微小区和其它类似的网络接入点)上提供无线通信。接入点106可以包括被配置为在相对较小的区域上提供无线通信的接入点。基站和接入点的其它示例也是可能的。机器人设备102可以通过基站104和接入点106提供的无线链路,在通信网络108上进行通信。例如,机器人设备102可以通过无线通信链路112与基站104进行通信,以及通过无线通信链路114与接入点106进行通信。无线通信链路112和114可以包括多个载波信号、频率或频带,它们中的每一个可以包括多个逻辑信道。无线通信链路112和114可以利用一种或多种无线电接入技术(RAT)。
网络服务器计算设备110可以将通信网络108连接到互联网和/或网络服务器。机器人设备102可以经由通信网络108向网络服务器计算设备110发送信息,和/或从网络服务器计算设备110接收通信。
在各个实施例中,机器人设备102可以在环境120中移动,并使用一个或多个传感器(例如,空间测量设备103)来捕获环境120中的目标125的至少一个图像。在各种实施例中,可以使用依赖于VSLAM技术的系统,自主地执行机器人设备的导航。虽然可以同时地执行定位和建图过程,但是替代地可以顺序地(例如,以复用的方式)执行这些过程。例如,VSLAM系统可以使用相同的数据来既在地图内定位机器人设备,又生成或更新地图。
VSLAM系统可以采用一些算法来解决构建或更新未知环境的地图的计算问题,同时保持跟踪机器人设备在地图内的位置。VSLAM系统可以通过传感器输入(例如,相机或视频帧)来跟踪一组点,并使用跟踪点的估计位置来计算机器人设备观察或测量这些点的姿势,同时基于三维空间中的跟踪点位置来构建或更新地图。
在一些实施例中,机器人设备可以包括多核处理器,其被配置为通过将定位和建图功能分离到不同线程上来实现VSLAM。例如,可以在一个线程上实时地执行定位(即,当前姿势估计),而建图线程在后台中运行处理以最小化跟踪点位置与预期这些点给出姿势估计的位置之间的差异(即,重投影错误)。在完成时,建图线程可以更新用于跟踪这组点的信息,转而定位线程添加新的观察结果以扩展地图。
在一些实施例中,机器人设备可以被配置为将VSLAM技术应用于非自主任务。例如,用于炸弹检测或搜索和救援的远程受控设备可以在远程控制应用中实现VSLAM以帮助操作员在环境周围进行导航。
在一些实施例中,机器人设备可以包括各种操作模式,例如用于手动控制的模式和用于自主控制的另一种模式。例如,可以在初始建图阶段期间手动驱动车辆形式的机器人设备,并且其稍后被配置为进行自主控制。
图1B示出了适合于实现各种实施例的基于地面的机器人设备102的各种组件。参考图1A和1B,机器人设备102可以利用由相应的电动机驱动的一个或多个轮子130,以向机器人设备102提供运动。机器人设备102可以被配置为确定或识别表面132(或者车轮130的底部)之上的高度或者表面132(或者车轮130的底部)与机器人设备102的车身框架134中的一个或多个点之间距离。在一些实施例中,机器人设备可以被预编程有高度信息。在一些实施例中,机器人设备可以被配置为基于从一个或多个传感器(例如,红外传感器等)收集的信息来确定高度信息。
机器人设备102的处理器(例如,光流传感器107内的处理器)可以被配置为识别图像内的表面132上的特征点136。光流传感器107或机器人设备102内的处理器可以被配置为基于高度信息和所识别的特征点,来确定机器人设备102行进的距离和方向。
将图1A和1B中示出的机器人设备102呈现为可以利用各种实施例的设备的非限制性示例,但其并不旨在暗示或要求各种实施例限于地面机器人设备。例如,各种实施例可以与旋翼飞行器或翼式机器人设备或水载机器人设备一起使用,以用于其中光流传感器可以提供关于行进距离、速度等等的信息的应用。
图1C根据各种实施例,示出了可以包括在机器人设备102中的计算机架构和各种传感器,机器人设备102被配置为采用VSLAM技术。在图1C所示的例子中,机器人设备102包括主板组件152、图像传感器154、微控制器单元(MCU)156、车轮编码器105、红外(IR)传感器160、惯性测量单元(IMU)162、保险杠传感器164、激光距离传感器(LDS)166和光流传感器107。
传感器154、160-168可以收集对于在机器人设备102中采用VSLAM技术有用的信息。例如,车轮编码器105和/或光流传感器107可以收集适合于确定机器人设备102已经在图像/帧之间行进的距离的信息。车轮编码器105和/或光流传感器107还可以收集适合于确定或生成适合于估计比例的事务信息结构的信息。机器人设备102可以结合从其它传感器160-168收集的信息来使用该信息,以更好地估计由图像传感器154所捕获的帧中的对象的尺寸和比例。转而,这允许机器人设备102以更高的精度和准确度来确定其姿势。
光流传感器107可以被配置为收集和/或产生光流传感器数据,该光流传感器数据可以用于校正、替换或改善从机器人设备中的其它传感器154、160-166收集的不准确和/或异常距离测量数据。主板组件152和/或MCU156中的处理器可以被配置为智能地选择和使用来自光流传感器107的光流传感器数据,以替换从车轮编码器105收集的不准确数据。替代地,处理器可以被配置为基于从传感器154、160-168收集的信息来检测打滑,并且智能地判断是否使用从车轮编码器105、光流传感器107或其组合收集的信息。
图2根据各种实施例,示出了可以被配置为估计比例并确定姿势的机器人设备102的各种组件。参考图1A-2,机器人设备102可以包括多个车轮130、主体框架134、至少一个空间测量设备103和光流传感器107。
空间测量设备103可以与空间测量设备103相同或相似。在一些实施例中,空间测量设备103可以例如包括:被配置成原始范围扫描传感器的系统、或者被配置为识别来自扫描或图像的标志的基于特征的系统。例如,可以使用基于激光的扫描器(例如,光检测和测距(LiDAR))或基于声纳的系统来检测和测量到环境中的各种特征和标志的距离。在一些实施例中,可以在由图像传感器(例如,相机、光学读取器等等)拍摄的图像内识别特征和标志。在一些实施例中,能够检测附近特征和标志的许多其它设备中的任何一个也可以实现为空间测量设备。
主体框架134可以为电动机和它们关联的车轮130以及为空间测量设备103提供结构支撑。为了便于描述和说明起见,省略了机器人设备102的一些详细方面,例如布线、框架结构互连或者本领域普通技术人员已知的其它特征。虽然示出的机器人设备102具有车轮130,但这仅仅是示例性的,各个实施例可以包括用于提供推进和操纵能力的任何各种的组件,例如踏板、桨叶、刹车或其任何组合或其它组件。
机器人设备200还可以包括控制单元210,后者可以容纳用于供电和控制机器人设备200的操作的各种电路和设备。控制单元210可以包括处理器220、电源组件230、传感器240、一个或多个负载紧固单元244、输出组件250、输入组件260和无线电组件270。
处理器220可以被配置有处理器可执行指令以控制机器人设备102的行进和其它操作(其包括各个实施例的操作)。处理器220可以包括者耦合到导航单元222、存储器224、操纵数据组件226和光流传感器228。处理器220和/或导航单元222可以被配置为通过无线连接(例如,蜂窝数据网络)与服务器进行通信,以接收在导航中有用的数据、提供实时位置报告和评估数据。
处理器220还可以从光流传感器228接收数据,并使用这样的数据来确定、识别或规定由机器人设备202的运动引起的环境中的对象、表面和边缘的明显运动的模式。在一些实施例中,处理器220可以被配置为检测车轮打滑,并基于检测到的打滑,判断是否使用从车轮旋转传感器、光流传感器228或其组合收集的信息。
操纵数据组件226可以耦合到处理器220和/或导航单元222,以及可以被配置为提供与行进控制相关的信息,例如导航单元222可以用于导航目的(如,全球导航卫星系统(GNSS)之间的航位推算)的方位、姿态、速度、朝向和类似信息。
操纵数据组件226可以从诸如IMU或类似传感器(例如,加速度计、陀螺仪等等)之类的一个或多个传感器240接收输入。在一些实施例中,向操纵数据组件226提供输入的传感器240可以包括一个或多个空间测量设备103或者与一个或多个空间测量设备103重叠。操纵数据组件226的输入可以提供关于可以在导航和定位计算中使用的机器人设备102的方位和加速度的数据、以及提供在各种实施例中使用的数据。
处理器220还可以从一个或多个其它类型的传感器240(例如,可以是单目相机的相机)接收额外的信息。在一些实施例中,传感器240可以包括能够检测红外线、紫外线和/或其它波长的光的一个或多个光学传感器。在一些实施例中,传感器240可以包括距离测量设备206和/或与之重叠。在一些实施例中,传感器240可以包括向处理器220提供运动反馈的至少一个传感器,例如,车轮编码器、用于提供指示与表面接触的信号的接触或压力传感器、光流传感器等等。这些传感器还可以包括射频(RF)传感器、气压计、声纳发射器/探测器、雷达发射器/探测器、麦克风或另一种声学传感器、或者可以提供能由处理器220用于移动操作以及导航和定位计算的信息的另一种传感器。
在一些实施例中,负载紧固单元244可以包括致动器电动机,后者响应于来自控制单元210的命令,驱动响应于控制单元210的抓取和释放机制和相关控件,以抓取和释放负载。
电源组件230可以包括一个或多个电池,其可以向包括处理器220、传感器240、负载紧固单元244、耦合到车轮130的驱动电动机、输出组件250、输入组件260和无线电组件270的各种组件供电。电源组件230可以是可再充电的。处理器220可以被配置有处理器可执行指令以控制电源组件230的充电,例如通过使用充电控制电路来执行充电控制算法。替代地或另外地,电源组件230可以被配置为管理其自己的充电。处理器220可以耦合到输出组件250,输出组件250可以输出用于对驱动车轮130和其它组件的电动机进行管理的控制信号。
当机器人设备102朝向目的地前进时,可以通过控制驱动车轮130的各个电动机来操纵机器人设备102。处理器220可以从导航单元222接收数据,并且使用该数据以便确定机器人设备102的当前位置和方位,以及朝向目的地或中间站点的适当路线。在各个实施例中,导航单元222可以包括使机器人设备102能够使用GNSS信号进行导航的GNSS接收器系统(例如,一个或多个全球定位系统(GPS)接收器)。替代地或另外地,导航单元222可以被装备有无线电导航接收器,以从诸如导航信标(例如,甚高频(VHF)全向范围(VOR)信标)、Wi-Fi接入点、蜂窝网络站点、无线电站、远程计算设备、机器人车辆等等之类的无线电节点接收导航信标或其它信号。
无线电组件270可以包括调制解调器274和发射/接收天线272。在一些实施例中,无线电组件270可以被配置为与各种各样的无线通信设备(例如,无线通信设备(WCD)290)进行无线通信,其示例包括无线电话基站或蜂窝塔(例如,基站104)、网络接入点(例如,接入点106)、信标、智能电话、平板设备、或者机器人设备102可以与之通信的另一个计算设备(例如,110)。在一些实施例中,处理器220可以经由无线电组件270的调制解调器274和天线272以及无线通信设备290经由发射/接收天线292,来建立双向无线通信链路294。在一些实施例中,无线电组件270可以被配置为使用不同的无线电接入技术来支持与不同无线通信设备的多个连接。
在各个实施例中,控制单元210可以被装备有能够用于各种应用的输入组件260。例如,输入组件260可以从车载相机或传感器接收图像或数据,或者可以从其它组件(例如,负载)接收电信号。
虽然在图2中将控制单元210的各个组件示出为单独的组件,但是这些组件中的一些或全部(例如,处理器220、输出组件250、无线电组件270和其它单元)可以集成在单个处理设备310中,在图3中示出了其一个例子。
图3示出了可以被配置为在机器人设备中使用的处理设备310。参考图1A-3,处理设备310可以被配置为在机器人设备中使用,以及可以被配置为或者包括片上系统(SoC)312。SoC 312可以包括(但不限于)处理器314、存储器316、通信接口318和存贮存储器接口320。处理设备310或SoC 312还可以包括通信组件322,例如用于建立无线通信链路的有线或无线调制解调器、存贮存储器324、天线326等。处理设备310或SoC 312还可以包括硬件接口328,其被配置为使处理器314能够与机器人设备的各个组件通信并控制机器人设备的各个组件。处理器314可以包括各种处理设备中的任何一种,例如任何数量的处理器核。
本文使用术语“片上系统”(SOC)来指代一组互连的电子电路,其通常(但不排外地)包括一个或多个处理器(例如,314)、存储器(例如,316)和通信接口(例如,318)。SOC312可以包括各种不同类型的处理器314和处理器核,比如通用处理器、中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)、加速处理单元(APU)、处理设备的特定组件的子系统处理器(例如,用于相机子系统的图像处理器或者用于显示器的显示处理器、辅助处理器、单核处理器和多核处理器)。SOC 312还可以包含其它硬件和硬件组合,例如现场可编程门阵列(FPGA)、专用集成电路(ASIC)、其它可编程逻辑器件、离散门逻辑单元、晶体管逻辑单元、性能监测硬件、看门狗硬件和时间基准。可以对集成电路进行配置,使得集成电路的组件驻留在单片半导体材料(例如,硅)上。
SOC 312可以包括一个或多个处理器314。处理设备310可以包括一个以上的SOC312,从而增加处理器314和处理器核的数量。处理设备310还可以包括不与SOC 312相关联的处理器314(即,在SOC 312外部)。各个处理器314可以是多核处理器。每个处理器314可以被配置用于特定目的,该特定目的可以与处理设备310或SOC 312的其它处理器314相同或不同。可以将相同或不同配置的处理器314和处理器核中的一个或多个组合在一起。一组处理器314或处理器核可以被称为多处理器簇。
SoC 312的存储器316可以是被配置为存储数据和处理器可执行指令以供处理器314存取的易失性或非易失性存储器。处理设备310和/或SoC 312可以包括被配置用于各种目的的一个或多个存储器316。一个或多个存储器316可以包括易失性存储器,例如随机存取存储器(RAM)或主存储器、或高速缓冲存储器。
处理设备310和SoC 312的一些或所有组件可以进行不同地和/或组合地布置,同时仍然服务于各个方面的功能。处理设备310和SoC 312可以不限于这些组件中的每一个组件的一个,而是在处理设备310的各种配置中可以包括每个组件的多个实例。
如上所述,各种实施例中的机器人设备可以利用VSLAM过程,以便进行导航并执行任务。这些过程可以包括:对环境内的标志的空间信息进行建图,以及表示机器人设备相对于建图环境的姿势(即,位置和方位)。
VSLAM算法考虑了各种参数,例如传感器信息、地图表示、设备动力学(dynamics)、环境动力学以及传感器测量值和机器人的控制系统随时间的综合。对环境的空间信息进行建图,通常需要采用可以应用VSLAM算法的空间传感器(例如,空间测量设备103)。例如,可以从由一个或多个相机获得的图像中提取标志,其中这些相机可以是各种配置中的任何一种(例如,单目、立体视觉、多相机等等)。
可以通过获得关于机器人设备在所生成的地图内的位置和方位(即,姿势)的感测信息,来执行对该设备的定位。
例如,对于车辆型机器人设备,可以使用从车轮编码器和/或光流传感器获得的信息来确定姿势信息,其中车轮编码器测量车轮的旋转运动,光流传感器基于在光或图像传感器中观察到的特征的流来测量行进距离。机器人设备还可以使用GPS传感器,其允许获取姿势信息。
图4示出了适合于根据各个实施例使用的示例性导航系统。参考图1A-4所示,可以在诸如地面车辆(例如,汽车、真空吸尘器机器人等等)、飞行器(例如,UAV)等等之类的机器人设备(例如,102、200)的处理器上实现导航系统400。
在导航系统400中,可以从多个传感器接收输入,以使系统能够针对机器人设备上的VSLAM过程,执行定位、地图生成和路径规划。
在一些实施例中,传感器402可以包括至少一个IMU传感器,以用于检测方位或其它操纵数据。如上所述,传感器402还可以包括至少一个运动反馈传感器,例如车轮编码器、光流传感器、压力传感器或其它基于碰撞或接触的传感器。此外,传感器402可以包括至少一个图像传感器,例如视觉相机、红外传感器、声纳探测器等等。
可以将来自传感器402的原始测量数据提供给预处理器404。由预处理器404执行的预处理可以包括:去除异常值和噪声抑制、以及标志/特征提取、数据关联等等。在各种实施例中,预处理器404可以输出与机器人设备的位置和方位有关的经处理的测量值(例如,加速度、速度、测距信息等等)。
虽然一起示出,但是预处理器404可以表示多个预处理器,每个预处理器对应于不同的传感器或传感器组。例如,一些预处理器可以被配置为从多个传感器接收和联合处理原始测量值,或者可以被配置为从单个传感器402接收和处理原始测量值。
可以将来自每个预处理器404的经处理的测量值提供给语义信息提取器406,语义信息提取器406可以获得关于与对应的预处理器404相关联的每个传感器402的语义信息。具体而言,语义信息提取器406可以被配置为识别和记录与相关联的传感器402相关的特定不利事件。这样的不利事件可以包括:例如,异常数据测量、来自传感器的一系列空白测量、指示机器人设备的状况的数据(例如,设备卡住、与障碍物碰撞等等)、或者指示一个或多个传感器的性能降低的任何其它测量。
在一些实施例中,语义信息提取器406可以被配置为判断来自车轮编码器(例如,105)的数据是否包括由于诸如打滑或阻力之类的状况引起的错误或不准确信息。在一些实施例中,语义信息提取器406可以被配置为计算置信度值,该置信度值量化所收集的传感器数据落入准确性容许区间内的置信水平。类似地,语义信息提取器406可以被配置为计算准确性概率值,其标识从传感器(例如,车轮编码器105等等)收集的信息是准确的程度或可能性。例如,计算的准确性概率值可以标识在一段时间内从车轮编码器收集的距离信息具有机器人设备在该时间段期间行进的实际距离的准确度(例如,在一米、分米、厘米、毫米等等之内)的可能性。
在各个实施例中,语义信息提取器406可以存储和更新每个关联传感器402的语义信息。这样的语义信息可以以多种数据结构中的任何一种来表示,这些数据结构可以存储在机器人设备上的本地存储中的数据库中。可用于表示语义信息的数据结构的例子包括例如数据表/数组、数据树等等。
可以基于所收集的语义信息的量,来选择所采用的数据结构的类型以提高效率。在一些实施例中,可以利用数组,来表示跨时间和空间相对密集的语义信息。例如,可以利用数组,来最佳地表示基于记录异常传感器数据的语义信息。在一些实施例中,可以利用数据树,来表示跨时间和空间相对稀疏的语义信息。例如,可以利用数据树,来最佳地表示基于记录机器人设备被卡住的事件的语义信息。
在一些实施例中,本地存储可以是单独的存储设备,其例子可以包括通用串行总线(USB)驱动器、存储卡、固态驱动器(SSD)、硬盘驱动器(HDD)、软盘、光盘、磁带等等。例如,本地存储可以是可移动存储设备,比如存储卡,例如PC卡、CompactFlash、智能介质、存储棒、存储棒Duo、存储棒PRO Duo、微型卡、多媒体卡(MMC)、缩小尺寸多媒体卡(RS-MMC)、MMCmicro卡(MMCmicro)、PS2卡、安全数字(SD)卡、SxS、通用闪存(UFS)、miniSD、microSD、xD-图片卡、智能棒(iStick)等等。在一些实施例中,本地存储可以是存储器设备(例如,224)的一个分区或一部分。
在各种实施例中,可以通过将来自对应的预处理器406的经处理测量值与机器人设备的当前估计的姿势进行比较,检测不利事件。在各种实施例中,来自用于VSLAM的定位组件408的反馈可以向每个语义信息提取器406提供当前估计的姿势。如果来自预处理器404的经处理测量值所指示的姿势与当前估计的姿势之间的差异大于预定门限,则语义信息提取器406可以记录针对相关的一个或多个相关联传感器402的不利事件。具体而言,语义信息提取器406可以通过访问时隙服务器410识别时隙,在该时隙期间不利事件在一段时间内发生。在一些实施例中,时隙服务器410可以为每个语义信息提取器406维持独立的时间段和时隙指令。
使用当前估计的姿势和时隙,语义信息提取器406可以更新所存储的针对相关的一个或多个相关联的传感器402的语义信息。语义信息提取器406可以周期性地寻求识别跨时隙的不利事件发生中的模式和/或每个相关联的传感器402的姿势(例如,当每个时间段结束时)。可以将任何这样识别的模式提供给加权因子组件412,加权因子组件412可以从对应的预处理器404接收经处理的测量值。在各个实施例中,加权组件412可以基于所识别的模式、置信度值或准确性概率值,调整给予来自相关的相关联的传感器402的数据(即,经处理的测量值)的权重。这种调整可以涉及:在特定的持续时间内,或者当机器人设备位于特定的空间区域时,对来自传感器402的数据的加权因子进行降低。
在基于语义信息调整加权因子之后,可以将经处理的测量值提供给定位组件408。如上所述,定位组件408可以生成作为VSLAM过程的一部分的机器人设备的当前估计姿势。除了向语义信息组件406提供当前估计的姿势之外,定位组件408还可以将该信息提供给建图组件414和路径规划组件416。在各个实施例中,预处理组件404可以将关于局部环境中的障碍物的位置的数据提供给建图组件414。提供该障碍物位置信息的预处理器404以及它们的相关联的传感器402可以是与用于向语义信息提取器406提供经处理测量值的那些预处理器和传感器相同或不同。在一些实施例中,可以基于局部环境中的识别的点集和/或标志来计算对象位置信息。在一些实施例中,建图组件414可以利用当前估计的姿势和障碍物位置信息来构造至少一个地图。例如,在使用VSLAM技术时,建图组件414可以生成具有用于导航的本地环境的空间表示的地图、以及关于特征(例如,标志)来更新相对于机器人设备的建图信息。
可以将建图组件414生成的地图提供给路径规划组件416。路径规划组件416可以使用所接收的地图和当前估计的姿势信息,来选择、创建或更新用于机器人设备的导航路径。
在各个实施例中,机器人设备的处理器(例如,处理器220等等)和机器人设备的硬件组件和/或软件组件可以被配置为使用图像传感器来捕获和处理图像。例如,机器人设备的图像传感器可以捕获目标对象的图像。可以对目标对象进行定位或布置,使得机器人设备图像传感器可以容易地获取目标对象中的至少两个目标对象的图像。如果图像传感器不能获得目标对象中的两个或更多个目标对象的图像,则处理器可以指示各种致动器将机器人设备移动到另一个位置或姿势,并再次尝试。
处理器可以使用捕获的目标对象的图像来执行VSLAM。例如,处理器可以识别每个捕获的图像内的特征,并且可以尝试跟踪后续图像之间的那些特征。
在一些实施例中,处理器可以判断是否可以确定图像传感器的旋转角度。处理器可以尝试计算机器人设备和目标对象之间的旋转的角度。因为目标对象的尺寸、位置和定位是已知的并且存储在机器人设备的存储器中,所以处理器能够使用所捕获的图像,来计算机器人设备关于目标对象的旋转角度。响应于确定不能确定图像传感器的旋转角度,处理器可以捕获目标对象的额外图像。因此,如果处理器不能确定机器人设备关于目标对象的旋转角度,则机器人设备可以返回到捕获图像并执行VSLAM,直到找到可以根据其计算旋转角度的图像为止。
响应于确定可以确定图像传感器的旋转角度,处理器可以选择在图像的视野中具有两个或更多个目标对象的捕获图像。处理器可以至少部分地基于所选图像内的目标对象的位置来确定图像比例。因为目标对象相对于彼此的尺寸和位置是已知的,因此机器人设备的处理器可以计算图像的比例。处理器可以将所选图像中的目标对象的大小和分布与存储的针对这些目标对象的尺寸和位置信息进行比较,以确定图像中对象的比例。
处理器可以判断所选图像是否包括两个以上的目标对象。可以在选择捕获的图像期间、在特征识别期间或之后进行该确定。如果所选图像包含两个以上的目标对象,则可以从该图像中获得额外的信息。
响应于确定所选图像不包括两个以上的目标对象,处理器可以继续捕获目标对象的图像。另一方面,响应于确定所选图像包括两个以上的目标对象,处理器可以响应于确定所选图像包括两个以上的目标对象而确定旋转角度校正。
如果这些目标对象位于同一平面内,则处理器可以采用基于单应性矩阵的技术来确定旋转角度校正。如果这些目标对象不位于同一平面中,则处理器可以采用基本矩阵技术来确定旋转角度校正。
图5A根据实施例,示出了被配置为采用VSLAM技术的机器人设备102中的各种操作和功能组件,该VSLAM技术包括使用光流传感器的VSLAM比例估计。在图5A所示的例子中,机器人设备102包括车轮编码器105、光流传感器107、单应性计算组件506和比例估计组件508。
单应性计算组件506可以被配置为生成或计算初始单应性矩阵(H)。在一些实施例中,单应性计算组件506可以被配置为与机器人设备的处理器协同工作,以识别第一相机帧502中的突出对象/特征,识别第二相机帧504中的突出对象/特征,并将所识别的特征彼此进行比较和/或将所识别的特征与测试图像中的具有已知尺寸和比例的特征进行比较。单应性计算组件506可以基于这些比较来识别对应关系。单应性计算组件506可以使用所识别的对应关系,来生成或产生初始单应性矩阵(H)或单应性计算。
如上面所提及的,在一些实施例中,单应性计算组件506可以被配置为生成或计算单应性矩阵(H)或值。在各个实施例中,单应性矩阵(H)可以包括一组值、矢量、矢量集、映射、线性映射、矩形阵列、多维阵列或其它类似的信息结构。在一个实施例中,该单应性矩阵可以是具有8个自由度(DoF)的3x3矩阵,其是根据四(4)个点对应关系(例如,(p1,p1’)、(p2,p2’)、(p3,p3’)和(p4,p4’))来计算的。
可以经由函数调用来计算单应性矩阵(H),例如“Mat H=findHomography(points_sourceImage,points_destinationImage)”或“H=Mat findHomography((InputArray srcPoints,InputArray dstPoints,int method=0,doubleransacReprojThreshold=3,OutputArray mask=noArray()))”。在一些实施例中,单应性矩阵(H)可以是:
Figure BDA0002959403660000211
可以使用下式,从单应性矩阵(H)计算点p(x,y)的投影坐标p(x’,y’):
Figure BDA0002959403660000212
在一些实施例中,单应性计算组件506可以被配置为对单应性矩阵(H)执行奇异值分解(SVD)运算,以基于图像来计算或生成用于识别或估计机器人设备的位置和/或方位的事务信息结构(T)。
在一些实施例中,该系统可以被配置为经由诸如“Mat getAffineTransform(const Point2f src[],const Point2f dst[])”的函数调用来计算仿射、仿射图、仿射坐标或仿射变换。
比例估计组件508可以被配置为从单应性计算组件506接收单应性计算(例如,单应性矩阵(H)、事务(T)等等),从车轮编码器105接收车轮数据,以及从光流传感器107接收光流信息。
在一些实施例中,所接收的车轮事务数据和/或光流信息可以包括:用于标识机器人设备在第一图像帧和第二图像帧之间移动的方向和距离的信息。在一些实施例中,所接收的车轮事务数据和/或光流信息可以包括:用于标识机器人设备在第一图像帧和第二图像帧之间行进的距离(例如,欧几里德距离等等)的信息。在一些实施例中,所接收的车轮事务数据和/或光流信息可以包括:用于标识在捕获第一图像帧的第一位置与捕获第二图像帧的第二位置之间的最短路径的长度的信息。在一些实施例中,所接收的车轮数据可以包括车轮编码器事务(Tw)信息结构。在一些实施例中,所接收的光流信息可以包括光流传感器事务(To)信息结构。
比例估计组件508可以基于所接收的信息(例如,单应性计算、识别机器人设备102在第一图像帧和第二图像帧之间的位移的信息、等等),来估计对象、特征、图像或帧的比例。例如,比例估计组件508可以基于由单应性计算组件506计算的事务(T)和从车轮编码器接收的车轮编码器事务(Tw)的组合,来确定比例。再举一个例子,比例估计组件508可以使用从单应性计算组件506接收的信息来生成第一事务(T),使用从车轮编码器105接收的信息来生成第二事务(Tw),并基于第一事务和第二事务来确定比例(例如,s=Tw/T)。
在一个实施例中,计算设备可以被配置为通过调用诸如getWheelOdom(位置,方位)之类的函数,来计算包括在车轮编码器事务(Tw)中的值。计算设备可以将位置在对应于相机帧的短时间段(相机帧之间的时间)上求积分。在一个实施例中,计算设备可以被配置为如下所述地计算车轮编码器事务(Tw)的值:
Figure BDA0002959403660000221
其中,基于△x的符号,K=±1
比例估计组件508还可以基于单应性计算(例如,相机事务T)和光流信息(例如,光流传感器事务To)的组合来确定比例。例如,比例估计组件508可以基于由单应性计算组件506计算的事务(T)和从光流传感器107接收的光流传感器事务(To)的组合来确定比例。再举一个例子,比例估计组件508可以使用从单应性计算组件506接收的信息来生成第一事务(T),使用从光流传感器107接收的信息来生成另一事务(To),并基于所确定的事务来确定比例(例如,s=To/T)。
机器人设备中的处理器可以使用所确定的比例,采用基于单应性矩阵的技术来确定机器人设备姿势、旋转角度校正和/或其它类似信息。例如,处理器可以结合位移信息,使用第一相机帧和第二相机帧中的对象/特征之间的比例差异来确定其当前位置和方位。
图5B示出了用于基于光流信息,计算从时间(t)到时间(t+1)的事务的系统。在图5B所示的例子中,机器人设备102从时间t的位置(x,y)移动到时间t+1的位置(x+u,y+v)。在时间t和时间t+1之间,光流传感器在位置(u1,v1)捕获第一图像,在位置(u2,v2)捕获第二图像,在位置(u3,v3)捕获第三图像,在位置(u4,v4)捕获第四图像,以及在位置(u5,v5)捕获第五图像。在时间t和时间t+1之间的轨迹或位移是(u,v),其由光流传感器事务(To)表示。基于单应性计算,该系统可以计算在相同的时间段内,机器人设备的主相机的事务(T)。在该例子中,机器人设备的比例是To/T。
图5C示出了在没有比例估计的情况下,机器人设备的相机随时间的轨迹和姿势。
在时间t0,可以将第一姿势描述为:
Figure BDA0002959403660000231
从时间t0到时间t1,可以计算旋转(R1)和事务(T1),时间t1的姿势为:
Figure BDA0002959403660000232
从时间t1到时间t2,可以计算旋转(R2)和事务(T2),时间t2的姿势为:
Figure BDA0002959403660000241
从时间t2到时间t3,可以计算旋转(R3)和事务(T3),时间t3的姿势为:
Figure BDA0002959403660000242
图5D示出了在具有比例估计的情况下,机器人设备的相机随时间的轨迹和姿势。
在时间t0,可以将第一姿势描述为:
Figure BDA0002959403660000243
时间t1的姿势为:
Figure BDA0002959403660000244
时间t2的姿势为:
Figure BDA0002959403660000245
时间t3的姿势为:
Figure BDA0002959403660000246
图6根据实施例,示出了确定机器人设备的姿势的方法600。参考图1A-6,机器人设备的处理器(例如,处理器220等等)和机器人设备的硬件组件和/或软件组件可以尝试使用任何数量的机器人设备的传感器和其组合,来确定机器人设备的机器人设备姿势。
在方框602中,机器人设备的处理器可以接收或捕获环境的第一图像帧,其可以包括一个或多个目标对象。在一些实施例中,第一图像帧可以由单个(即,单目)相机捕获。
在方框604中,机器人设备的处理器可以接收或捕获一个或多个目标对象的第二图像帧。
在方框606中,机器人设备的处理器可以基于第一图像帧和第二图像帧生成单应性计算值,并基于该单应性计算值生成单应性矩阵(H)信息结构。
在方框608中,机器人设备的处理器可以从光流传感器收集或接收光流传感器数据。在一些实施例中,机器人设备的处理器可以将光流传感器图像应用于Lucas-Kanade组件/功能,以生成包括每个特征点的像素速度值和方向值的光流信息。在一个实施例中,作为方框608中的操作的一部分,处理器可以生成光流传感器事务(To)信息结构。
将方框608中的接收光流信息的操作与方框602和604中捕获图像的操作并行示出,以说明从光流传感器以及其它运动或距离传感器(例如,车轮编码器)接收运动数据可以与图像捕获操作并行地、顺序地、或者在相对于图像捕获操作的另一时间间隔处发生。在各个实施例中,可以连续地、周期性地、按需地(例如,响应于捕获第一图像和/或第二图像)和/或响应于确定(例如,响应于关于车轮打滑或者可能发生车轮打滑的处理器确定),来发生从光流传感器和其它测距传感器接收距离测量值。在一些实施例中,可以连续地收集来自光流传感器的距离测量数据,例如与由单独的处理器收集和处理的信息一起收集,其中该处理器将原始数据或过程数据存储在可由执行VSLAM的处理器访问的存储器中。在这样的实施例中,执行VSLAM的处理器可以在需要执行VSLAM计算时,访问存储的位置或距离数据。在一些实施例中,可以响应于捕获到要进行处理以用于VSLAM导航的图像(例如,在方框602和604中),接收从光流传感器接收的距离测量信息,例如在方框602中捕获第一图像时开始,以及在方框604中获得第二图像时终止。在一些实施例中,处理器可以判断是否在发生车轮打滑(如本文所述),并且响应于确定车轮打滑已经发生或正在发生,处理器可以开始接收或访问来自光流传感器的数据。在一些实施例中,处理器评估用于VSLAM的图像可以包括:对图像进行处理以识别或预测何时可能发生车轮打滑,例如检测到陡峭倾斜、要克服的障碍物、潮湿表面等等。响应于确定可能发生车轮打滑(例如,预测概率超过门限值),处理器可以开始从光流传感器接收数据。在各个实施例中,光流传感器可以一直是活动的,或者可以在执行VSLAM的处理器需要或要求测量数据时被激活。
在方框610中,机器人设备的处理器可以基于单应性计算(例如,事务T)和光流信息(例如,光流传感器事务To)来计算或确定比例估计值。
在方框612中,机器人设备的处理器可以基于所计算或确定的比例估计值,来确定机器人设备姿势(例如,定位、位置、方位等等)。
图7根据另一个实施例,示出了确定机器人设备的姿势的方法700。参考图1A-7,机器人设备的处理器(例如,处理器220等等)和机器人设备的硬件组件和/或软件组件可以尝试使用任何数量的机器人设备的传感器和其组合,来确定机器人设备的机器人设备姿势。在各个实施例中,可以在机器人设备在方框602和604中捕获目标对象的图像或者捕获第一图像帧和第二图像帧之后,执行方法700的操作。
在方框702中,机器人设备的处理器可以基于第一图像帧和第二图像帧来生成单应性计算(例如,相机事务T)。
在方框704中,机器人设备的处理器可以从车轮编码器接收车轮事务数据。在一些实施例中,所接收的车轮事务数据可以包括关于车轮的周长或尺寸的信息、以及关于车轮的旋转角度、转数和/或转速的信息。在一些实施例中,所接收的车轮事务数据可以包括:用于标识第一图像帧和第二图像帧之间的位移、距离、长度的信息。在一些实施例中,所接收的车轮事务数据可以包括车轮编码器事务(Tw)信息结构。在另外的实施例中,所接收的车轮事务数据可以包括以下各项中的任何一项或全部:分量矢量、位置信息、方位信息、坐标值、时间值、公差值、置信度值、精度值和/或适用于确定位移、距离或长度和/或接收的信息是精确、准确或正确的概率或可能性的其它类似信息。
在判断框706中,机器人设备的处理器可以分析车轮事务数据以检测打滑。在一些实施例中,机器人设备可以通过判断数据中是否存在连续性改变来检测发生打滑,其中不连续数据指示打滑。在一些实施例中,当收集的车轮事务数据与预期的车轮事务数据之间的差异超过门限值时,机器人设备可以确定已经检测到打滑。机器人设备可以基于从传感器(例如,传感器105、107、154、160-166等等)收集的任何或所有信息,来确定预期的车轮事务数据。例如,处理器可以将基于车轮事务数据的运动估计与基于一段时间内的加速度计数据的运动估计进行比较,以判断根据两个数据源确定的距离或速度估计是否不一致,例如偏离的量超过门限值。再举一个例子,处理器可以将基于车轮事务数据的运动或距离估计与基于碰撞避免传感器(例如,超声波声纳或雷达传感器)的运动或距离估计进行比较,以判断根据两个数据源确定的距离或速度估计是否不一致,例如偏离的量超过门限值。
在一个实施例中,机器人设备的处理器可以被配置为通过确定车轮姿势改变(或者正在连续地改变),但是相机捕获的相应图像没有改变(例如,来自相机的平移T为零)或者没有改变与车轮旋转一致的量,来检测打滑。在该情况下,车轮移动而没有使机器人设备显著地移动(即,车轮在位置上滑转)。
在一个实施例中,机器人设备的处理器可以被配置为通过确定车轮姿势和相机姿势都已经改变(或正在改变),但是车轮编码器事务(Tw)不等于来自相机的平移(T),来检测打滑。
响应于确定已经检测到打滑(即,判断框706=“是”),在方框707中,机器人设备的处理器可以从光流传感器收集光流信息。在一些实施例中,作为在方框707中的操作的一部分,机器人设备的处理器可以将光流传感器数据应用于Lucas-Kanade组件/功能。
在方框710中,机器人设备的处理器可以基于单应性计算和光流信息来确定比例估计值。
响应于确定尚未检测到打滑(即,判断框706=“否”),在方框712中,机器人设备的处理器可以基于单应性计算和车轮事务数据来确定比例估计值。
在方框714中,机器人设备的处理器可以基于比例估计值来确定机器人设备姿势(例如,机器人设备的姿势、机器人设备的图像传感器的姿势等等)。
图8根据另一个实施例,示出了确定机器人设备的姿势的方法800。参考图1A-8,机器人设备的处理器(例如,处理器220等等)和机器人设备的硬件组件和/或软件组件可以尝试使用任何数量的机器人设备的传感器和其组合,来确定机器人设备的机器人设备姿势。在各个实施例中,可以在机器人设备在方框702和704中捕获目标对象的图像或者捕获第一图像帧和第二图像帧之后,执行方法800的操作。
在方框802中,机器人设备的处理器可以基于第一图像帧和第二图像帧来生成单应性计算。
在方框804中,机器人设备的处理器可以从车轮编码器接收车轮事务数据。
在方框806中,机器人设备的处理器可以基于所接收的车轮事务数据来计算、生成或确定第一置信度值。
在方框808中,机器人设备的处理器可以从光流传感器接收光流信息。在一些实施例中,作为方框808中的操作的一部分,机器人设备的处理器可以将光流传感器数据应用于Lucas-Kanade组件/功能,以生成表征两个图像帧之间的转换或事务的光流信息。
在方框810中,机器人设备的处理器可以基于所接收的光流信息来确定、计算、生成或确定第二置信度值。
在判断框812中,机器人设备的处理器可以判断第一置信度值(基于所接收的车轮事务数据生成)是否超过第二置信度值(基于所接收的光流信息生成)。
响应于确定第一置信度值超过第二置信度值(即,判断框812=“是”),在方框814中,处理器可以基于单应性计算和车轮事务数据来确定比例估计值。
响应于确定第一置信度值没有超过第二置信度值(即,判断框812=“否”),在方框816中,处理器可以基于单应性计算和光流信息来确定比例估计值。
在方框818中,机器人设备的处理器可以基于比例估计值,来计算、生成或确定机器人设备姿势(例如,机器人设备的姿势、机器人设备的图像传感器的姿势等等)。
图9根据另一个实施例,示出了确定机器人设备的姿势的方法900。参考图1A-9,机器人设备的处理器(例如,处理器220等等)和机器人设备的硬件组件和/或软件组件可以尝试使用任何数量的机器人设备的传感器和其组合,来确定机器人设备的机器人设备姿势。在各个实施例中,可以在机器人设备在方框502中捕获目标对象的图像或者在方框702和704中捕获第一图像帧和第二图像帧之后,执行方法900的操作。
在方框902中,机器人设备的处理器可以基于第一图像帧和第二图像帧来计算、生成或确定单应性计算。
在方框904中,机器人设备的处理器可以从车轮编码器接收车轮事务数据。
在方框906中,机器人设备的处理器可以基于单应性计算和车轮事务数据来计算、生成或确定第一比例估计值。
在方框908中,机器人设备的处理器可以基于第一比例估计值来计算、生成或确定第一置信度值。
在方框910中,机器人设备的处理器可以从光流传感器接收光流信息。在一些实施例中,作为方框910中的操作的一部分,机器人设备的处理器可以将光流传感器数据应用于Lucas-Kanade组件/功能,以生成表征两个图像帧之间的转换或事务的光流信息。
在方框912中,机器人设备的处理器可以基于单应性计算和光流信息来计算、生成或确定第二比例估计值。
在方框914中,机器人设备的处理器可以基于第二比例估计值来计算、生成或确定第二置信度值。
在判断框916中,机器人设备的处理器可以判断第一置信度值(基于车轮事务数据)是否超过第二置信度值(基于光流信息)。
响应于确定第一置信度值超过第二置信度值(即,判断框916=“是”),在方框918中,处理器可以基于第一比例估计值来计算、生成或确定机器人设备姿势。
响应于确定第一置信度值没有超过第二置信度值(即,判断框916=“否”),在方框920中,处理器可以基于第二比例估计值来计算、生成或确定机器人设备姿势。
图10根据实施例,示出了确定比例估计值和机器人设备的姿势以便改善导航的方法1000。参考图1A-10,机器人设备的处理器(例如,处理器220等等)和机器人设备的硬件组件和/或软件组件可以尝试使用任何数量的机器人设备的传感器和其组合,来确定机器人设备的机器人设备姿势。在各个实施例中,可以在机器人设备在方框502中捕获目标对象的图像或者在方框702和704中捕获第一图像帧和第二图像帧之后,执行方法1000的操作。
在方框1002中,机器人设备的处理器可以基于第一图像帧和第二图像帧来计算、生成或确定单应性计算。
在方框1004中,机器人设备的处理器可以从车轮编码器接收车轮事务数据。
在方框1006中,机器人设备的处理器可以从光流传感器接收光流信息。在一些实施例中,作为方框1006中的操作的一部分,机器人设备的处理器可以将光流传感器数据应用于Lucas-Kanade组件/功能,以生成表征两个图像帧之间的转换或事务的光流信息。
在方框1008中,机器人设备的处理器可以基于车轮事务数据和光流信息(例如,光流传感器事务To)的组合以及单应性计算来确定比例估计值。例如,处理器可以执行传感器融合操作,以将车轮事务数据进行归一化并与光流信息进行组合,并且基于单应性计算和传感器融合操作的结果来确定比例估计值。
在方框1010中,机器人设备的处理器可以基于所确定的比例估计值来计算、生成或确定机器人设备姿势。
各个实施例还使用更准确地确定的机器人设备姿势,来提高机器人设备的VSLAM能力的准确性。
所示出和描述的各种实施例仅仅提供成用于说明权利要求书的各个特征的举例。但是,关于任何给定实施例示出和描述的特征并不必限于相关联的实施例,并且可以与所示出和描述的其它实施例一起使用或组合。此外,权利要求书并不旨在受到任何一个示例性实施例的限制。例如,方法600、700、800、900和1000的操作中的一个或多个可以替代为这些方法的一个或多个操作或者与之相组合。
上述的方法描述和处理流程图仅仅是用作为说明性例子,而不是旨在要求或者隐含着必须以所给出的顺序来执行各个实施例的操作。如本领域普通技术人员所应当理解的,可以以任何顺序来执行上述的实施例中的操作顺序。诸如“其后”、“转而”、“接着”等等之类的词语,并不旨在限制这些操作的顺序;这些词语仅仅只是用于引导读者遍历该方法的描述。此外,任何对权利要求要素的单数引用(例如,使用冠词“一个(a)”、“某个(an)”或者“该(the)”),不应被解释为将该要素限制为单数形式。
结合本文所公开的实施例描述的各种示例性逻辑框、模块、组件、电路和算法操作均可以实现成电子硬件、计算机软件或二者的组合。为了清楚地表示硬件和软件之间的这种可交换性,上面对各种示例性组件、框、模块、电路和操作均围绕其功能进行了总体描述。至于这种功能是实现成硬件还是实现成软件,取决于特定的应用和对整个系统所施加的设计约束。技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这种实施例决策不应被解释为使得背离权利要求书的保护范围。
可以利用被设计为执行本文所述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者其任意组合,来实现或执行用于实现结合本文所公开的方面描述的各种示例性逻辑单元、逻辑框、模块和电路的硬件。通用处理器可以是微处理器,或者,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以实现为接收器智能对象的组合,例如,DSP和微处理器的组合、若干微处理器、一个或多个微处理器与DSP内核的结合,或者任何其它此种结构。替代地,一些操作或方法可以由特定于给定的功能的电路来执行。
在一个或多个实施例中,本文所述功能可以用硬件、软件、固件或它们任意组合的方式来实现。当在软件中实现时,可以将这些功能存储成非临时性计算机可读存储介质或者非临时性处理器可读存储介质上的一个或多个指令或代码。本文所公开的方法或算法的操作,可以体现在处理器可执行软件模块或者处理器可执行指令中,后者可以位于非临时性计算机可读存储介质或处理器可读存储介质上。非临时性计算机可读或处理器可读存储介质可以是计算机或处理器能够存取的任何存储介质。举例而言,但非做出限制,这种非临时性计算机可读存储介质或者处理器可读存储介质可以包括RAM、ROM、EEPROM、闪存、CD-ROM或其它光盘存储器、磁盘存储器或其它磁存储智能对象、或者能够用于存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。如本文所使用的,磁盘和光盘包括压缩光盘(CD)、激光盘、光盘、数字通用光盘(DVD)、软盘和蓝光盘,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上述的组合也包括在非临时性计算机可读介质和处理器可读介质的范围之内。另外,一种方法或算法的操作可以作为一个代码和/或指令或代码和/或指令集或者其任意组合,位于非临时性处理器可读存储介质和/或计算机可读存储介质上,其中该非临时性处理器可读存储介质和/或计算机可读存储介质可以并入到计算机程序产品中。
为使本领域任何普通技术人员能够实现或者使用权利要求书,上面围绕所公开的实施例进行了描述。对于本领域普通技术人员来说,对这些实施例的各种修改是显而易见的,并且,本文定义的总体原理也可以在不脱离权利要求书的保护范围的基础上应用于其它实施例。因此,本公开内容并不限于本文所示出的实施例,而是符合与所附权利要求书和本文公开的原理和新颖性特征相一致的最广范围。

Claims (30)

1.一种由机器人设备的处理器执行视觉同时定位和建图(VSLAM)的方法,包括:
从单目图像传感器接收第一图像帧;
从所述单目图像传感器接收第二图像帧;
基于所述第一图像帧和所述第二图像帧生成单应性计算;
从光流传感器接收光流传感器数据;以及
基于所述单应性计算和所述光流传感器数据来确定比例估计值。
2.根据权利要求1所述的方法,其中,基于所述第一图像帧和所述第二图像帧生成所述单应性计算包括:
生成单应性矩阵信息结构;以及
通过对所生成的单应性矩阵信息结构执行奇异值分解(SVD)运算来生成事务信息结构。
3.根据权利要求2所述的方法,其中,基于所述第一图像帧和所述第二图像帧生成所述单应性计算还包括:
识别所述第一图像帧中的至少四个特征点;
识别所述第二图像帧中的至少四个对应特征点;以及
生成所述单应性矩阵信息结构以包括所识别的至少四个特征点和所识别的至少四个对应特征点。
4.根据权利要求1所述的方法,还包括:
基于所述比例估计值,确定所述机器人设备的机器人设备姿势。
5.根据权利要求4所述的方法,还包括:
从车轮编码器接收车轮事务数据;
基于所述单应性计算和所述车轮事务数据来确定基于车轮的比例估计值;
根据所述基于车轮的比例估计值来确定第一置信度值;以及
基于所述比例估计值来确定第二置信度值,
其中,基于所述比例估计值确定所述机器人设备姿势包括:
响应于确定所述第一置信度值未超过所述第二置信度值,基于所述比例估计值来确定所述机器人设备姿势;以及
响应于确定所述第一置信度值超过所述第二置信度值,基于所述车轮事务数据来确定所述机器人设备姿势。
6.根据权利要求5所述的方法,其中:
基于所述第一图像帧和所述第二图像帧生成所述单应性计算包括:基于所述第一图像帧和所述第二图像帧来生成相机事务信息结构;以及
基于所述单应性计算和所述车轮事务数据来确定所述基于车轮的比例估计值包括:
基于所述车轮事务数据来生成车轮编码器事务信息结构;以及
基于包括在所述相机事务信息结构中的值和包括在所述车轮编码器事务信息结构中的值,来确定所述基于车轮的比例估计值。
7.根据权利要求1所述的方法,还包括:
从车轮编码器接收车轮事务数据;
基于所述车轮事务数据或所述光流传感器数据中的至少一者,确定在一段时间内发生的打滑量;以及
判断所确定的打滑量是否超过打滑门限值,
其中,基于所述单应性计算和所述光流传感器数据来确定所述比例估计值包括:
响应于确定所确定的打滑量超过所述打滑门限值,基于所述单应性计算和所述光流传感器数据来确定所述比例估计值;以及
响应于确定所确定的打滑量未超过所述打滑门限值,基于所述单应性计算和所述车轮事务数据来确定所述比例估计值。
8.根据权利要求1所述的方法,还包括:
从车轮编码器接收车轮事务数据;
判断所述车轮事务数据是否包括错误或异常数据;
其中,基于所述单应性计算和所述光流传感器数据来确定所述比例估计值包括:响应于确定所述车轮事务数据包括错误或异常数据,基于所述单应性计算和所述光流传感器数据来确定所述比例估计值。
9.根据权利要求1所述的方法,还包括:
从车轮编码器接收车轮事务数据;
基于所述车轮事务数据来确定第一置信度值;
基于所述光流传感器数据来确定第二置信度值;以及
判断所述第一置信度值是否超过所述第二置信度值,
其中,基于所述单应性计算和所述光流传感器数据来确定所述比例估计值包括:
响应于确定所述第一置信度值未超过所述第二置信度值,基于所述单应性计算和所述光流传感器数据来确定所述比例估计值;以及
响应于确定所述第一置信度值超过所述第二置信度值,基于所述单应性计算和所述车轮事务数据来确定所述比例估计值。
10.根据权利要求1所述的方法,还包括:
将所述光流传感器数据应用于Lucas-Kanade组件以生成包括针对至少一个特征点的像素速度值和方向值的光流信息;以及
基于所述光流信息生成光流传感器事务信息结构,
其中,基于所述单应性计算和所述光流传感器数据来确定所述比例估计值包括:基于所述单应性计算和所生成的光流传感器事务信息结构来确定所述比例估计值。
11.一种机器人设备,包括:
存储器;
传感器;以及
通信地连接到所述存储器和所述传感器的处理器,并且所述处理器被配置有处理器可执行指令以用于;
从单目图像传感器接收第一图像帧;
从所述单目图像传感器接收第二图像帧;
基于所述第一图像帧和所述第二图像帧生成单应性计算;
从光流传感器接收光流传感器数据;以及
基于所述单应性计算和所述光流传感器数据来确定比例估计值。
12.根据权利要求11所述的机器人设备,其中,所述处理器还被配置有通过以下操作来基于所述第一图像帧和所述第二图像帧生成所述单应性计算的处理器可执行指令:
生成单应性矩阵信息结构;以及
通过对所生成的单应性矩阵信息结构执行奇异值分解(SVD)运算来生成事务信息结构。
13.根据权利要求12所述的机器人设备,其中,所述处理器还被配置有通过以下操作来基于所述第一图像帧和所述第二图像帧生成所述单应性计算的处理器可执行指令:
识别所述第一图像帧中的至少四个特征点;
识别所述第二图像帧中的至少四个对应特征点;以及
生成所述单应性矩阵信息结构以包括所识别的至少四个特征点和所识别的至少四个对应特征点。
14.根据权利要求11所述的机器人设备,其中,所述处理器还被配置有基于所述比例估计值来确定所述机器人设备的机器人设备姿势的处理器可执行指令。
15.根据权利要求14所述的机器人设备,其中:
所述处理器还被配置有用于以下操作的处理器可执行指令:
从车轮编码器接收车轮事务数据;
基于所述单应性计算和所述车轮事务数据来确定基于车轮的比例估计值;
根据所述基于车轮的比例估计值来确定第一置信度值;以及
基于所述比例估计值来确定第二置信度值,以及
所述处理器还被配置有通过以下操作来基于所述比例估计值确定所述机器人设备姿势的处理器可执行指令:
响应于确定所述第一置信度值未超过所述第二置信度值,基于所述比例估计值来确定所述机器人设备姿势;以及
响应于确定所述第一置信度值超过所述第二置信度值,基于所述车轮事务数据来确定所述机器人设备姿势。
16.根据权利要求15所述的机器人设备,其中,所述处理器还被配置有用于以下操作的处理器可执行指令:
通过基于所述第一图像帧和所述第二图像帧来生成相机事务信息结构,以基于所述第一图像帧和所述第二图像帧生成所述单应性计算;以及
通过以下操作,来基于所述单应性计算和所述车轮事务数据来确定所述基于车轮的比例估计值:
基于所述车轮事务数据来生成车轮编码器事务信息结构;以及
基于包括在所述相机事务信息结构中的值和包括在所述车轮编码器事务信息结构中的值,来确定所述基于车轮的比例估计值。
17.根据权利要求11所述的机器人设备,其中:
所述处理器还被配置有用于以下操作的处理器可执行指令:
从车轮编码器接收车轮事务数据;
基于所述车轮事务数据或所述光流传感器数据中的至少一者,确定在一段时间内发生的打滑量;以及
判断所确定的打滑量是否超过打滑门限值,以及
所述处理器还被配置有通过以下操作来基于所述单应性计算和所述光流传感器数据来确定所述比例估计值的处理器可执行指令:
响应于确定所确定的打滑量超过所述打滑门限值,基于所述单应性计算和所述光流传感器数据来确定所述比例估计值;以及
响应于确定所确定的打滑量未超过所述打滑门限值,基于所述单应性计算和所述车轮事务数据来确定所述比例估计值。
18.根据权利要求11所述的机器人设备,其中:
所述处理器还被配置有用于以下操作的处理器可执行指令:
从车轮编码器接收车轮事务数据;以及
判断所述车轮事务数据是否包括错误或异常数据;以及
所述处理器还被配置有通过以下操作来基于所述单应性计算和所述光流传感器数据来确定所述比例估计值的处理器可执行指令:响应于确定所述车轮事务数据包括错误或异常数据,基于所述单应性计算和所述光流传感器数据来确定所述比例估计值。
19.根据权利要求11所述的机器人设备,其中:
所述处理器还被配置有用于以下操作的处理器可执行指令:
从车轮编码器接收车轮事务数据;
基于所述车轮事务数据来确定第一置信度值;
基于所述光流传感器数据来确定第二置信度值;以及
判断所述第一置信度值是否超过所述第二置信度值,以及
所述处理器还被配置有通过以下操作来基于所述单应性计算和所述光流传感器数据来确定所述比例估计值的处理器可执行指令:
响应于确定所述第一置信度值未超过所述第二置信度值,基于所述单应性计算和所述光流传感器数据来确定所述比例估计值;以及
响应于确定所述第一置信度值超过所述第二置信度值,基于所述单应性计算和所述车轮事务数据来确定所述比例估计值。
20.根据权利要求11所述的机器人设备,其中:
所述处理器还被配置有用于以下操作的处理器可执行指令:
将所述光流传感器数据应用于Lucas-Kanade组件以生成包括针对至少一个特征点的像素速度值和方向值的光流信息;以及
基于所述光流信息生成光流传感器事务信息结构,以及
所述处理器还被配置有通过以下操作来基于所述单应性计算和所述光流传感器数据来确定所述比例估计值的处理器可执行指令:基于所述单应性计算和所生成的光流传感器事务信息结构来确定所述比例估计值。
21.一种被配置为在机器人车辆中使用的处理设备,其中,所述处理设备被配置为:
从单目图像传感器接收第一图像帧;
从所述单目图像传感器接收第二图像帧;
基于所述第一图像帧和所述第二图像帧生成单应性计算;
从光流传感器接收光流传感器数据;以及
基于所述单应性计算和所述光流传感器数据来确定比例估计值。
22.根据权利要求21所述的处理设备,其中,所述处理设备还被配置为通过以下操作,基于所述第一图像帧和所述第二图像帧生成所述单应性计算:
生成单应性矩阵信息结构;以及
通过对所生成的单应性矩阵信息结构执行奇异值分解(SVD)运算来生成事务信息结构。
23.根据权利要求22所述的处理设备,其中,所述处理设备还被配置为通过以下操作,基于所述第一图像帧和所述第二图像帧生成所述单应性计算:
识别所述第一图像帧中的至少四个特征点;
识别所述第二图像帧中的至少四个对应特征点;以及
生成所述单应性矩阵信息结构以包括所识别的至少四个特征点和所识别的至少四个对应特征点。
24.根据权利要求21所述的处理设备,其中,所述处理设备还被配置为:
从车轮编码器接收车轮事务数据;
基于所述单应性计算和所述车轮事务数据来确定基于车轮的比例估计值;
根据所述基于车轮的比例估计值来确定第一置信度值;以及
基于所述比例估计值来确定第二置信度值,
响应于确定所述第一置信度值未超过所述第二置信度值,基于所述比例估计值来确定所述机器人设备姿势;以及
响应于确定所述第一置信度值超过所述第二置信度值,基于所述车轮事务数据来确定所述机器人设备姿势。
25.根据权利要求24所述的处理设备,其中,所述处理设备还被配置为:
通过基于所述第一图像帧和所述第二图像帧来生成相机事务信息结构,以基于所述第一图像帧和所述第二图像帧生成所述单应性计算;以及
通过以下操作,来基于所述单应性计算和所述车轮事务数据来确定所述基于车轮的比例估计值:
基于所述车轮事务数据来生成车轮编码器事务信息结构;以及
基于包括在所述相机事务信息结构中的值和包括在所述车轮编码器事务信息结构中的值,来确定所述基于车轮的比例估计值。
26.根据权利要求21所述的处理设备,其中:
所述处理设备还被配置为:
从车轮编码器接收车轮事务数据;
基于所述车轮事务数据或所述光流传感器数据中的至少一者,确定在一段时间内发生的打滑量;以及
判断所确定的打滑量是否超过打滑门限值;以及
所述处理设备还被配置为通过以下操作,基于所述单应性计算和所述光流传感器数据来确定所述比例估计值:
响应于确定所确定的打滑量超过所述打滑门限值,基于所述单应性计算和所述光流传感器数据来确定所述比例估计值;以及
响应于确定所确定的打滑量未超过所述打滑门限值,基于所述单应性计算和所述车轮事务数据来确定所述比例估计值。
27.根据权利要求21所述的处理设备,其中:
所述处理设备还被配置为:
从车轮编码器接收车轮事务数据;以及
判断所述车轮事务数据是否包括错误或异常数据;以及
所述处理设备还被配置为通过以下操作,基于所述单应性计算和所述光流传感器数据来确定所述比例估计值:响应于确定所述车轮事务数据包括错误或异常数据,基于所述单应性计算和所述光流传感器数据来确定所述比例估计值。
28.根据权利要求21所述的处理设备,其中:
所述处理设备还被配置为:
从车轮编码器接收车轮事务数据;
基于所述车轮事务数据来确定第一置信度值;
基于所述光流传感器数据来确定第二置信度值;以及
判断所述第一置信度值是否超过所述第二置信度值;以及
所述处理设备还被配置为通过以下操作,基于所述单应性计算和所述光流传感器数据来确定所述比例估计值:
响应于确定所述第一置信度值未超过所述第二置信度值,基于所述单应性计算和所述光流传感器数据来确定所述比例估计值;以及
响应于确定所述第一置信度值超过所述第二置信度值,基于所述单应性计算和所述车轮事务数据来确定所述比例估计值。
29.根据权利要求21所述的处理设备,其中:
所述处理设备还被配置为:
将所述光流传感器数据应用于Lucas-Kanade组件以生成包括针对至少一个特征点的像素速度值和方向值的光流信息;以及
基于所述光流信息生成光流传感器事务信息结构;以及
所述处理设备还被配置为通过以下操作,基于所述单应性计算和所述光流传感器数据来确定所述比例估计值:基于所述单应性计算和所生成的光流传感器事务信息结构来确定所述比例估计值。
30.一种机器人设备,包括:
用于从单目图像传感器接收第一图像帧的单元;
用于从所述单目图像传感器接收第二图像帧的单元;
用于基于所述第一图像帧和所述第二图像帧生成单应性计算的单元;
用于从光流传感器接收光流传感器数据的单元;以及
用于基于所述单应性计算和所述光流传感器数据来确定比例估计值的单元。
CN201880097333.7A 2018-09-15 2018-09-15 在机器人设备上使用光流传感器进行vslam比例估计的系统和方法 Pending CN112740274A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/105898 WO2020051923A1 (en) 2018-09-15 2018-09-15 Systems And Methods For VSLAM Scale Estimation Using Optical Flow Sensor On A Robotic Device

Publications (1)

Publication Number Publication Date
CN112740274A true CN112740274A (zh) 2021-04-30

Family

ID=69777386

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880097333.7A Pending CN112740274A (zh) 2018-09-15 2018-09-15 在机器人设备上使用光流传感器进行vslam比例估计的系统和方法

Country Status (5)

Country Link
US (1) US20210232151A1 (zh)
EP (1) EP3850581A4 (zh)
CN (1) CN112740274A (zh)
TW (1) TWI827649B (zh)
WO (1) WO2020051923A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114237242A (zh) * 2021-12-14 2022-03-25 北京云迹科技股份有限公司 基于光学编码器对机器人进行控制的方法及装置
CN114347064A (zh) * 2022-01-31 2022-04-15 深圳市云鼠科技开发有限公司 基于光流的机器人碰撞检测方法、装置、计算机设备及存储介质
US11521332B1 (en) 2021-06-29 2022-12-06 Midea Group Co., Ltd. Method and apparatus for optimization of a monocular visual-inertial localization system
US11756231B2 (en) 2021-06-29 2023-09-12 Midea Group Co., Ltd. Method and apparatus for scale calibration and optimization of a monocular visual-inertial localization system

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020248185A1 (en) * 2019-06-13 2020-12-17 Lingdong Technology (Beijing) Co. Ltd Autonomous mobile robot with adjustable display screen
US20210065374A1 (en) * 2019-08-26 2021-03-04 Organize Everything Inc. System and method for extracting outlines of physical objects
TWI732579B (zh) * 2020-06-02 2021-07-01 中華學校財團法人中華科技大學 無人載具之智慧充電方法及系統
US11718320B1 (en) * 2020-08-21 2023-08-08 Aurora Operations, Inc. Using transmission sensor(s) in localization of an autonomous vehicle
TWI739622B (zh) * 2020-10-05 2021-09-11 國立虎尾科技大學 多光點雷射測距儀以及利用多光點雷射測距儀判斷反射光束種類及中心點位置之方法
CN112414365B (zh) * 2020-12-14 2022-08-16 广州昂宝电子有限公司 位移补偿方法和设备及速度补偿方法和设备
CN114765667A (zh) * 2021-01-13 2022-07-19 安霸国际有限合伙企业 用于多视图拼接的固定图案校准
KR20230064188A (ko) * 2021-11-03 2023-05-10 네이버랩스 주식회사 단안 거리 추정 모델 학습 방법 및 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106529587A (zh) * 2016-08-26 2017-03-22 北京航空航天大学 基于目标点识别的视觉航向识别方法
US20170206665A1 (en) * 2016-01-14 2017-07-20 Texas Instruments Incorporated Confidence Estimation For Optical Flow Under Low Light Conditions
CN107610175A (zh) * 2017-08-04 2018-01-19 华南理工大学 基于半直接法和滑动窗口优化的单目视觉slam算法
CN108469823A (zh) * 2018-04-04 2018-08-31 浙江大学 一种基于单应性的移动机器人编队跟随方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10027952B2 (en) * 2011-08-04 2018-07-17 Trx Systems, Inc. Mapping and tracking system with features in three-dimensional space
WO2016026039A1 (en) * 2014-08-18 2016-02-25 Verity Studios Ag Invisible track for an interactive mobile robot system
US10365363B2 (en) * 2015-05-08 2019-07-30 Humatics Corporation Mobile localization using sparse time-of-flight ranges and dead reckoning
CN106325118A (zh) * 2015-06-30 2017-01-11 芋头科技(杭州)有限公司 机器人活跃程度智能控制系统及方法
US10173324B2 (en) * 2015-11-16 2019-01-08 Abb Schweiz Ag Facilitating robot positioning
CN106803261A (zh) * 2015-11-20 2017-06-06 沈阳新松机器人自动化股份有限公司 机器人相对位姿估计方法
EP3187953B1 (en) * 2015-12-30 2020-03-18 Honda Research Institute Europe GmbH Autonomous working machine such as autonomous lawn mower
WO2017201487A1 (en) * 2016-05-20 2017-11-23 Magic Leap, Inc. Method and system for performing convolutional image transformation estimation
US20180043952A1 (en) * 2016-08-12 2018-02-15 Spin Master Ltd. Spherical mobile robot with shifting weight steering
TW201826993A (zh) * 2016-12-09 2018-08-01 美商泰華施股份有限公司 具有基於環境之操作速度變化的機器人清潔裝置
CN106598339A (zh) * 2016-12-22 2017-04-26 武汉华星光电技术有限公司 触控显示器及具有该触控显示器的电子设备
US10719956B2 (en) * 2017-03-14 2020-07-21 Nec Corporation Camera parameter estimation apparatus, camera parameter estimation method, and computer-readable recording medium
US10705525B2 (en) * 2017-04-07 2020-07-07 Nvidia Corporation Performing autonomous path navigation using deep neural networks
EP3474230B1 (en) * 2017-10-18 2020-07-22 Tata Consultancy Services Limited Systems and methods for edge points based monocular visual slam

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170206665A1 (en) * 2016-01-14 2017-07-20 Texas Instruments Incorporated Confidence Estimation For Optical Flow Under Low Light Conditions
CN106529587A (zh) * 2016-08-26 2017-03-22 北京航空航天大学 基于目标点识别的视觉航向识别方法
CN107610175A (zh) * 2017-08-04 2018-01-19 华南理工大学 基于半直接法和滑动窗口优化的单目视觉slam算法
CN108469823A (zh) * 2018-04-04 2018-08-31 浙江大学 一种基于单应性的移动机器人编队跟随方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DINGFU ZHOU 等: "Reliable Scale Estimation and Correction for Monocular Visual Odometry", 2016 IEEE INTELLIGENT VEHICLES SYMPOSIUM (IV), pages 491 *
K.NAGATANI 等: "Improvement of Odometry for Omnidirectional Vehicle using Optical Flow Information", PROCEEDINGS OF THE 2000 IEEE/RSJ INTERNATIONAL CONFERENCE ON INTELLIGENT ROBOTS AND SYSTEMS, pages 468 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11521332B1 (en) 2021-06-29 2022-12-06 Midea Group Co., Ltd. Method and apparatus for optimization of a monocular visual-inertial localization system
WO2023273310A1 (en) * 2021-06-29 2023-01-05 Midea Group Co., Ltd. Method and apparatus for optimization of a monocular visual-inertial localization system
US11756231B2 (en) 2021-06-29 2023-09-12 Midea Group Co., Ltd. Method and apparatus for scale calibration and optimization of a monocular visual-inertial localization system
CN114237242A (zh) * 2021-12-14 2022-03-25 北京云迹科技股份有限公司 基于光学编码器对机器人进行控制的方法及装置
CN114237242B (zh) * 2021-12-14 2024-02-23 北京云迹科技股份有限公司 基于光学编码器对机器人进行控制的方法及装置
CN114347064A (zh) * 2022-01-31 2022-04-15 深圳市云鼠科技开发有限公司 基于光流的机器人碰撞检测方法、装置、计算机设备及存储介质
CN114347064B (zh) * 2022-01-31 2022-09-20 深圳市云鼠科技开发有限公司 基于光流的机器人碰撞检测方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
US20210232151A1 (en) 2021-07-29
TWI827649B (zh) 2024-01-01
WO2020051923A1 (en) 2020-03-19
EP3850581A1 (en) 2021-07-21
TW202013251A (zh) 2020-04-01
EP3850581A4 (en) 2022-05-11

Similar Documents

Publication Publication Date Title
TWI827649B (zh) 用於vslam比例估計的設備、系統和方法
US10949798B2 (en) Multimodal localization and mapping for a mobile automation apparatus
CN108051002B (zh) 基于惯性测量辅助视觉的运输车空间定位方法及系统
US10133278B2 (en) Apparatus of controlling movement of mobile robot mounted with wide angle camera and method thereof
US11720100B2 (en) Systems and methods for utilizing semantic information for navigation of a robotic device
Kanade et al. Real-time and 3D vision for autonomous small and micro air vehicles
Panahandeh et al. Vision-aided inertial navigation based on ground plane feature detection
Nieuwenhuisen et al. Multimodal obstacle detection and collision avoidance for micro aerial vehicles
KR20150144731A (ko) 다이렉트 트래킹을 이용하여 이동 로봇의 위치를 인식하기 위한 장치 및 그 방법
Chatterjee et al. Vision based autonomous robot navigation: algorithms and implementations
AU2019217205A1 (en) Method of and apparatus for analyzing images
Klingbeil et al. Towards autonomous navigation of an UAV-based mobile mapping system
US11561553B1 (en) System and method of providing a multi-modal localization for an object
Hoang et al. Combining edge and one-point ransac algorithm to estimate visual odometry
Tsukiyama Global navigation system with RFID tags
Noaman et al. Landmarks exploration algorithm for mobile robot indoor localization using VISION sensor
Hernández et al. Visual SLAM with oriented landmarks and partial odometry
Kozák et al. Robust visual teach and repeat navigation for unmanned aerial vehicles
Liang et al. Of-vo: Reliable navigation among pedestrians using commodity sensors
Sun et al. Detection and state estimation of moving objects on a moving base for indoor navigation
Wang et al. Real-time visual odometry for autonomous MAV navigation using RGB-D camera
Salimzadeh Visual State Estimation for Autonomous Navigation
Pekkanen Motion-based extrinsic parameter calibration of a robot’s multisensor system
Suganthi et al. Survey on Embedding Economical Autonomous Navigation System for Mobile Robots and UAV
Lyu Hybrid Aerial and Ground-based Mobile Robot for Retail Inventory

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination