阶段性工作总结

2023-05-16

(一)简介

1、常用VSLAM开源框架对比,初步研究方向确定

2、ORB-SLAM3的数据集测试,各种模式下的运行性能对比,及IMU模式下与Vins对比实验

3、adas视频在ORB-SLAM3下的运行测试,及出错分析与修改

4、AVP-SLAM算法及众包地图构建论文研究,验证基于ICP的点云配准

5、对比AVP-SLAM与基于结构的由粗到精高精度地图定位方案,确定低成本的基于高精度地图的定位方案

6、确定方案VIO:介绍对比ORB-SLAM3与vins-mono的惯导融合方案异同,重点vins的IMU初始化,IMU相关残差,及其边缘化原理,对比两者结构,初步选择vins方案

7、IPM图像拼接:周视相机内外参标定方案,针孔相机及鱼眼相机的IPM推导,鱼眼相机标定,鸟瞰图拼接

8、基于kitti数据的建图模块构建,bug调试并优化rviz上点云显示

9、车道线语义分割相关调研和测试工作

10、之后工作的方向、细节

(二)VSLAM开源框架对比

不同传感器组成的特点: 

1、纯单目:尺度不确定性导致需要初始化,同时由于尺度不确定可以实现大尺度范围下工作;

2、纯双目:可以通过三角化直接获取真实尺度,鲁棒性较单目高;由于视觉误匹配等各种原因,双目的精度会比单目差一点;

3、视觉+IMU:IMU 的引入可在快速运动时能够减少一些丢失,鲁棒性提高;而精度上与 VO 相近或略有下降。

各方案详细对比:

类别算法前端后端回环精度鲁棒性开发实时性
纯单目LSD-SLAMEdge directPG

FABMAP

PG

3在光照变化较小情况下,跟踪稳定性好,鲁棒性好可在CPU 实时运行半稠密建图
ORB-SLAM2ORBLocal BA

DBoW2

PG+BA

4慢速运动下鲁棒性好,可实现重定位由于基于特征点,运行速度较慢
SVODirectLocal BA3源码只适用平面场景,平移运动轻便,运行速度快

纯双目

/RGB-D

RTAB-MAPGFTT/BRIEFLocal BA

DBoW2

PG

3相对于RGBD-SLAMV2较好在ROS下可在大规模场景中流畅运行
RGBD-SLAM-V2FeatruesLocal BA

DBoW2

PG

3鲁棒性一般实时性较差,必须慢速运动
单目+IMUVIORB-SLAM2ORBLocal BA

DBoW2

PG+BA

4加入IMU,较好于ORB-SLAM2与ORB-SLAM2类似
VINS-MONOShiTomasi+KLTLocal BA

DBoW2

PG

4基于滑窗重定,跟踪失败可重定位模块可拆分,运行效率较高
ORB-SLAM3ORBLocal BA

DBoW2

PG+BA

5鲁棒性高,跟踪失败仍能继续工作系统较大,实时性一般
双目+IMUVINS-FUSIONShiTomasi+KLTLocal BA

DBoW2

PG

4鲁棒性高于VINS-MONO模块可拆分,运行效率较高

根据方案完整度,二次开发可行性,及道路应用场景要求,选定ORB-SLAM3,及vins-mono进行深入研究。

 (三)ORB-SLAM3运行测试

数据集测试:

 【注】1.特征点提取后,要在distributeOctTree函数里用到了sort排序,应该是排序加入了不稳定因素,使得每次保留的特征点不一样;2.多线程:并行运行过程中,每次电脑的运行状况不同;3.算EPnP的ransac不是稳定的;导致每次运行结果都有变化,故以下结果中RMSE和SCALE取运行多次的均值。

数据运动特征模式

Max

(cm)

Min

(cm)

Median

(cm)

RMSE

(cm)

SCALE

MH_01

(easy)

length:80.6m

time:182s

回环多,速度慢

pure mono10.40.33.03.6--
pure stereo6.30.22.73.11
mono+IMU14.00.44.55.81
stereo+IMU14.70.45.16.21

