关于机器人状态估计(11)-VIO单目与双目/雷达Lidar SLAM/未来的机器人

2023-05-16

写这篇文章的时候刚发生行业大事件: Google收购ROS

其实一开始还是水,绝对大量文不对题,但是必有干货,毕竟用的是这个关键的系列标题。

最近有几件行业内发生的大小事,让我觉得有必要更一下。

首先是Livox的mid-360

好几个亲密小伙伴开始关心我会不会失业。。。~

其实说真的,我非常开心和快乐,早在2021年中的时候,在珠三角内部产业研讨中我们就已经得出了未来高线束(64-128)雷达会在车规级大量进入4位数区间(毕竟我们是卷王之国),Livox这个犀利产品只是将这个进程又向前迈进了一步。而且这个产品做得非常好,极大地降低了开发者们的门槛。一个市场,从来只有参与者越多,才能成为一个真正的蓝海,否则都是伪命题。

接下来放这个:

DJI的车规级平台,大家可以认真观察一下,Where is Lidar?

这是一件很有意思的事情,当然,主配个Lidar对DJI来说易如反掌。这里也就是给后文打个前站,告诉大家,其实CV一样可以玩到极致。

我非常非常喜欢DJI车载的宣传视频,大家有空也可以去看一下。一个姑娘一匹马,全程未出现车辆,未出现传感器。却充满了美感与浪漫,极大地拉升了B格。其实衷心希望未来我们国家的工程师,能够越来越重视这些软性的事项,我们要做好的,并不仅仅是我们的技术,更是我们作为一个又一个的工程组,能够真正地以我们的技术突破市场的同时,实现那些属于我们的浪漫。

第三个是奥比出的一个缝合,奥比作为青年一代的企业,也是我非常喜欢的公司。

虽然这个小东西是个缝合,我仍然非常喜欢,这是一个标准的Sersor+Plat的二合一,而且选择上并没有问题,Intel的视觉ASIC+NV的小算力平台,再配合部分奥比自己的Sensor。从某个意义上来说,从这也能看出年轻公司的野心和未来的规划。

最后再聊一个小事然后进正题,考虑到为朋友和伙伴保密,就不说太细了。

简单点讲就是遇到了一个数量极大的方案设计,但是甲方成本只能达到全套系统在当下必须具备的固有成本的1/3,中国公司和工程师们的传统想法就是以数量换价格,这也是过去的成功之道之一。但其实这个世界,从2022年开始就在发生剧变,这样的工作思路也是过去的成功路径,但是在未来未必可行,因为我们必须要遵从逻辑。仅仅有数量却没有利润的订单重要性会急剧下降,世界对工业品的整体需求正在下降,而我国的卷王正在变得越来越多。降本增效之外,如何创造和保证质量与B格,会是非常重要的课题。

这个设计中最大的问题就是想用通用SOC中的低核搭配去覆盖整个VIO系统。

这个想法其实挺好,我2021年也是这么想的,但是现在并不,也和我的工作相关~因为在相当一段长的时间里,独立或半独立的机器人,仍需要有相当余裕的算力空间用于感知与规划。。而且也是在相当一段时间里,它们并不会有真正的普及,虽然数量级相对现在至少提升2个。

过去提到过的部分就不再重复了,举了这4个例子后开始进入正文:

  1. 首先,视觉与雷达并非替代关系,在很多重要场景都是互补关系,如涉及法律法规风险的自动驾驶,电动轮椅类的东西。

2. 其次,VIO未来绝对不仅仅用于教研,实验室和机器人比赛等场景。它的构造能在相当多的场景成为主用,甚至唯一的感知配置,相对应的可以松耦合一些类似轮速计,rtk,i-TOF之类的传感器,或者用vslam搭配轮速计+IMU的DR来耦合,当然也可以适配多目VSLAM,减少VIO紧耦的开销。

