关于机器人状态估计(10)-VSLAM与VIO的3D建图,重定位与世界观综述

2023-05-16

近期我国迎来了cov海啸,其实我也不知道我羊了没有,但并没有什么不舒服同时因为我没有测,那自然是没有羊,或者是薛定谔的羊。

近年另外一块工作的综述,这篇科普的同时,也会包含部分有价值的信息。

一. 摘要:

本文重点描述VSLAM与VIO的3D建图,重定位,回环与世界观,从小伙伴们最关心的工程和商用搞钱的角度进行详细分析,并从技术和实现部分详细描述各种类型SLAM在这块的差异。

首先来4个基础逻辑:

1. SLAM本质是数学问题,是一个科学家与工程师可以控制的数学问题,本质不是玄学,实现需要大量的数学知识与工具,需要极强的代码功底与硬软件开发能力

2.无论对SLAM系统如何分割,建图仍是位姿估计的副产品

3.当下SLAM主流落地就两类:二维三维导航建图具体操作(如抓取)

4.无论任何SLAM系统,精度无论多高,本质都是求解非线性优化的最优解,势必存在误差,且随时长与探索距离递增。

三相性:开销/鲁棒性/精度已经反复提过了,这个部分我们也实现了,本文的重点在于描述VIO/VSLAM的世界观

二.主流SLAM相关工作分类:

首先,稀疏点云不是世界观,即使稀疏点云有完整而正确的深度,也是难以被直观理解的机器语言,这块在学界和业界都得到了反复的验证,目前先对所有SLAM系统做一个基本的分类,(二维单点激光SLAM与矢量重定位不放在里面,是原点和古早的系统类别):

(1) 以VINS,ORB3为代表的间接法(或特征点法)构建的系统,或LSD-SLAM与SD-VIS这一类并不直接的直接法

如上图所示,从非常直观的感受就能感觉到,这种稀疏的点云,即使构建了完整和正确的深度,也是不容易被直观理解的机器语言,相对的商业价值貌似较低。其实这种认知是不完善的,后续会进行详述。

(2)线扫/固态激光SLAM

线扫或者固态激光生成的点云相对稠密距离和范围较大,而且可以建立世界观相对本端的误差较小的深度,也是最容易理解的,广泛应用于汽车与自动驾驶行业,还有一定的缺陷是没有更加稠密和丰富的纹理(类似真实世界)。