MH_02

(easy)

length:73.4m

time:150s

回环多,速度慢

pure mono420.75.86.5--
pure stereo4.601.242.11
mono+IMU110.43.44.60.999
stereo+IMU8.80.12.73.81

MH_03

(medium)

length:130.9m

time:132s

回环多,距离长,速度快

pure mono25.30.13.44.3--
pure stereo9.60.21.92.51
mono+IMU130.65.46.30.995
stereo+IMU10.70.53.95.20.995

MH_04

(difficult)

length:91.7m

time:99s

回环少,速度快,中间有段环境光度变化大

pure mono40.52.18.813.2--
pure stereo25.71.19.512.751.008
mono+IMU27.81.811.515.550.986
stereo+IMU17.20.76.06.60.998

MH_05

(difficult)

length:97.5m

time:111s

与MH04相似

pure mono23.60.65.36.4--
pure stereo160.43.95.40.994
mono+IMU27.30.37.69.20.992
stereo+IMU17.41.47.48.50.991

adas拍摄数据测试:

 车载数据测试运行失败纠错:

1)adas车辆数据运行测试,数据输入模块修改;
2)测试adas车辆转向视频,出现初始化和跟踪失败;
3)初始化失败,推测原因:相机垂直光心方向平移较少;视频初段动态场景占比较大,导致跟踪内点较少不能顺利完成初始化;

(四)基于全局地图定位方案设计

参考论文:

  1. RoadMap: A Light-Weight Semantic Map for Visual Localization towards Autonomous Driving;
  2. AVP-SLAM: Semantic Visual Mapping and Localization for Autonomous Vehicles in the Parking Lot.

传感器设置;

  • 周视鱼眼相机4个:获取车库场景下的地面360°环视鸟瞰图
  • 前视单目相机1个:帧率在20hz以上,与IMU融合组成VIO
  • IMU(MEMS):采样频率100hz以上,零偏稳定性,零偏重复性尽量高
  • GNSS:GPS信号提供全局初始位姿;自带高精度授时功能实现传感器数据采集同步

实现流程:

  1. 初始化:路段起点GPS信号作为起点初始值,保存当前帧作为起点参考帧K0;

  2. 局部建图:VIO提供运动估计,并建立局部语义点云地图;

  3. 全局地图优化:VIO在离线建图状态下,开启回环检测,优化全局语义地图。

  4. 实时定位:同建图部分一样,VIO里程计采用superpoint网络提取特征点,剔除动态物体特征点后进行运动估计;

  5. 全局优化:在行进过程中,通过毫米波雷达检测车辆周围障碍物,在没有遮挡时将当前周视图与全局地图进行点云配准得到全局约束来进行全局优化,获得精确定位。

预期目标

1)室内泊车效果:

2)道路行驶效果: 

(五)视觉+惯导框架选择

为毛选择VINS-MONO :

1、联合初始化优势:

2、前端跟踪优点:

3、后端局部优化的滑窗与边缘化原理:

(六)点云配准ICP算法验证

算法步骤:

  1. 匹配:应用初始变换,找最近点
  2.  加权:调整一些对应点对的权重,剔除不合理点对
  3. 计算 loss,最小化 loss,求解当前最优变换
  4.  回到步骤 1 进行迭代,直到收敛

目标函数:

 实验验证:

(七)鸟瞰图投影拼接

相机标定方案:

 逆透视变换:

 透视变换(单应矩阵为投影矩阵)

 逆透视变换(相机外参计算变换矩阵)

投影拼接结果:

1)大巴车鸟瞰图拼接:

 2)kitti前视单目逆透视鸟瞰图:

(八)建图模块构建

