CN115003983A - 用于通过动态调整测量噪声协方差进行视觉slam的误差状态卡尔曼滤波器 - Google Patents
用于通过动态调整测量噪声协方差进行视觉slam的误差状态卡尔曼滤波器 Download PDFInfo
- Publication number
- CN115003983A CN115003983A CN202180011363.3A CN202180011363A CN115003983A CN 115003983 A CN115003983 A CN 115003983A CN 202180011363 A CN202180011363 A CN 202180011363A CN 115003983 A CN115003983 A CN 115003983A
- Authority
- CN
- China
- Prior art keywords
- slam
- state
- pose
- gesture
- covariance
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/88—Lidar systems specially adapted for specific applications
- G01S17/89—Lidar systems specially adapted for specific applications for mapping or imaging
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/10—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
- G01C21/12—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
- G01C21/16—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
- G01C21/165—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
- G01C21/1656—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S17/00—Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
- G01S17/86—Combinations of lidar systems with systems other than lidar, radar or sonar, e.g. with direction finders
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S7/00—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
- G01S7/48—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
- G01S7/4808—Evaluating distance, position or velocity data
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Electromagnetism (AREA)
- Automation & Control Theory (AREA)
- Image Analysis (AREA)
- Navigation (AREA)
Abstract
描述了用于执行图像速率姿势测量更新的技术。在示例中,计算机系统(110)从惯性测量单元(113)接收计算的位置。计算机系统(110)从摄像头(112,114)接收多个图像。计算机系统(110)预测包括状态变量和状态协方差的误差状态。计算机系统(110)使用优化过程以第一频率提供第一SLAM姿势,使用纯视觉里程计以第二频率提供第二SLAM姿势。计算系统(110)使用第一SLAM姿势或第二SLAM姿势更新状态变量和状态协方差。
Description
背景技术
惯性导航(inertial navigation)是一种经典的定位方法。惯性导航使用一个或多个传感器,例如运动传感器或旋转传感器,不断计算和调整移动物体的位置、方向和速度。运动和旋转的感测可以通过惯性测量单元(inertial measurement unit,IMU)完成。惯性导航的一个优点是其仅依赖于传感器本身,而不需要例如全球定位系统、声纳位置建图、或基于相机的位置估计等外部参考。
确定位置的另一种方法是应用扩展卡尔曼滤波器(Extended Kalman Filter,EKF),例如使用全球定位系统。然而,在EKF中,定向需要使用具有很多参数的四元数或旋转矩阵。有时,EKF具有高阶乘积,这使得雅可比矩阵的计算变得困难且缓慢。此外,当状态值过大时,使用EKF计算雅可比矩阵可能会出现各种计算问题,例如可能的参数奇异性、万向节锁问题等,无法保证线性化有效性始终保持不变。
发明内容
本发明实施例涉及通过插入测量的更新以更紧密地结合预测的状态变量和测量的状态变量,使用图像速率测量更新ESKF滤波器。本发明实施例适用于增强现实和基于计算机的系统中的各种应用。
根据本发明的实施例,提供了一种更新同时定位与建图系统中的状态变量的方法。该方法包括从惯性测量单元接收计算的位置,其中,上述计算的位置包括位置、方向、以及速度。该方法包括从摄像头接收多个图像。该方法还包括预测包括状态变量和状态协方差的误差状态。该方法包括使用优化过程处理上述多个图像的第一图像子集,以第一频率提供第一SLAM姿势。该方法还包括使用纯视觉里程计处理上述多个图像的第二图像子集,以第二频率提供第二SLAM姿势。该方法还包括使用上述第一SLAM姿势和上述第二SLAM姿势中的至少一个来更新上述状态变量和上述状态协方差。在一个示例中,状态变量包括至少速率、加速度计度量、陀螺仪度量、或重力测量的向量。
根据本发明的实施例,提供了用于更新SLAM系统的状态变量和状态协方差的计算系统。该计算系统包括惯性测量单元。该计算系统还包括处理器和存储有指令的一个或多个存储器,指令可由处理器执行。处理器执行指令以配置计算系统更新SLAM系统的状态变量和状态协方差。处理器配置该计算系统从惯性测量单元接收计算的位置,其中,计算的位置包括位置、方向、以及速度。处理器配置该计算系统从摄像头接收多个图像。处理器配置该计算系统预测包括状态变量和状态协方差的误差状态。处理器配置该计算系统使用优化过程处理上述多个图像的第一图像子集,以第一频率提供第一SLAM姿势。处理器配置该计算系统使用纯视觉里程计处理上述多个图像的第二图像子集,以第二频率提供第二SLAM姿势。处理器配置该计算系统使用上述第一SLAM姿势和上述第二SLAM姿势中的至少一个来更新上述状态变量和上述状态协方差。
相比于传统技术,本发明实现了许多优点。例如,本发明实施例以帧率为每个图像提供了SLAM输出,从而SLAM姿势可以用于ESKF过程中的测量更新。此外,动态调整测量噪声协方差可以使SLAM姿势更准确,因为该协方差值表示滤波器对测量的更高置信度。测量更新可以直接来自于视觉SLAM的输出。结合下文和附图更详细地描述了本发明的各个实施例及其优点和特征。
附图说明
图1示出了根据本发明实施例的计算机系统的示例,该计算机系统包括用于AR应用的深度传感器和红绿蓝(RGB)光学传感器。
图2示出了根据本发明实施例的使用误差状态卡尔曼滤波(Error-State KalmanFiltering,ESKF)来更新同时定位和建图(simultaneous localization and mapping,SLAM)系统中的状态变量的框图的示例。
图3示出了根据本发明实施例的更新SLAM系统中的状态变量的流程的另一示例。
图4是示出根据本发明实施例的更新SLAM系统中的状态变量的方法的简化流程图。
图5A示出了根据本发明实施例的虹膜(iris)姿势、预测虹膜姿势和ESKF姿势的曲线图的示例。
图5B是根据本发明实施例的预测虹膜姿势和ESKF姿势的导数的曲线图。
图6A示出了根据本发明实施例的虹膜姿势、预测虹膜姿势和ESKF姿势的曲线图的示例。
图6B示出了根据本发明实施例的预测虹膜姿势和ESKF姿势的x导数。
图7示出了根据本发明实施例的示例计算机系统。
具体实施方式
在以下描述中,将描述各种实施例。出于解释的目的,阐述了具体配置和细节以便提供对实施例的透彻理解。然而,对于本领域技术人员来说显而易见的是,实施例也可以在没有这些具体细节的情况下实施。此外,为了不使所描述的实施例模糊,可以省略或简化众所周知的特征。
本发明实施例涉及将惯性测量系统(inertial measurement sensor,IMU)和用于增强现实(Augmented Reality,AR)系统的视觉惯性同时定位与建图(SimultaneousLocalization and Mapping,SLAM)系统紧密结合。SLAM涉及使用图像拍摄来确定先前未知的真实世界环境并对其建图,以及使用拍摄的图像中的视觉信息确定真实世界中的位置。
特别地,通过以图像拍摄速率向EKSF过程提供SLAM姿势测量更新,本发明实施例提供了相对于传统发明的改进。例如,一些实施例组合了优化SLAM姿势和纯视觉里程计SLAM姿势,以提供更高的测量更新速率。进而,ESKF过程可以用于生成更精确的测量更新,支持更高的移动速率,同时保持ESKF处理方法。测量噪声协方差的动态调整可以使得输出的姿势更精确,因为该协方差值表示滤波器对于测量的置信度。测量直接来自于视觉SLAM的输出。将使用优化姿势确定的SLAM和使用纯视觉里程计的SLAM相结合,提供了更高频率的测量位置更新(最大等于图像速率),从而改进了预测状态,并提供了将IMU信息与视觉SLAM融合以用于更高速应用的解决方案。
图1示出了根据本发明的实施例的计算机系统110的示例,计算机系统110包括用于AR应用的深度传感器112和RGB光学传感器114。图1包括的计算机系统110包括深度传感器112、惯性测量单元(IMU)113、以及RGB光学传感器114,用于包括一个或多个传感器的校准的AR应用。AR应用可以由计算机系统110的AR模块116实现。
在示例中,计算机系统110代表合适的用户设备,除了深度传感器112和RGB光学传感器114之外,计算机系统110还包括一个或多个图形处理单元(graphical processingunit,GPU)、一个或多个通用处理器(general purpose processors,GPP)、以及一个或多个存储有计算机可读指令的存储器,指令可由至少一个处理器执行以执行本公开实施例的各种功能。例如,计算机系统110可以是智能手机、平板电脑、AR耳机或可穿戴AR设备中的任何一种。
深度传感器112具有已知的最大深度范围(例如最大工作距离),该最大值可以存储在本地和/或可由AR模块116访问。深度传感器112可以是ToF摄像头。在这种情况下,由深度传感器112生成的深度图包括深度图像。
IMU 113可以检测惯性测量,并将检测到的惯性测量发送给计算机系统110。测量的示例包括位置、角速度、以及加速度。IMU 113可以包括加速度计和/或陀螺仪。加速度计可以输出一个或多个方向(例如x、y、和/或z)上的加速度的测量。陀螺仪可以输出角速度的测量。接着,计算机系统110接收这些惯性测量并基于接收到的测量调节AR场景120。
RGB光学传感器114可以是彩色摄像头。深度图像和RGB图像可以具有不同的分辨率。通常,深度图像的分辨率小于RGB图像的分辨率。例如,深度图像的分辨率为640x180,而RGB图像的分辨率为1920x1280。通常,RGB光学传感器114生成真实世界环境的RGB图像,该真实世界环境包括例如真实世界物体130。深度传感器112生成关于真实世界环境的深度数据,其中,该数据例如包括深度图,其显示真实世界物体130的深度(例如,深度传感器112和真实世界物体130之间的距离)。
此外,安装在计算机系统110中的深度传感器112、IMU 113和/或RGB光学传感器114可以通过变换(例如,距离偏移、视场角差等)分离。该变换可以是已知的,并且其值可以在本地存储和/或可供AR模块116访问。当使用摄像头时,ToF摄像头和彩色摄像头可以具有相似的视场。但由于上述变换,视场将部分重叠,而不是完全重叠。
AR模块116可以从RGB图像和深度图生成红绿蓝和深度(RGB and depth,RGBD)图像,以检测真实世界物体表示122的至少一部分对虚拟物体124的遮挡,或反之亦然。AR模块116可以附加地或替代地基于深度图生成真实世界环境的3D模型,其中3D模型包括多级体素(voxel)。这样的体素用于检测虚拟物体124与真实世界物体表示122的至少一部分之间的冲突。可以将AR场景120渲染为正确地显示遮挡并避免渲染冲突。AR模块116可以实现为专用硬件和/或硬件和软件的组合(例如,通用处理器和存储在存储器中并且可由通用处理器执行的计算机可读指令)。除了初始化AR会话和执行VIO,AR模块116还可以检测遮挡和冲突以正确渲染AR场景120。
在图1的说明性示例中,智能手机用于AR会话,该AR会话示出真实世界环境。特别地,该AR会话包括渲染一个AR场景,该场景包括真实世界的桌子的表示,其中一个花瓶(或一些其他真实世界物体)被放置在该桌子上。将要在AR场景中显示一个虚拟球(或一些其他虚拟物体)。特别地,该虚拟球将要同样显示在桌子上。通过追踪虚拟球和虚拟花瓶(代表真实世界的花瓶)之间的遮挡,当在一部分AR场景中虚拟球相对于智能手机的姿势位于虚拟花瓶后面时,虚拟花瓶可以遮挡。在其他部分AR场景中,当虚拟花瓶相对于智能手机的姿势变化而位于虚拟球后面时,虚拟球可以遮挡虚拟花瓶。在AR场景的其余部分,不存在遮挡。此外,智能手机的用户可以与虚拟球交互,以在虚拟桌子(代表真实世界的桌子)的顶面上移动虚拟球。通过追踪虚拟球和虚拟物体之间可能发生的冲突,任何会导致冲突的交互都不会被渲染。换言之,可以使用冲突追踪来控制AR场景中虚拟球能够移动的位置。
在图1的另一示例中,计算机系统110执行ESKF过程,以使用诸如深度传感器112和/或RGB光学传感器114的一个或多个传感器来提供测量更新。例如,计算机系统110可以使用优化的SLAM姿势以及使用纯视觉里程计获得的SLAM姿势。
图2示出了根据本发明实施例的使用ESKF过程201来更新SLAM系统中的状态变量的过程的示例。
在示例中,ESKF过程201接收来自IMU的输入以及来自视觉SLAM模块的输入。例如,ESKF过程201从IMU接收IMU原始数据202。IMU原始数据202可以包括摄像头系统的加速度和角速度信息。在框204,ESKF过程201使用IMU原始数据202预测误差状态,以生成预测状态变量。预测状态变量的示例是包括矩阵的向量,矩阵包括姿势信息以及IMU传感器信息,姿势信息包括3轴位置、3轴速度、3轴方向(例如四元数),IMU传感器信息包括3轴加速度计偏置、3轴陀螺仪偏置。ESKF 201使用IMU原始数据预测预测状态变量。ESKF过程201还可以预测预测状态协方差。
ESKF过程201通过计算由表示的预测状态通过计算状态变量x的误差来预测误差状态(例如状态变量)。状态变量x的状态转移模型Fx以及预测um的状态用于预测误差状态(预测状态变量)。ESKF过程201还可以预测由P←FxPFx T+FiQiFi T表示的误差状态协方差(预测状态协方差)。通过组合状态转移模型Fx、状态协方差P、转移模型的转置Fx T和初始转移模型Fi、估计协方差Qi、以及初始转移模型的转置Fi T来计算预测协方差P。
继续本示例,计算系统110可以拍摄真实世界场景的多个图像。例如,计算系统110可以从摄像头接收图像拍摄数据206并执行视觉SLAM 208。计算系统110可以使用视觉SLAM208处理图像拍摄数据206以生成图像速率姿势210。ESKF过程201可以从计算系统110接收图像速率姿势210。关于生成图像速率姿势210的附加细节可以参考图5来更好地理解。
在框212,ESKF过程201通过使用从视觉SLAM 208估计的测量向量和噪声因子之间的关系来执行测量更新。例如,ESKF过程201更新方程可以表示为测量向量和高斯白噪声之间的关系,测量向量包括从视觉SLAM 208估计的位置、速度、方向、加速度计偏置、陀螺仪偏置、重力加速度。例如,y=h(xt)+v,其中y是测量向量,包括从视觉SLAM 208估计的位置、速度、方向、加速度计偏置、陀螺仪偏置、重力加速度,h()是系统状态(真实状态)的非线性函数,v是具有协方差V的高斯噪声。高斯白噪声v可以表示为其中,高斯白噪声是从方差为N的零均值正态分布中提取的。为了线性化函数h(),可以使用雅克比矩阵H。在本示例中,雅克比矩阵H是19×19的单位矩阵。因此,ESKF校正或更新可以表示为K=PHT(HPHT+V)-1,以及P←(I-KH)P。
在一些示例中,在更新过程中,ESKF设置如上所述的测量噪声协方差V,以更新状态变量和状态协方差。一般地,在ESKF更新中,该测量噪声协方差被初始化并固定。然而,该测量噪声协方差会由于结合了视觉SLAM来确定测量向量而变化。执行视觉SLAM 208会产生SLAM性能的不同质量水平,这些质量水平通过不同的SLAM质量度量(例如好、弱、丢失等)来表征。在图2的示例中,图像速率姿势210(例如SLAM姿势)由ESKF过程201用作测量向量。由于SLAM质量的差异,ESKF过程201根据视觉SLAM的性能动态调整协方差。在一些实施例中,较低的测量噪声协方差(或正态分布越窄)会增加滤波器关于测量的置信度。例如,在表征为视觉SLAM性能“好”的测量中,测量噪声协方差应为较小的值。在另一示例中,在表征为视觉SLAM性能“劣”或“丢失”的测量中,测量噪声协方差应为较大的值。
在框214,ESKF过程201将测量误差合入标称状态。例如,在框214,ESKF过程201执行全状态x与测量误差的直接求和。合入的数学表示可以表示为测量误差可以是包括一个或多个误差项或矩阵的向量。在一些实施例中,测量误差是包括3轴位置3轴速度3轴方向(例如四元数)的测量误差的向量,但是也可以包括另外的或替代的测量误差分量。
图3示出了根据本发明实施例的更新SLAM系统中的状态变量的流程的另一示例。图3以类似于图2的方式示出了操作,额外地用公式标注了可以在如图2所述的一个或多个步骤中执行的操作。
例如,图3中在ESKF过程的各个位置示出了不同方程。如图2所述,对于每个步骤,ESKF过程可以执行不同的计算。在一个示例中,IMU原始数据和ESKF过程的步骤“误差状态预测”之间的箭头上的方程表示数学形式的状态变量预测和协方差预测。类似地,ESKF过程示出了可以如框212所述从SLAM姿势计算测量更新。在另一示例中,通过将观测器(即测量的)误差状态合入状态变量来计算全状态x。这可以由方程和框214的描述表示。来自图2的各种元素保持相同的附图标记。
参考图3,ESKF通过预测全状态变量x的预测状态301来生成预测状态301(例如,由ESKF预测的状态)。在图3的实施例中,预测状态301由计算过程示出。除了预测状态以外,ESKF还可以生成预测状态协方差302。在图3所示的示例中,可以通过P←FxPFx T+FiQiFi T计算预测状态协方差302。通过使用真实状态的非线性函数h()并加入高斯白噪声v生成测量状态,ESKF执行测量更新。因此,ESKF测量更新方程303可以表示为K=PHT(HPHT+V)-1,以及P←(I-KH)P。在ESKF执行测量更新时,ESKF设置测量噪声协方差V。ESKF至少部分基于视觉SLAM的质量水平来设置测量噪声。优化SLAM姿势和纯视觉里程计SLAM姿势可能会受视觉SLAM性能的影响。因此,动态调整测量噪声提供了更精确的SLAM姿势。ESKF通过执行全状态x和测量误差的直接求和,将测量误差合并到标称状态变量。通过使用重置方程305设置预测状态为0并调整用于ESKF的下一次迭代的协方差,ESKF重置循环。
图4是示出根据本发明实施例的更新SLAM系统中的状态变量的方法的简化流程图。该流程中的一些或全部操作可以通过计算机系统上的特定硬件实现和/或可以实现为存储在计算机系统的非暂时性计算机可读介质上的计算机可读指令。所存储的计算机可读指令表示包括可由计算机系统的处理器执行的代码的可编程模块。此类指令的执行将计算机系统配置为执行相应的操作。与处理器结合的每个可编程模块代表用于执行相应操作的装置。尽管以特定顺序示出了这些操作,但应当理解,该特定顺序不是必要的,并且可以省略、跳过和/或重新排序一个或多个操作。
在示例中,该流程从操作402开始,其中,计算机系统从惯性测量单元接收计算的位置。IMU是一种导航设备,其使用移动物体的航位推算(dead reckoning)连续计算位置、方向或速度,无需外部参考或传感器。
在示例中,该流程包括操作404,其中,计算机系统从摄像头接收多个图像。例如,计算系统使用诸如RGB光学传感器114或深度传感器112之类的摄像头系统来生成图像数据,以表示真实世界场景。
在示例中,该流程包括操作406,其中,如图2和图3所述,计算机系统根据计算的位置预测误差状态,该误差状态包括状态变量和状态协方差。计算机系统可以预测表示为P←FxPFx T+FiQiFi T的误差状态协方差(预测状态协方差)。通过组合状态转移模型Fx、状态协方差P、转移模型的转置Fx T和初始转移模型Fi、估计协方差Qi、以及初始转移模型的转置Fi T来计算预测协方差P。计算机系统还可以计算预测状态表示为状态变量x的状态转移模型Fx和预测um的状态用于预测误差状态(预测状态变量)。
在示例中,该流程包括操作408,其中,计算机系统处理多个图像的第一图像子集,以第一频率提供第一SLAM姿势。该第一SLAM姿势可以被称为优化SLAM姿势,因为在一些实施例中,其是通过捆绑图像和执行优化过程以生成优化SLAM姿势而生成的。通常,因为后端的优化过程很慢,基于关键帧的视觉SLAM方法不能总是以图像速率输出。例如,对于频率为30Hz的图像,优化过程会产生10Hz的SLAM姿势。优化过程可以是生成优化SLAM姿势的任何优化过程(例如,贝叶斯、图形、非线性等)。
在示例中,该流程包括操作410,其中,计算机系统使用纯视觉里程计处理上述多个图像中的第二图像子集,以第二频率提供第二SLAM姿势。该第二SLAM姿势可以成为纯视觉里程计SLAM姿势,因为在一些实施例中,该姿势是通过执行视觉里程计生成的,而不执行如同第一SLAM姿势的优化过程。如上述示例所述,对于使用30Hz图像频率的计算机系统,该计算机系统以20Hz处理多个图像中的第二图像子集。例如,计算机系统仅使用前端处理技术,例如Perspective-n-Point,来处理第二图像子集。
在示例中,该流程包括操作412,其中,计算机系统使用第一SLAM姿势或第二SLAM姿势更新状态变量和状态协方差。ESKF过程201使用第一频率的第一SLAM姿态(即优化SLAM姿态)和/或第二频率的第二SLAM姿态(即纯视觉里程计SLAM姿势)来执行状态变量和状态协方差的更新。计算机系统使用第一SLAM姿势或第二SLAM姿势执行测量更新,以实现图像姿势速率(例如,使用第一频率和第二频率来实现频率之和)。因此,在第一频率为10Hz并且第二频率为20Hz的示例中,计算机系统以30Hz的图像姿势速率执行测量更新。
应当理解,图4中所示的具体步骤提供了根据本发明实施例的更新SLAM系统中的状态变量的特定方法。根据替代实施例,也可以执行其他步骤序列。例如,本发明的替代实施例可以以不同的顺序执行上述步骤。此外,图4中所示的各个步骤可以包括多个子步骤,这些子步骤可以按照适用于各个步骤的各种顺序执行。此外,可以根据特定应用添加或删除额外的步骤。本领域的普通技术人员将认识到许多变化、修改和替代。
图5A示出了根据本发明实施例的虹膜姿势(iris pose)、预测姿势和ESKF姿势的曲线图501的示例。图5B是根据本发明实施例的虹膜姿势和卡尔曼滤波(即,ESKF、EKF等)姿势的导数的图。参考图5A,曲线图501示出了姿势503,其包括虹膜姿势503A、预测虹膜姿势503B、和ESKF姿势503C。姿势503示出了参考y轴502和x轴504的实际位置(虹膜姿势503A)、IMU姿势(预测虹膜姿势503B)和平滑ESKF姿势(ESKF姿势503C)的差的视觉表示。姿势503表示执行关于本公开的实施例所描述的过程的虹膜的位置(或轨迹)。在运动期间,位置(或轨迹)将根据运动而变化。在图5A的例子中,位置/轨迹被示为二维x(水平轴)504和y(垂直轴)502中的线性化。在表示轨迹的一个实施例中,x轴504和y轴502可以表示轴上的轨迹强度。例如,(-3,-3)的值可以表示以-3x每米和-3y每米改变位置的轨迹。
参考图5B,图5B是预测虹膜姿势503B和ESKF姿势503C的y导数的图507,可以看出随着虹膜相对于y轴506和x轴505改变位置和/或轨迹,导数反映了y轴上的变化。在预测虹膜姿势503B和ESKF姿势503C表示虹膜轨迹的实施例中,y导数图描绘了预测虹膜姿势503B和ESKF姿势503C在y轴轨迹中的线性化变化。
图6A示出了根据本发明实施例的虹膜姿势、预测姿势和ESKF姿势的曲线图601的示例。例如,图6A示出了曲线图601,曲线图601示出姿势603,姿势603包括虹膜姿势603A、预测虹膜姿势603B、和ESKF姿势603C。姿势603示出了参考x轴604和y轴602的实际位置(虹膜姿势603A)、IMU姿势(预测虹膜姿势603B)和平滑ESKF姿势(ESKF姿势603C)的差的视觉表示。
参考图6B,图6B示出了预测虹膜姿势603B和ESKF姿势603C的x导数的曲线图607,可以看出随着虹膜改变位置和/或轨迹,导数反映x轴上的变化。在预测虹膜姿势603B和ESKF姿势603C表示虹膜轨迹的实施例中,y导数图描绘了预测虹膜姿势603B和ESKF姿势603C在x轴轨迹中相对于y轴605和x轴606的线性化变化。
图7示出了根据特定实施例的计算机系统700的组件的示例。计算机系统700是上文描述的计算机系统的示例。尽管这些组件被示为属于同一计算机系统700,但是计算机系统700也可以是分布式的。
计算机系统700至少包括处理器702、存储器704、存储设备706、输入/输出(input/output,I/O)外围设备708、通信外围设备710和接口总线712。接口总线712用于在计算机系统700的各种组件之间通信、发送和传输数据、控制和命令。存储器704和存储设备706包括计算机可读存储介质,例如RAM、ROM、电可擦可编程只读存储器(electrically erasableprogrammable read-only memory,EEPROM)、硬盘驱动器、CD-ROM、光存储设备、磁存储设备、电子非易失性计算机存储设备(例如闪存)、以及其他有形存储介质。任何这样的计算机可读存储介质都可以用于存储实施本公开各方面的指令或程序代码。存储器704和存储设备706还包括计算机可读信号介质。计算机可读信号介质包括传播的数据信号,其中包含计算机可读程序代码。这种传播的信号采用多种形式中的任何一种,包括但不限于电磁、光学或其任何组合。计算机可读信号介质包括不是计算机可读存储介质并且可以通信、传播或传输用于与计算机系统700结合使用的程序的任何计算机可读介质。
此外,存储器704包括操作系统、程序和应用程序。处理器702用于执行存储的指令,并且包括例如逻辑处理单元、微处理器、数字信号处理器和其他处理器。存储器704和/或处理器702可以被虚拟化并且可以托管在例如云网络或数据中心的另一计算机系统中。I/O外围设备708包括用户界面,例如键盘、屏幕(例如,触摸屏)、麦克风、扬声器、其他输入/输出设备,以及计算组件,例如图形处理单元、串行端口、并行端口、通用串行总线和其他输入/输出外围设备。I/O外围设备708通过耦合到接口总线712的任何端口连接到处理器702。通信外围设备710用于促进计算机系统700和其他计算机系统之间通过通信网络的通信,并且包括例如网络接口控制器、调制解调器、无线和有线接口卡、天线和其他通信外围设备。
尽管本主题已针对其特定实施例进行了详细描述,但应当理解,本领域技术人员在获得对前述内容的理解后,可以容易地产生对这些实施例的改变、变化和等价物。因此,应当理解,本公开是为了示例而不是限制的目的而呈现的,并且不排除包含对于普通技术人员来说显而易见的对本主题的修改、变化和/或添加。本领域的技能。实际上,本文描述的方法和系统可以以多种其他形式体现。此外,在不背离本公开的精神的情况下,可以对本文描述的方法和系统的形式进行各种省略、替换和改变。所附权利要求及其等价物旨在覆盖落入本公开的范围和精神内的此类形式或修改。
除非另有明确说明,否则应理解,本说明书的讨论中使用诸如“处理”、“计算”、“确定”和“识别”等术语是指计算机系统(例如一台或多台计算机或类似的电子计算机系统或设备)的动作或过程,该计算机系统操纵或转换在计算平台的存储器、寄存器或其他信息存储设备、传输设备或显示设备中表示为物理电子或磁量的数据。
这里讨论的一个或多个系统不限于任何特定的硬件架构或配置。计算机系统可以包括提供以一个或多个输入为条件的结果的任何合适的组件布置。合适的计算机系统包括基于微处理器的多用途计算机系统,多用途计算机系统访问存储的软件,存储的软件对计算机系统进行编程或配置,将该计算机系统从通用计算装置编程或配置为实现本主题的一个或多个实施例的专用计算装置。任何合适的编程、脚本或其他类型的语言或语言的组合可用于在用于编程或配置计算机系统的软件中实施本文中包含的教导。
本文公开的方法的实施例可以在这样的计算机系统的操作中执行。以上示例中呈现的块的顺序可以改变,例如,框可以被重新排序、组合和/或分解成子框。某些框或过程可以并行执行。
本文使用的条件性语言,例如“可以”、“可”、“可能”、“例如”等,除非另有明确说明,或在所使用的上下文中以其他方式理解,否则通常旨在传达某些示例包括而其他示例不包括某些特征、元素和/或步骤。因此,这种条件性语言通常并不意味着一个或多个示例以任何方式需要特征、元素和/或步骤,或者一个或多个示例必须包括用于在有或没有作者输入或提示的情况下决定这些特征、元素和/或步骤是否被包括或将在任何特定示例中执行。
术语“包括”、“具有”等是同义词,并且以开放式的方式包容性地使用,并且不排除其他元素、特征、动作、操作等。此外,术语“或”以其包容性(而不是排他性)使用,例如,当用于连接元素列表时,术语“或”表示其中的一个、一些或全部列表中的元素。此处使用的“用于”或“配置为”是指开放和包容性的语言,不排除用于或配置为执行附加任务或步骤的设备。此外,“基于”的使用意味着开放和包容,因为“基于”一个或多个列举的条件或值的过程、步骤、计算或其他动作实际上可能基于附加条件或超出所列举的值。类似地,“至少部分基于”的使用意味着开放和包容,因为“至少部分基于”一个或多个列举的条件或值的过程、步骤、计算或其他动作在实践中可以基于所列举的之外的附加条件或值。此处包括的标题、列表和编号仅是为了便于解释,并不意味着限制。
上述各种特征和过程可以彼此独立地使用,或者可以以各种方式组合使用。所有可能的组合和子组合旨在落入本公开的范围内。此外,在一些实现中可以省略某些方法或过程块。这里描述的方法和过程也不限于任何特定的顺序,并且与其相关的块或状态可以以其他适当的顺序来执行。例如,所描述的块或状态可以以不同于具体公开的顺序执行,或者多个块或状态可以组合在单个块或状态中。示例块或状态可以串行、并行或以某种其他方式执行。可以将块或状态添加到所公开的示例中或从所公开的示例中删除。类似地,本文描述的示例系统和组件可以被配置为与所描述的不同。例如,与所公开的示例相比,可以添加、移除或重新排列元素。
Claims (20)
1.一种更新同时定位与建图(SLAM)系统中的状态变量的方法,所述方法包括:
从惯性测量单元接收计算的位置,其中,所述计算的位置包括位置、方向、以及速度;
从摄像头接收多个图像;
使用所述计算的位置预测误差状态,所述误差状态包括状态变量和状态协方差,其中,所述状态变量包括向量,所述向量包括位置、速度、加速度计度量、陀螺仪度量、和重力测量中的一个或多个:
使用优化过程处理所述多个图像的第一图像子集,以第一频率提供第一SLAM姿势;
使用纯视觉里程计处理所述多个图像的第二图像子集,以第二频率提供第二SLAM姿势;以及
使用所述第一SLAM姿势和所述第二SLAM姿势中的至少一个更新所述状态变量和所述状态协方差。
2.根据权利要求1所述的方法,其中,提供所述第一SLAM姿势包括通过优化过程优化的第一组状态参数,提供第二SLAM姿势包括绕过所述优化过程的第二组状态参数。
3.根据权利要求1所述的方法,其中,拍摄所述多个图像的图像频率等于所述第一频率和所述第二频率之和。
4.根据权利要求1所述的方法,其中,使用所述第一SLAM姿势和所述第二SLAM姿势中的至少一个更新所述状态变量和所述状态协方差包括:
以图像速率姿势更新所述状态变量和所述状态协方差,包括:
使用所述第一SLAM姿势以每秒10次更新的速率更新所述状态变量和所述状态协方差;以及
使用所述第二SLAM姿势以每秒20次更新的速率更新所述状态变量和所述状态协方差。
5.根据权利要求4所述的方法,其中,所述图像速率姿势还包括所述第一SLAM姿势和所述第二SLAM姿势的交错序列。
6.根据权利要求1所述的方法,其中,至少基于所述第一SLAM姿势的第一质量度量或所述第二SLAM姿势的第二质量度量计算所述状态协方差。
7.根据权利要求1所述的方法,其中,使用至少所述第一SLAM姿势或所述第二SLAM姿势更新所述状态变量和所述状态协方差包括:当SLAM质量度量丢失时,使用所述计算的位置更新所述状态变量和所述状态协方差。
8.一种计算机系统,包括:
处理器;
惯性测量单元;以及
一个或多个存储器,存储有计算机可读指令,当由所述处理器执行时,所述计算机可读指令配置所述计算机系统:
从惯性测量单元接收计算的位置,其中,所述计算的位置包括位置、方向、以及速度;
从摄像头接收多个图像;
使用所述计算的位置预测误差状态,所述误差状态包括状态变量和状态协方差,其中,所述状态变量包括向量,所述向量包括位置、速度、加速度计度量、陀螺仪度量、和重力测量中的一个或多个:
使用优化过程处理所述多个图像的第一图像子集,以第一频率提供第一SLAM姿势;
使用纯视觉里程计处理所述多个图像的第二图像子集,以第二频率提供第二SLAM姿势;以及
使用所述第一SLAM姿势和所述第二SLAM姿势中的至少一个更新所述状态变量和所述状态协方差。
9.根据权利要求8所述的计算机系统,其中,拍摄所述多个图像的图像频率等于所述第一频率和所述第二频率之和。
10.根据权利要求8所述的计算机系统,其中,使用所述第一SLAM姿势或所述第二SLAM姿势更新所述状态变量和所述状态协方差包括:
以图像速率姿势更新所述状态变量和所述状态协方差,包括:
使用所述第一SLAM姿势以每秒10次更新的速率更新所述状态变量和所述状态协方差;以及
使用所述第二SLAM姿势以每秒20次更新的速率更新所述状态变量和所述状态协方差。
11.根据权利要求10所述的计算机系统,其中,所述图像速率姿势还包括所述第一SLAM姿势和所述第二SLAM姿势的交错序列。
12.根据权利要求8所述的计算机系统,其中,所述状态协方差基于所述第一SLAM姿势的第一质量度量或所述第二SLAM姿势的第二质量度量进行计算。
13.根据权利要求8所述的计算机系统,其中,使用所述第一SLAM姿势或所述第二SLAM姿势更新所述状态变量和所述状态协方差包括:当SLAM质量度量丢失时,使用所述计算的位置更新所述状态变量和所述状态协方差。
14.一个或多个非暂时性计算机存储介质,存储有指令,当由计算机系统执行时,所述指令使所述计算机系统执行以下操作:
从惯性测量单元接收计算的位置,其中,所述计算的位置包括位置、方向、以及速度;
从摄像头接收多个图像;
使用所述计算的位置预测误差状态,所述误差状态包括状态变量和状态协方差,其中,所述状态变量包括向量,所述向量包括位置、速度、加速度计度量、陀螺仪度量、和重力测量中的一个或多个:
使用优化过程处理所述多个图像的第一图像子集,以第一频率提供第一SLAM姿势;
使用纯视觉里程计处理所述多个图像的第二图像子集,以第二频率提供第二SLAM姿势;以及
使用所述第一SLAM姿势或所述第二SLAM姿势中的至少一个更新所述状态变量和所述状态协方差。
15.根据权利要求14所述的一个或多个非暂时性计算机存储介质,其中,拍摄所述多个图像的图像频率等于所述第一频率和所述第二频率之和。
16.根据权利要求14所述的一个或多个非暂时性计算机存储介质,其中,使用所述第一SLAM姿势和所述第二SLAM姿势中的至少一个更新所述状态变量和所述状态协方差包括:
以图像速率姿势更新所述状态变量和所述状态协方差,包括:
使用所述第一SLAM姿势以每秒10次更新的速率更新所述状态变量和所述状态协方差;以及
使用所述第二SLAM姿势以每秒20次更新的速率更新所述状态变量和所述状态协方差。
17.根据权利要求16所述的一个或多个非暂时性计算机存储介质,其中,所述图像速率姿势还包括所述第一SLAM姿势和所述第二SLAM姿势的交错序列。
18.根据权利要求14所述的一个或多个非暂时性计算机存储介质,其中,所述状态协方差基于所述第一SLAM姿势的第一质量度量或所述第二SLAM姿势的第二质量度量进行计算。
19.根据权利要求14所述的一个或多个非暂时性计算机存储介质,其中,使用所述第一SLAM姿势或所述第二SLAM姿势中的至少一个更新所述状态变量和所述状态协方差包括:当SLAM质量度量丢失时,使用所述计算的位置更新所述状态变量和所述状态协方差。
20.根据权利要求14所述的一个或多个非暂时性计算机存储介质,其中,提供所述第一SLAM姿势包括通过优化过程优化的第一组状态参数,提供第二SLAM姿势包括绕过所述优化过程的第二组状态参数。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062975991P | 2020-02-13 | 2020-02-13 | |
US62/975,991 | 2020-02-13 | ||
PCT/CN2021/076067 WO2021160098A1 (en) | 2020-02-13 | 2021-02-08 | Error state kalman filter for visual slam by dynamically tuning measurement noise covariance |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115003983A true CN115003983A (zh) | 2022-09-02 |
Family
ID=77291392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180011363.3A Pending CN115003983A (zh) | 2020-02-13 | 2021-02-08 | 用于通过动态调整测量噪声协方差进行视觉slam的误差状态卡尔曼滤波器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115003983A (zh) |
WO (1) | WO2021160098A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11875615B2 (en) | 2022-04-29 | 2024-01-16 | Toyota Research Institute, Inc. | Odometry noise model fitting from fleet-scale datasets |
CN116908810B (zh) * | 2023-09-12 | 2023-12-12 | 天津大学四川创新研究院 | 一种无人机搭载激光雷达测量建筑土方的方法和系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9658070B2 (en) * | 2014-07-11 | 2017-05-23 | Regents Of The University Of Minnesota | Inverse sliding-window filters for vision-aided inertial navigation systems |
US9709404B2 (en) * | 2015-04-17 | 2017-07-18 | Regents Of The University Of Minnesota | Iterative Kalman Smoother for robust 3D localization for vision-aided inertial navigation |
CN106679648B (zh) * | 2016-12-08 | 2019-12-10 | 东南大学 | 一种基于遗传算法的视觉惯性组合的slam方法 |
CN108629843B (zh) * | 2017-03-24 | 2021-07-13 | 成都理想境界科技有限公司 | 一种实现增强现实的方法及设备 |
CN108731670B (zh) * | 2018-05-18 | 2021-06-22 | 南京航空航天大学 | 基于量测模型优化的惯性/视觉里程计组合导航定位方法 |
CN110517324B (zh) * | 2019-08-26 | 2023-02-17 | 上海交通大学 | 基于变分贝叶斯自适应算法的双目vio实现方法 |
CN110610513B (zh) * | 2019-09-18 | 2022-02-08 | 郑州轻工业学院 | 自主移动机器人视觉slam的不变性中心差分滤波器方法 |
-
2021
- 2021-02-08 CN CN202180011363.3A patent/CN115003983A/zh active Pending
- 2021-02-08 WO PCT/CN2021/076067 patent/WO2021160098A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2021160098A1 (en) | 2021-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102442780B1 (ko) | 장치의 자세 추정 방법 및 그 장치 | |
KR101950641B1 (ko) | 향상된 안구 추적을 위한 장면 분석 | |
JP6198230B2 (ja) | 深度カメラを使用した頭部姿勢トラッキング | |
US20220051031A1 (en) | Moving object tracking method and apparatus | |
US10186081B2 (en) | Tracking rigged smooth-surface models of articulated objects | |
US10740986B2 (en) | Systems and methods for reconstructing a moving three-dimensional object | |
CN115003983A (zh) | 用于通过动态调整测量噪声协方差进行视觉slam的误差状态卡尔曼滤波器 | |
WO2020157955A1 (ja) | 仮想オブジェクト表示装置及び仮想オブジェクト表示方法 | |
US9228821B2 (en) | Storage medium having information processing program stored thereon, information processing device, information processing system, and attitude calculation method | |
US20220230383A1 (en) | Occlusion and collision detection for augmented reality applications | |
JP2023021994A (ja) | 自動運転車両に対するデータ処理方法及び装置、電子機器、記憶媒体、コンピュータプログラム、ならびに自動運転車両 | |
US20220383589A1 (en) | Image processing apparatus, image processing method, method for generating learned model, and storage medium | |
CN114972689A (zh) | 执行增强现实姿态确定的方法和装置 | |
US20140025335A1 (en) | Storage medium having information processing program stored thereon, information processing device, information processing system, and attitude calculation method | |
TW202403509A (zh) | 用於擴增實境裝置之平滑物件校正 | |
CN115023589B (zh) | 用于vislam应用的imu静态噪声校准缩放调整 | |
WO2021179876A1 (en) | Method and system for implementing adaptive feature detection for vslam systems | |
US11443455B2 (en) | Prior informed pose and scale estimation | |
CN115690201A (zh) | 姿势估计方法和装置 | |
CN111489376B (zh) | 跟踪交互设备的方法、装置、终端设备及存储介质 | |
US11069121B2 (en) | Methods, devices and computer program products for creating textured 3D images | |
WO2021155828A1 (en) | Method and system for implementing dynamic input resolution for vslam systems | |
WO2021160095A1 (en) | Surface detection and tracking in augmented reality session based on sparse representation | |
US11961182B2 (en) | Information processing apparatus, information processing method, and storage medium | |
US10636205B2 (en) | Systems and methods for outlier edge rejection |
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 |