这一类激光SLAM大多数由多种(4-5种)传感器的融合卡尔曼滤波构成:IEKF或MSCKF,然后对点云进行如ICP类型的暴力匹配,目前并行化的工作也做得相当好了,从业人员很多。问题在于当下最主流的L4级自动驾驶本身是一个非常卷的领域,并慢慢开始走向了2个路径:1是本端基础感知+AI目标分类结合HD高精地图(HD地图目前也是一个很卷的东西(类似以前网吧接AI公司的单做标注),2是具有极强感知能力的本地多传感器融合融态结合简单的地图,但是路径2虽然厉害但是当前无论是芯片各种U上的算力还是算法本身,都离真正的商用有距离(同时路径1和2都有非常麻烦的法律法规问题)。接下来几年这块正在走向L2变为主机厂的系统支撑方,也许只有等到未来的某一天某篇真正划时代的论文之后,才能迎来真正的大批量落地。

 

(3)紧耦合同步优化直接法-DSO系,注意此处的紧耦合并不意指不同传感器间的紧耦合,任何信息,包括同类传感器间的信息同样是可以被耦合的,整个处理流和pipeline也是可以被紧耦合的。

效果如上图所示

这块学术上带头的是我很喜欢和尊敬的Daniel Cremer教授(TUM),他的思维是用纯视觉完成整个世界观的构建,甚至在未来大面积的去替换雷达。

这条路径的基础特点是用视觉构建了半稀疏的世界观,而且随着算力的提升,点云的密度可以进一步的增加以形成实际的半稠密世界观,是一条非常棒的路径。但是这条路径问题也非常多,最核心的一点是三相性中的开销度,其次是视觉世界观相当于雷达的深度信息仍有一些明显的缺陷,再次是和IMU等运动类传感器紧耦合难以实施,后续进行详述。

三.相关工作与评估 (以下有部分超出科普范围,看不懂就跳):

(1) 三相性VIO系统研究与试验发展:

       2021年至2022年中, 紫川组主要针对(1)完成了三相性相关工作,实现了viobot完整的软硬件闭环,实现了独立编解码与OSD叠点,开发了独立的UI与三维空间规划底,通过CPU+GPU+DSP完成了整个系统前端/后端与回环的并行化(其实回环并没有真正并行化只是做了SIMD),完成了完整SDK,并针对在各种真实环境中的极端情况设计了对应的ZUPT策略,输出了VIO/VINS工程问题定位的思路与流程。以上各项工作在前文中都已经详述。最近一些收尾工作是双目初始化的升级和环点SDK。2022年中至2023年6月重点完成VIO系统的世界观,主要难点在数据结构,每天不是整WARP原语就是各种乱七八糟的CELL和树结构。 在之前这一系列工作中,首先感谢港科VINS组,尤其是基于四元数的预积分的编写工作,后续大家的一些工作可以用GTSAM,但是用这个去处理预积分其实在工程侧是不友好的,还是重了。

      针对(1),目前其实可用性是很高的,这个和大家对于稀疏点云的通常直观理解还是会有一些差异。相关工作先重点描述这个:词袋看起来貌似是一门玄学,其实它存储了优化之后在空间中的相机位置与姿态,以及它在当时所对应的点的x,y坐标与深度信息(但是数量很少很稀疏比如200个,多了算不过来)。最终你存的那张图其实是没啥用的,形成的数据结构是一整个用二进制表述的关键字和描述符,同时词袋字典是用很基本的k-d树形式训练与存储,所以它其实一点都不玄学,而是一门真正的显学。在机器语言中系统是很容易完成这个工作流的,同时对准确率召回率来说,所有的VSLAM系统和VIO系统在商用时一定要有更高的准确率!这块我就不想解释了,照做即可。接下来画一张很丑的图来描述:

首先你把这玩意当成三维空间(画的太难看了像二维。。。),红色代表地面真实GT(也不要纠结哪来的,你当我外感信标或者RTK大概标的),蓝色的各种不确定小椭球你就可以当成词袋回环每一次定位的范围了。绿色的线代表重复作业轨迹,在这个二次和多次机器人作业的过程中,所复用的位置姿态,即蓝色不确定椭球给予的引导。同时这是一个标准3D-2D的PNP过程,进入回算之后给出的位姿也是相对世界坐标系原点的位姿。

缺点是虽然词袋重定位及回环是一门显学,但是毕竟它是一个二进制的综合描述,也来源于二维图像中的特征点与描述子(如ORB),它给人整体的感觉肯定是远远不如三维点云的,而且对作业重定位观测方向也会有要求。也不像真正的二维重定位如Catagrapher这类系统中开发的二维边界矢量重定位清晰。但是实际它是好用的,即使环境中出现了一些小的移动目标物,也不会对整个词袋的特性造成太大的破坏,仍然可以友好的重定位与回环。但当然当所取用的环点中如果有30-40%以上都改变了,肯定也是难以回环的(这种难以回环和重定位反而是正确的结果)

回到摘要中的基础逻辑4,任何SLAM的优化,势必产生误差,VIO只是提供了更好的鲁棒性也是目前世界上性价比最好的传感器组合(前提是解决三相性,否则算力平台成本惊人),而这种误差,必须通过重定位手段解决,才能更新更准确的位姿世界观(建图)

实现的效果就是类似TANGO的这个简单清晰的小视频了【Visual-inertial teach and repeat powered by Google Tango】 https://www.bilibili.com/video/BV1tP4y1d7AX/share_source=copy_web&vd_source=3cba44a8cb771560d536cc3085033dfe,但是要注意,无论如何,(1)这种系统的世界观都是相当糟糕的!

 

TANGO完成位姿计算并记录工作点(重定位环点)

稀疏的MAPPING

UAV完成作业及重定位拍摄。

其实(1)还有一个很大的问题,虽然它是一套很好的导航与重定位系统,但是它仍然难以用来实现SLAM基础逻辑3中的具体操作行为,比如抓取一个水杯,打开一扇门等,因为首先它的世界观是稀疏的。当然到这里有同学会问了,那我再加上一个面阵i-tof相机呢?其实我想说这个也是难以实现的,因为目前最好用的VIO(如我们组的系统,哈哈)其实误差大约也是在0.5-0.8%,而很多具体操作要求的精度是cm级别的。实现这种耦合的最好设计是:先使用VIO导航定位到附近,如数十cm内,再启动另外一套工作逻辑(如AI的类识别结合i-TOF相机)结合机械臂完成接下来的工作。目前导航+操作类的大量行为还是更多的依赖外感信标

(2) 激光雷达SLAM系统简述:

激光雷达最大的优点就是有完全可控的深度,用非常弱智的方式算回来,线束越多,建图越清晰。

真的是简述,几个问题,首先雷达太贵了

其次雷达在非常近距离的具体操作实施上一样是有问题的,误差并不小,特别近和特别远都有问题。

最后一个问题是先算位姿再进行ICP等暴力匹配的方式太浪费开销,无论怎么优化数据结构,八叉树/K-D/BBST,结果都类似,除非降帧降频或者大量降低最后模型的精度(比如八叉树最后搞成一坨坨的),那这不就走回头路了吗。。。当然现在也有很多更好的方式提高雷达的工作效率和开销比,但是很多都需要基于GPU和NPU等矩阵乘法器,极大的提升了门槛,几乎完全就是给车载平台弄的,仍然不利于行业的进步和业务的普及!

(3) 紧耦合连贯优化的直接法/ DSO-直接稀疏里程计

这个部分后续我准备专门针对性的写个纯技术的课题,春节后应该还要发布DM-VIO的全解和pipeline。因此这篇文章还是写粗一些。但是要注意,这个部分即使写粗,对于一些基础稍微弱一些的朋友,还是非常吃力的。

其实首先我一直对Daniel老师这个命名感觉到奇怪。。。为啥叫这个,其实明明挺稠密的或者说可以做到很稠密,嘿嘿。

TUM的这套方法和路径是目前能实现视觉世界观的主流方法,但是有一系列非常麻烦的先决条件,首先就是对光度标定的要求非常高,另外对卷帘快门非常不友好(虽然已经提供了优化方法),另外也没有过多考虑自动增益等现代相机带来的影响,但是瑕不掩瑜,这套方法在我的心目中,还是非常重要的,虽然它真的非常地难。。。

DSO的灵魂是:光度不变假设

他的学生Jacob Engel在2016-2017年就整个完成了DSO这套系统并开源,写得。。。怎么说呢,一言难尽,其实就是写得非常好,但是对普通工程师过于不友好,导致了后续这个方向一直没有得到太多的发展,但是本身也是因为它的这一整套理论实施落地的难度。。。

DSO详解高翔博士在知乎做过,另外东北大学的高手龚亦群同学做了整个代码的详解,我们在他这个海量工作的基础上重新梳理了一下因子图。所以我在这里就不多贴式子了,讲核心重点!

DSO是基于优化的,H矩阵形态很好理解,每个位姿8维,在6个自由度上增加了2个关键的光度参数a,b。最核心的3个残差同时包含了:几何/光度与图像梯度,对应3个Jacobian

3个残差的优化就是绝大部分同学难以上手的核心原因,另一个核心原因是其极其麻烦的初始化。整个DSO绝对不是大家简单认为的顺序操作:比如先前端提取,然后跟踪,然后匹配,然后RANSAC,然后BA或者卡尔曼优化这类,而是整个工作流都在不断地重复交叉优化这3种残差同时不断地更新整个Hession矩阵的过程。

FRAME/POINT与Residual与对应的能量EF全部互持指针,整个工作流耦合度极高,但注意因果关系!正是这种非常精美的模型,才能实现最终DSO所实现的真正相对稠密的视觉世界观

DSO系统解耦的难度极大,最好的方法就是重写,另外后续地平线的工作组和涂大神也手写了2个双目的立体S-DSO, 问题仍然有不少但是已经收敛了很多。后人也在不断地推进相关工作。

DSO系最大的问题就是如果要建立更好的视觉世界观,其开销会几何级数增长,同时因为运算涉及到太多的交叉优化与迭代(矩阵的处理和常规差不多),很难ASIC化。同时因为耦合度很高,运动传感器也很难并入,如VI-DSO和DM-VIO并入了IMU,代码也是很难的。同时DM-VIO虽然运行效果很好,但是开销更高了(直接2个BA+延迟边缘化在跑,视觉紧耦,运动传感器接近松耦,虽然也不是很松)。

视觉世界观如果真正建立,我们的重定位便不再依赖词袋这类东西,同时回环也会变得没那么重点,我们将有更多方法匹配惯性系与世界系,因为我们得到的参照数据将变得更加直观。

但是事情也不要太理想化,视觉世界观毕竟还是来自于双眼,和雷达世界观比仍然有不少的缺陷:如大树在阳光下的影子,一面墙它只是个矩形但到底是否可以通过呢? 这一系列的问题。

四. 未来的工作与展望

     接下来所有的工作都会高度集中在视觉的世界观,算法的深化,拆库拆结构,并行化的试验与发展,FPGA,各种传感器的测试与标定,码码码。另外也会花一些时间在更加强力的i-TOF相机上做一些简单的低开销点云匹配。

     从华为到港科,从港科到紫川,我和我们已经在电子,传感器与机器视觉侧走了漫长的道路,未来我们仍然会不断地坚持多传感器融合融态的道路。机器人这个学科,本质仍然是感知/控制与规划,越来越好的技术与更低的成本,一定会让这类技术广泛地使用到我们的工作中,更好玩,更方便,使我们更加快乐地工作,更加懒惰地享受人生~ 哈哈。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于机器人状态估计(10)-VSLAM与VIO的3D建图,重定位与世界观综述 的相关文章

  • 数据结构——二叉树的先中后序遍历

    本节内容为Bilibili王道考研 数据结构 P43 P45视频内容笔记 目录 一 二叉树的先中后序遍历 1 先中后序遍历 2 举例 3 先中后序遍历和前中后缀的关系 4 代码实现 5 求遍历序列 6 应用 xff1a 求树的深度 二 二叉
  • Ubuntu下使用sshfs/fusemount挂载/卸载远程目录到本地

    Ubuntu下使用sshfs挂载远程目录到本地 访问局域网中其他Ubuntu机器 在不同机器间跳来跳去 很是麻烦 如果能够把远程目录映射到本地无疑会大大方面使用 xff0c 就像Windows下的网络映射盘一样 在Linux的世界无疑也会有
  • 反向代理解决跨域问题

    为什么会产生跨域 js采用的是同源策略 同源策略是指浏览器的一项安全策略 xff0c 浏览器只允许js代码请求和当前所在服务器域名 xff0c 端口号协议相同的数据接口上的数据 xff0c 这就是同源策略 也就是说当协议 xff0c 域名
  • C++ auto关键字 和 基于范围的for循环 语法糖

    目录 auto关键字基于范围的for循环 auto关键字 在C 43 43 11中 xff0c 规定了一个关键字 xff1a auto 下面看一下auto的用法 xff1a span class token keyword int span
  • ubuntu下ROS2-foxy中安装serial串口包

    1 新开一个终端 ctrl 43 alt 43 t 2 因为ros2中还没有集成serial串口包 xff0c 所以需要第三方下载对应serial串口包 xff0c 新建一个文件夹 xff0c 包名字为第三方库 mkdir Third pa
  • 简单输出一个数组

    简单输出一个数组 xff0c 对于数组 xff0c 我想每一个初始C语言的人 xff0c 刚刚经历过了for循环的喜悦 xff0c switch的喜庆 xff0c for循环的挣扎 因此 xff0c 数组应运而来 xff0c 当头一击 xf
  • 详解strstr函数:查找子字符串函数及其模拟实现

    详解strstr函数 xff1a 在一个字符串中查找另一共字符串是否存在 xff01 对于strstr查找子字符串 xff0c 笔者如果不是对C语言学习的更加深入 xff0c 可能还是不知道有这个函数 xff01 xff01 xff01 之
  • 51--定时器/计数器,串口,中断的巧妙关系

    目录 什么是中断 什么是定时器计数器 什么是串口 开始 直接配置中断 中断 43 定时器 计数器 串口 43 中断 总结 中断查询次序号 xff1a 什么是中断 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的 xff0c 中
  • 字符串查找函数Strstr函数的实现(详细易懂)

    首先 xff0c 字符串查找函数是在目的字符串中查找源字符串的首次出现的具体位置 xff0c 若找到了便返回该位置的地址 xff0c 若没有找到 xff0c 则返回空指针NULL char strstr const char arr1 co
  • ROS安装与Rviz的摄像头视频采集与标定

    文章目录 一 ROS的安装与配置1 添加 ROS 软件源 xff0c 将下列命令输入到 Ubuntu 的终端执行2 添加密钥 xff0c 将下列命令输入到 Ubuntu 的终端执行3 安装desktop full4 初始化rostep5 设
  • ros2的基本使用/基础知识——ros2节点

    1 节点是什么 每个节点只负责单独的模块 xff08 例如 xff1a 控制车轮转动 xff1b 从激光雷达处获得数据 xff1b 处理激光雷达的数据 xff1b 负责定位 xff09 照相机 地盘 控制 2 节点之间如何交互 xff1f
  • SSH秘钥登录配置与系统日志管理

    配置 sshd 服务 SSH xff08 Secure Shell xff09 是一种能够以安全的方式提供远程登录的协议 xff0c 也是目前远程管理 Linux 系统 的首选方式 在此之前 xff0c 一般使用 FTP 或 Telnet
  • 关于Ubuntu中Could not get lock /var/lib/dpkg/lock解决方案

    问题现象 xff1a root 64 gvt NUC6CAYH apt get install net tools E Could not get lock var lib dpkg lock frontend open 11 Resour
  • vscode报错vue/multi-word-component-names处理

    vue multi word component names是用于检测当前的组件名称是否使用驼峰或多单词命名 错误截图如下 xff1a 1 可以修改 eslintrc js文件的配置 module exports 61 root true
  • Android SDK的安装步骤

    1 Android SDK下载 https www androiddevtools cn 2 解压Android SDK压缩包 放在没有中文的目录里面 3 打开Android sdk windows文件夹 xff0c 双击SDK manag
  • Apollo control之PID算法

    Apollo studio 官网 xff1a Apollo开发者社区 baidu com 目录 1 PID简介 2 PID调参思路 3 代码 4 解决积分饱和的方法 4 1 IC 积分遇限削弱法 4 2 BC 反馈抑制抗饱和 1 PID简介
  • TCP通信模型(C语言实现)

    大家好 xff0c 我是练习编程时长两年半的个人练习生昆工第一ikun xff0c 今天我们来分享TCP通信模型 xff0c 并且用C语言实现它 目录 一 我们将实现三个示例功能 xff1a 二 TCP服务器搭建流程 xff08 1 xff
  • 场景文本识别中的字符感知采样与校正(Character-Aware Sampling and Rectification for Scene Text Recognition)

    摘要 由于形状和纹理变化较大 xff0c 曲面场景文本识别在多媒体社会中是一项具有挑战性的任务 以前的方法通过等距离采样提取和校正文本行来解决这一问题 xff0c 这忽略了字符级别信息并导致字符失真 为了解决这个问题 xff0c 本文提出了
  • MyBatisPlus中的likeLeft和likeRight

    在使用MyBatisPlus来匹配身份证后6位时遇到了likeLeft和likeRight的问题 xff1a likeLeft时匹配最左边还是匹配最右边 xff1f 所以来一个简单的测试 xff08 通过打印 成功 失败 来判断 xff09
  • 计算机网络第一章总结

    目录 1 1计算机网络再信息时代中的作用 1 2互联网的概述 1 2 1网络 xff0c 互联网和因特网 1 2 2互联网基础结构的三个阶段 1 2 3互联网的标准化工作 1 3互联网的组成 1 3 1三种交换方式 1 4计算机网络的类别

随机推荐

  • Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column……报错的解决办法

    问题原因 xff1a 这个报错是执行有GROUP BY的语句时出现的 原因是MySQL启用了默认的only full group by SQL模式 导致GROUP BY语句报错 解决办法 xff1a 打开mysql的安装目录找到my ini
  • 【Linux安全管理】Firewalld详解

    目录 1 与iptables不同 2 配置防火墙 3 firewalld区域概念 4 filewalld 配置生效 5 firewalld服务 firewalld 端口映射 富规则 rich rule 1 与iptables不同 firew
  • C++之class和struct的区别

    在C语言中 xff0c struct是一个数据类型 xff0c 所以struct内不能定义函数 xff1b 在C 43 43 中保留了struct关键字 xff0c 并且进行了补充 xff0c struct类似于class xff0c 可以
  • QEMU使用virtio磁盘(Ubuntu/windows)

    环境 宿主环境 xff1a windows 10 pro QEMU版本 xff1a 3 1 客户机 xff1a windows2003 virtio是一种半虚拟化技术 xff0c window2003安装盘不带驱动程序 xff0c 所以首先
  • 创建一个ArrayList<String> 集合,通过反射向集合中添加Integer类型的数据

    1 思路 创建一个ArrayList lt String gt 集合 通过反射获取到ArrayList的Class对象通过Class类获取到ArrayList中的add方法 2 所需关键知识 获取Class类有三种方法 xff1a xff0
  • Git分支&标签

    目录 一 xff0c 分支 环境的的功能及特点 分支的策略 分支的相关指令 二 xff0c 标签 1 查看所有标签 2 创建tag 3 删除tag 4 分支与版本 一 xff0c 分支 1 分支的命名规范 dev test pre pro
  • java酒店管理系统小型项目

    前言 学习java这段时间以来 xff0c 给我的感觉是非常枯燥和乏味的 xff0c 因为学习编程这个过程就是这样 xff0c 除此之外我是自学 xff0c 所以遇到问题只能自己上网找资料 xff0c 或者看一些大佬的文章来解决问题 不过学
  • 基于智能优化算法的无人机路径规划(Matlab代码实现)

    目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 无人机作为一种现代航空设备 不仅作业速度快 成本低 还具有卓越的灵活性和时效性 常用于完成那些繁冗 危险 对灵活性要求较高 作业范围较大的任务 比如航空拍摄 农
  • 布谷鸟搜索算法的改进及其在优化问题中的应用(Matlab代码实现)

    x1f352 x1f352 x1f352 欢迎关注 x1f308 x1f308 x1f308 x1f4dd 个人主页 xff1a 我爱Matlab x1f44d 点赞 评论 收藏 61 61 养成习惯 xff08 一键三连 xff09 x1
  • 基于MATLAB中雷达和视觉合成数据的目标级传感器融合(Matlab)代码实现

    目录 x1f4a5 1 概述 x1f4da 2 运行结果 x1f389 3 参考文献 x1f468 x1f4bb 4 Matlab代码 x1f4a5 1 概述 本文使用MATLAB的场景生成器工具箱 xff0c 通过合成雷达和视觉观察创建一
  • Linux嵌入式开发——C编程

    文章目录 Linux嵌入式开发 C编程一 编写C程序1 1 设置vim编辑器1 2 编写C程序 二 编译C程序三 make工具和Makefile文件3 1 编写C程序C文件H文件 3 2 不使用make工具3 3 使用make工具和Make
  • C#中的接口

    一 什么是接口 含义 xff1a 接口是指定一组函数成员而不实现它们的引用类型 xff08 只能用类和结构实现接口 xff09 接口可以包含实例方法 属性 事件 索引器或这四种成员类型的任意组合 接口可以包含静态构造函数 xff08 不能创
  • VINS-MONO工程改造

    这篇是接着前文 主流VIO VSLAM系统改造与工程化落地 和 关于VIO零速更新 ZUPT 与控制三种约束的工程实践 的 xff0c 有时候想一出是一出 xff0c 导致写的东西还是太分散了 要做VINS改造首先要熟悉VSLAM和数学基础
  • DM-VIO简析

    今天主要是针对DMVIO DM VIO的简析 xff0c 中文网上有的东西都太少了 xff0c 只能靠看完论文和组员们一起改代码 Lukas组这个东西在中文网被称为有史以来最好的VIO xff0c 但是实际过程中我们还是发现了许多不完美的地
  • Hao to setup windbg on windows10 LTSC img

    Windows host Debugger install windbg https developer microsoft com en us windows downloads windows 10 sdk download the i
  • VINS/VIO的并行化与工程化(GPU篇)

    最近更新的这2篇应该是比较重的了 xff0c 先做GPU篇 xff0c 再做DSP篇 先友情提醒 xff0c 这篇文章很重很费时 xff0c 对各种软硬算的知识要求多多 主体知识来源于UZH和ETH的研究者Balazs Nagy组 xff0
  • 关于机器人状态估计8-VSLAM工程与VIO工程难点

    最近做产设和综述把头都整晕了 xff0c 本来想认真更新GPU那篇DSP的姊妹篇 xff0c 突然觉得太长了实在是没有写的欲望 xff0c 还是写篇杂文算了 一看这个标题就知道 首先如果没有 关于机器人状态估计 4 成长路径与能力提升这块基
  • VIO/VINS/VSLAM问题定位流程与思路

    首先假设读者是了解基础VSLAM xff0c 了解VIO基础 至少要会标定 xff0c 调过几个开源系统的 先说一下双目的VINS FUSION xff0c 大部分问题都是基线造成的问题 xff0c 简单点说就是如果使用较短的基线如5cm
  • VIO/VINS中关于能观性/可观性的详细讲解

    以前大概写过一下 xff0c 太烂了 也是没什么人写 xff0c 再详细讲解一下 整体简洁一点尝试主要用文字说明这个比较关键的点 xff0c 其实整体和多传感器融合也有很大的关联 xff0c 无论是外感还是内感传感器 xff0c 无外乎从运
  • 关于机器人状态估计(10)-VSLAM与VIO的3D建图,重定位与世界观综述

    近期我国迎来了cov海啸 xff0c 其实我也不知道我羊了没有 xff0c 但并没有什么不舒服同时因为我没有测 xff0c 那自然是没有羊 xff0c 或者是薛定谔的羊 近年另外一块工作的综述 xff0c 这篇科普的同时 xff0c 也会包