实现思路:

  • kitti数据集打包为bag文件,按照数据时间戳将图像数据与IMU数据对齐
  • 访问当前关键帧,图片经过逆透视变换,投影为汽车坐标系下的真实点云
  • 采用vins-mono框架下的视觉惯性里程计,通过图片与IMU融合信息优化求解汽车当前位姿(相对与开机第一帧的位姿)
  • 利用得到的位姿,将语义点云坐标变换至全局坐标系(第一帧为坐标原点)
  • 稠密点云滤波,回环检测部分加入局部点云配准结果进行约束,提升地图全局优化效果

建图结果:

(九)车道线语义分割

开源代码:https://github.com/Jinglever/baidu-lane-detection-2019

参考文章:https://aistudio.baidu.com/paddle/forum/topic/show/953213

分割网络及训练样本:

  • baseline是百度2019年的车道线识别挑战赛初赛第一名的代码,采用的是最基础的unet网络backbone也是最原始的,分割结果:miou=0.684
  • 数据集来自百度2019年的车道线识别挑战赛,分割类别:实线、虚线、导向线等9类
  • 作者训练策略:裁剪原图缩小到3种分辨率(768x256, 1024x384, 1536x512)进行递进训练

分割效果(不好):

分割后建图结果:

信息量:初步估计,加入未成功分割出的语义信息后,点云数据约:28M/km

(十)后续工作内容

语义分割部分:

  • 采集自己的道路标志数据,进行样本标注。
  • 网络可以尝试deeplab v3+,unet++等更强的;或者unet网络替换Resnet等其他backbone看是否有更好的效果,或者可以考虑多模型融合。
  • 尝试不同训练阶段使用不同的loss或者组合。
  • 考虑加入红绿灯、指示牌等立体标志语义信息。

完整建图:

  • 目前只是在kitti数据集上进行功能模块验证,后续需要完成自己的IMU内参标定,IMU+相机联合标定,数据同步,实验调试实现IMU+相机的初始化步骤;
  • 用自己的IMU+相机数据进行VIO精度测试,进而测试vins-mono长时长里程定位精度,并针对性修改相应模块;
  • 在VIO优化完成后,启用vins-mono全局优化模块(必要时加入节点帧点云配准约束和GPS信号约束)对特定地点进行语义地图构建,测试地图闭环精度;
  • 对于非地面标志的立体物体(如红绿灯、标志牌等),考虑采用多视图几何+单目深度估计的方法将2维检测结果还原为物体的三维信息并加入地图。
  • 全局地图信息量压缩。

定位:

  • 开机重定位功能的实现:二次开机时传感器初始化及车辆重定位方案设计实现;
  • 局部地图截取策略的设计实现,基于点云配准的定位模块实现;
  • 加入GPS信号,与视觉+惯导数据松耦合;或利用GPS+IMU的联合定位信息,与视觉数据融合,提高定位鲁棒性;

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