3. 再次,机载/车载综合算力平台的重要性会越来越高,在独立和半自主机器人中,融合感知+规划一体承载的嵌入式平台会变成核心课题。当然也可以采用一些前后端结合的架构,如将集群优化,回环,重定位等工作放在云端。但是这一类主要适合集群的成组单任务类机器人。在这类任务中,如果是通核SOC设计,CPU/GPU/DSP/NPU都是必不可少的(具体能力和选择取决于场景要求)。专核设计的话,部分感知前端和优化任务可以ASIC化(参考Navion篇),FPGA可有,可无。

4. 最后,中低核SOC不适合任何独立/半自主机器人,甚至不适合任何玩具以外的机器人(哪怕是集群类很多工作量云端化的),原因有一大箩筐就不展开了。

VIO单双目异同:

1.首先,VIO本身就有主配角之分,较有代表性的VINS系列以IMU作为主C,如ORB-SLAM3, DM-VIO等以视觉为主C。

2.单目VIO需要大量数理知识和代码能力,上手困难,精度高,是通向双目VIO和多目VSLAM的必由之路,不搞透直接去弄双目和多目,基本就是普通调库调参侠,完全无法深入三相性和世界观相关工作,做出来的都是花架子。

3.单目VIO非常适合2种形态:空中无人机与手持装备,对地面AGV/AMR机器人不友好,对多足极其不友好。

4. 双目VIO融合了视差部分作为其中的主约束,部分降低了精度,但是极大地增强了三相性中的鲁棒性。还有个优点就是非常轻松的初始化。

5.不管什么级别的双目B线,仍然有可能在大场景小目标的情况下丢失尺度,任何时候都有可能发生。

6.其他的ZUPT相关工程问题,尤其是视觉盲人问题,2者一致。当然VIO和多目VSLAM本身通过精密的软硬件设计与耦合都能鲁棒掉大部分这一类的事情。

VIO与Lidar雷达 SLAM的异同:

1.世界观!世界观!世界观!线扫和固态雷达具备极佳的世界观,三相性达不到的VIO在它面前就是个垃圾,三相性能达到的VIO如果没有半稠密世界观在它面前就是个弟弟。而绝大部分的VIO没有半稠密/稠密世界观,有的三相性中最重要的开销度直接炸天。

2.优点是稀疏世界观的VIO,三相性能够优化和并行化或ASIC化到足够好的水准时,算力开销虽然仍然很高,但是远远小于Lidar那些ICP化点云的开销,算力平台要求远远小于雷达,即使感规一体也不需ORIN或Xavier大版这样夸张的算力。

3.VIO是有机会构建半稠密世界观的,但是完成后仍然面临很严峻的问题!规划开发有很多的难点,雷达的世界观主要是深度数据与三维建图构成的点云阵列,表述清晰,使规划工作难度急剧下降。而视觉即使提供了半稠密甚至稠密的世界观,如果不以ICP类的形态完成建图,对规划的指导仍然是比较抽象的。

4.从第3点开始延展,雷达规划走到今天,方法论无数,即使在三维空间中,地面机器人也只需要类似极坐标系+笛卡尔坐标系组合,再做一个简单的高程升维即可以解决(当然空间三维的飞行机器人规划非常复杂)。而VIO,即使完成较为稠密的点云,也没有足够好的工作设计可以参考。举一个很简单例子,大树投下的阴影,对雷达来说世界观中可以通行,而对视觉建图来说,它就是一个真实存在的可能障碍。如果做了视觉上响应的忽略,但是如果它是一个真实的深坑呢?此时雷达又可以简单地进行处理。所以VIO如果要作为主用传感+算力平台组合时,还是存在着一系列的缺陷

好了,今天文章写完了,纯当纪念下Google收购ROS,对我们的工作又产生了进一步的鼓励,哈哈。

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

关于机器人状态估计(11)-VIO单目与双目/雷达Lidar SLAM/未来的机器人 的相关文章

  • 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 也会包
  • 关于机器人状态估计(11)-VIO单目与双目/雷达Lidar SLAM/未来的机器人

    写这篇文章的时候刚发生行业大事件 xff1a Google收购ROS 其实一开始还是水 xff0c 绝对大量文不对题 xff0c 但是必有干货 xff0c 毕竟用的是这个关键的系列标题 最近有几件行业内发生的大小事 xff0c 让我觉得有必