阶段性工作总结 的相关文章

  • 嵌入式软件架构设计

    如何设计一个好的软件架构 xff0c 如何提高软件的扩展性 xff0c 移植性 xff0c 复用性和可读性 xff1f 很多做嵌入式开发的朋友经常会遇到这种情况 xff1a 一个项目软件设计完成了 xff0c 客户提出了一些新的功能需求 这
  • 深入理解C语言小括号用法

    学了这么多年C语言 xff0c 你真的会用小括号吗 xff1f 我们今天来总结一下小括号 xff08 xff09 有哪些用法 xff0c 用法如下表 xff1a 示例 1 聚组 聚组是用来改变运算优先级 xff0c 实例如下 xff1a 例
  • 嵌入式实时操作系统1——初识嵌入式实时操作系统

    嵌入式实时操作系统是什么 嵌入式实时操作系统是一个特殊的程序 xff0c 是一个支持多任务的运行环境 嵌入式实时操作系统最大的特点就是 实时性 xff0c 如果有一个任务需要执行 xff0c 实时操作系统会立即执行该任务 xff0c 不会有
  • 嵌入式实时操作系统3——任务切换

    任务切换原理 假设有一程序 xff0c 程序内有一个无限循环 xff0c 在循环内部有5个表达式 xff0c 代码如下 xff1a 程序在循环中 xff0c 会依次执行表达式1 表达式2 表达式3 表达式4 表达式5 表达式1无限循环 假设
  • 嵌入式软件设计必看书籍

    提高C语言编程能力 以上4本书籍可以提高C语言编程能力 xff0c 深入理解C语言指针用法 xff0c 深入理解C语言标准 提高软件架构设计能力 以上2本书籍掌握以下知识 xff1a 1 软件设计原则 2 软件设计模式 3 软件设计构架 4
  • 如何使用 Docker 进行编译和开发

    简介 xff1a 本文主要为大家讲解不同环境下如何使用docker进行日常开发和编译 镜像下载 域名解析 时间同步请点击 阿里巴巴开源镜像站 一 Linux环境开发 适用于Linux环境开发者 xff0c 有专门代码服务器或虚拟机 1 安装
  • 嵌入式实时操作系统9——中断系统

    1 中断是什么 中断是计算机中一个非常重要的概念 xff0c 现代计算机中毫无例外地都要采用中断技术 早期的计算机没有中断系统 xff0c 人们往往需要等上一个任务运行结束才能运行下一个任务 xff0c 这极大的限制了计算机的执行效率 早期
  • 从零开始构建嵌入式实时操作系统1——任务切换

    1 前言 随着计算机技术和微电子技术的迅速发展 xff0c 嵌入式系统应用领域越来越广泛 xff0c 尤其是其具备低功耗技术的特点得到人们的重视 随着工信部提出NB IoT基站建设具体目标 三大运营商加速建设 xff0c 即将迎来万物互联的
  • 从零开始构建嵌入式实时操作系统2——重构

    1 前言 本人是一个普通的中年程序员 xff0c 并不是圈内的大牛 xff0c 写嵌入式操作系统这一系列的文章并不是要显示自己的技术 xff0c 而是出于对嵌入式的热爱 非常幸运 xff0c 本人毕业后的十几年一直从事嵌入式行业 xff0c
  • 从零开始构建嵌入式实时操作系统3——任务状态切换

    1 前言 一个行者问老道长 xff1a 您得道前 xff0c 做什么 xff1f 老道长 xff1a 砍柴担水做饭 行者问 xff1a 那得道后呢 xff1f 老道长 xff1a 砍柴担水做饭 行者又问 xff1a 那何谓得道 xff1f
  • 从零开始构建嵌入式实时操作系统4——深入讲解任务切换

    1 前言 操作系统可以为我们执行丰富的应用程序 xff0c 可以同时满足我们的各种使用需要 操作系统之所以能同时完成我们各种需求 xff0c 是因为操作系统能并发执行多个用户的应用程序 事实上除了多核处理器系统中是真正的多任务并行之外 xf
  • Linux启动流程之ROM-CODE

    1 从哪里开始 xff1f 下图是AM335X核心板和功能框图 xff1a AM335X核心板的存储信息如下 xff1a AM335X核心板运行linux系统 xff0c 在这里提出一个问题 xff1a 上电后指令从哪里开始执行 xff1f
  • 全志V3S开发板星光闪烁(linux LED驱动)

    1 前言 本文描述了基于全志V3S开发板的LED驱动程序和测试应用程序的设计流程 通过本次实验我们可以控制V3S电路板上的LED xff0c 模拟星空的星星 xff0c 一闪一闪亮晶晶 xff01 2 设计流程概述 本次实验的设计步骤如下
  • 人脑能否重启?

    1 重启是什么 人脑能否重启 这个问题还不简单 xff0c 人睡眠后清醒就是重启 事实真的是如此简单吗 xff1f 我们先不急着给出结论 xff0c 前面提到 人睡眠后清醒就是重启 xff0c 这句话中有两概念 xff1a 1 睡眠和觉醒
  • 嵌入式技术之IAP,自从有了它老板再也不担心我的代码了!(中)

    上篇文章我们一起学习了IAP的工作原理和IAP包含的3个重要功能 xff1a 数据交互 数据存储和程序跳转 这3个重要功能称为 IAP的三板斧 xff0c 接下来我们看这三板斧具体完成哪些细节工作 xff0c 如何实现这三板斧 1 数据交互
  • 超导量子计算机

    1 超导量子计算机发展状况 2018年3月5日美国物理学会年会上 xff0c 谷歌展示了其正在测试的72量子位超导量子芯片Bristlecone 谷歌物理学家朱利安 凯利表示 xff0c 研讨团队希望初次运用更大的量子芯片来展现霸权 xff
  • Ubuntu 快速更换阿里源

    简介 xff1a 本文主要给大家讲解如何为Ubuntu更换阿里源 xff0c 通过以下四个步骤即可快速实现换源 镜像下载 域名解析 时间同步请点击 阿里巴巴开源镜像站 一 查看ubuntu的Codename lsb release a gr
  • 建造《流浪地球2》中要毁灭人类的超级量子计算机MOSS的核心量子技术是什么?

    1 流浪地球2 中的量子计算机 2023年中国最火的电影非 流浪地球2 莫属 xff0c 在 流浪地球2 中有一个人工智能机器人MOSS xff0c 它的前身是 550W 超级量子计算机 xff0c MOSS 是它给自己起的名字 xff08
  • 离子阱量子计算机

    1 新闻 2020年6月 xff0c 科技制造企业霍尼韦尔 xff08 Honeywell xff09 发布第一台离子阱量子计算机H0 xff0c 它拥有64量子体积 xff0c 它是IBM和谷歌同时期量子计算机的两倍 公司表示之所以能取得

随机推荐

  • ROS Melodic安装、配置和使用turtlebot2(集成众多源代码直接下载)

    已经有前辈将ubuntu14 04下的turtlebot教程翻译了过来 xff0c 可以先行查看 xff0c 对turtlebot的知识建立总体的认识 xff1a https www ncnynl com archives 201609 7
  • FreeRTOS学习 第一讲 操作系统的移植

    FreeRTOS学习 第一讲 操作系统的移植 基本介绍 xff1a 系统分类 1 xff09 前后台系统 while 1 循环 适用情况 xff08 简单和小的需求 处理需求相对来说较少 xff09 2 xff09 实时操作系统 实时操作系
  • Python调用playsound时报错:指定的设备未打开,或不被 MCI 所识别

    报错信息 xff1a Error 263 for command close audio mp3 指定的设备未打开 或不被 MCI 所识别 原因 xff1a windows不支持utf 16编码 xff0c 需修改playsound源码 p
  • 【无人机学习】Mission Planner(pc端)和QGroundControl(android端)

    无人机学习 Mission Planner xff08 pc端 xff09 和QGroundControl xff08 android端 xff09 系列文章目录 提示 xff1a 这里是收集了无人机的相关文章 无人机学习 无人机基础知识
  • 【无人机学习之QGroundControl】android端App初解4-遥控器通道

    无人机学习之QGroundControl android端App初解4 遥控器通道 系列文章目录 提示 xff1a 这里是收集了无人机的相关文章 无人机学习 无人机基础知识 无人机学习 Mission Planner xff08 pc端 x
  • 百度2014校园招聘 软件研发工程师 笔试题

    一 简答题 xff08 本题共30 xff09 1 动态链接库和静态链接库分别有什么优缺点 xff1f xff08 10 xff09 2 轮询任务调度与抢占式任务调度的区别 xff1f xff08 10 xff09 3 请列出数据库中常用的
  • Kubernetes 日志查询分析实践

    简介 xff1a 本文将介绍如何基于日志服务实现对 Kubernetes xff08 以下简称 K8s xff09 日志的采集以及查询分析 xff0c 此外 xff0c 还附带了对 Ingress Audit 方案的简要介绍 为了方便大家通
  • C++算法题

    目录 一 排序算法 1 冒泡排序 2 快速排序 3 归并排序 4 堆排序 5 插入排序 6 topK 二 二分查找 1 一维数组二分查找 2 二维数组二分查找 3 寻找旋转排序数组中的最小值 三 有序数组的平方 xff08 双指针法 xff
  • QT通过UDP分包传输大图像(测试可传6M)

    参考博客 UDP传数据每帧数据最大传64k xff0c 而图片文件一般远大于64K xff0c 此时就需要将图像数据分包传输 xff0c 接收端也分包接收 xff0c 直到整个图片数据都收到 xff0c 再进行其他处理 发送端 发送数据 v
  • github代码如何定位到历史版本(历史commit点)

    关于使用git在本地进行版本管理见linux下的版本管理 工作项目中git流程实操见git简明实操模板 想我们在写代码时候 xff0c 数次修改并提交commit xff0c 如果在这个过程中我们后悔了 xff0c 想回到当初的某一个com
  • Intel RealSense学习之图像及图像深度数据获取

    本文将介绍如何获取到彩色图像的深度信息 大家都知道我们可以从realsense 摄像头中获取到RGB数据 xff0c 红外数据 xff0c 以及图像的深度数据 至于图像的深度数据我的理解是realsense摄像投抓到的图像的相关距离信息 x
  • ROS机器人编程实践——读书笔记1

    目的 xff1a 写一个最小基于ROS的机器人控制软件 一 写一个运动命令流 xff0c 每秒10次 xff0c 每三秒启动一次 在移动时 xff0c 发送前进命令 xff0c 速度0 5米每秒 xff0c 停止时发送速度0米每秒 命名为
  • SLAM后端:因子图优化

    xff08 一 xff09 贝叶斯网络 贝叶斯网络是种概率图 xff0c 由随机变量节点和表达随机变量条件独立性的边组成 xff0c 形成一个有向无环图 在 SLAM 中 由于我们有运动方程和观测方程 它们恰好表示了状态变量之间的条件概率
  • Ceres用法及Ceres-Sophus在位姿图优化问题的应用

    xff08 一 xff09 Ceres Solver的一般用法 简述 xff1a Ceres Solver is an open source C 43 43 library for modeling and solving large c
  • 基于深度卷积神经网络的语义地图构建

    xff08 一 xff09 相关研究及特点 语义分割 语义信息 xff1a 物体类别 目标检测 语义分割等 语义分割即对图像中每个像素分配类别标签 目前最主流的是深度学习方法 xff0c 代表性的方法是全卷积神经网络 xff08 fully
  • 语义信息用于闭环检测

    xff08 一 xff09 SLAM闭环检测方法 传统特征点方法 xff1a 利用SIFT 等视觉特征进行对比闭环检测 受环境影响较大 xff0c 往往会产生假阳性检测 xff0c 且计算量大 效率低 在实际应用上存在较大的阻碍 深层特征方
  • 盘点|2021年最受欢迎Linux桌面操作系统前十名

    简介 xff1a 根据各操作系统镜像站后台下载量 xff0c 阿里云镜像站统计了2021年最受欢迎的Linux桌面操作系统 xff0c 仅根据调用量排名 xff0c 供大家参考 排位最高的还是Centos xff0c 受中国Linux用户欢
  • VSLAM框架对比

    xff08 一 xff09 单目VSLAM特点介绍 xff1a 1 ORB SLAM2 工作流程 xff1a 主要模块 xff1a 前端 xff1a ORB特征提取匹配 xff0c 估计相机位姿 xff1b 根据跟踪地图点数的减少选择关键帧
  • ORB-SLAM3的Euroc数据集测试

    xff08 一 xff09 测试运行 不同模式测试过程 xff08 以MH 03为例 xff09 1 pure mono 运行SLAM xff1a cd ORB SLAM3 Example run slam Monocular mono e
  • 阶段性工作总结

    xff08 一 xff09 简介 1 常用VSLAM开源框架对比 xff0c 初步研究方向确定 2 ORB SLAM3的数据集测试 xff0c 各种模式下的运行性能对比 xff0c 及IMU模式下与Vins对比实验 3 adas视频在ORB