![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SLAM
文章平均质量分 81
可即
这个作者很懒,什么都没留下…
展开
-
卡尔曼滤波中dx更新公式
这里的 H * dx 表示在当前状态估计下,预测的状态变化量 dx 经过观测模型 H 的线性化(通常是一阶泰勒展开)所得到的预测残差。如果观测模型是非线性的,则可能需要使用第二个公式来进行更准确的状态估计。在标准的卡尔曼滤波中,系统和观测模型都是线性的,而在扩展卡尔曼滤波(EKF)和迭代卡尔曼滤波(IKF)中,系统或观测模型可以是非线性的。这个公式是卡尔曼滤波的标准更新步骤,其中 residual 是观测值与当前状态预测的直接差值。这个公式假设观测模型是线性的,即可以直接使用观测残差来更新状态。原创 2024-07-10 18:46:02 · 307 阅读 · 0 评论 -
高斯牛顿法和LM算法异同示例
高斯牛顿法和LM算法异同示例原创 2023-08-24 10:05:31 · 439 阅读 · 0 评论 -
自动驾驶中地图匹配定位技术总结
无论是卫星定位(GNSS)还是惯性导航定位(INS),自动驾驶定位系统的误差都不可避免,定位结果通常偏离实际位置。引入地图匹配可以有效消除系统随机误差,校正传感器参数,弥补在城市高楼区、林荫区、立交桥、隧道中长时间GNSS定位失效而INS误差急剧增大的定位真空期。**地图匹配定位技术是指将自动驾驶汽车行驶轨迹的经纬度采样序列与高精度地图路网匹配的过程。原创 2023-05-05 15:25:42 · 1428 阅读 · 0 评论 -
Unix、UTC、GPS时间戳及转换
Unix、UTC、GPS时间戳及转换原创 2023-04-13 17:36:24 · 15239 阅读 · 0 评论 -
GVINS论文中关于GNSS的基础知识
GVINS论文中关于GNSS的基础知识原创 2023-02-28 17:32:52 · 653 阅读 · 0 评论 -
GNSS在多传感器融合定位中的两种建模方法
GNSS在多传感器融合定位中的两种建模方法转载 2023-02-28 15:53:32 · 627 阅读 · 1 评论 -
实践IC-GVINS: 以惯导为核心的GNSS-Visual-INS组合导航系统
实践IC-GVINS: 以惯导为核心的GNSS-Visual-INS组合导航系统原创 2023-02-27 17:34:27 · 2914 阅读 · 5 评论 -
VINS中IMU预积分推导
VINS 中的 IMU 预积分推导和代码解读转载 2022-10-19 16:22:06 · 665 阅读 · 0 评论 -
IMU误差模型简介及VINS使用说明
IMU误差模型简介及VINS使用说明原创 2022-10-18 17:39:37 · 1833 阅读 · 0 评论 -
关于四元数归一化
关于eigen四元数归一化的使用注意原创 2022-09-16 10:22:44 · 4216 阅读 · 0 评论 -
Ceres Solver实例分析
Ceres Solver结合实例及源码结果分析使用原创 2022-09-14 16:05:57 · 669 阅读 · 0 评论 -
Eigen中三维位姿表示方式以及相互转换
Eigen中三维位姿表示方式以及相互转换原创 2022-08-11 11:22:38 · 1888 阅读 · 1 评论 -
ubuntu18.04运行ORB-SLAM2并用自己的数据集测试
ubuntu18.04运行ORB-SLAM2并用自己的数据集测试原创 2022-06-23 15:37:49 · 1948 阅读 · 0 评论 -
Vins-fusion GPS融合部分测试(自己的数据ZED+RTK)
经过前一段时间的积累,目前暂时成功实现了用自己的数据测试实现Vins-fusion+GPS融合,其实放在数据采集处理上的时间比较多,踩了很多坑,效果在一些部分还不是很好,后期持续优化吧其中黑色轨迹为VIO的输出轨迹,没加回环节点的,同时毛刺还比较多,不平滑,应该是我的双目相机标定的不好,但真是目前我标定得到的最佳数据了,唉~~~紫色轨迹,被绿色基本覆盖的是RTK数据,中间存在丢帧及浮点解,因为围绕大楼,RTK浮点解数据还是偏多的绿色的就是融合后的轨迹啦,其实已经大大优化了VIO的定位情况,但在部分地方原创 2022-04-14 16:34:56 · 1949 阅读 · 6 评论 -
VINS Fusion GPS融合部分
概述VINS Fusion在VINS Mono的基础上,添加了GPS等可以获取全局观测信息的传感器,使得VINS可以利用全局信息消除累计误差,进而减小闭环依赖。局部传感器(如相机,IMU,激光雷达等)被广泛应用于建图和定位算法。尽管这些传感器能够在没有GPS信息的区域,实现良好的局部定位和局部建图效果,但是这些传感器只能提供局部观测,限制了其应用场景:第一个问题是局部观测数据缺乏全局约束,当我们每次在不同的位置运行算法时,都会得到不同坐标系下的定位和建图结果,因而难以将这些测量结果结合起来,形成全局效原创 2022-02-28 18:07:45 · 4715 阅读 · 5 评论 -
坐标系之间的转换关系(ECEF、LLA、ENU)
一 坐标系简介1 ECEF坐标系也叫地心地固直角坐标系。其原点为地球的质心,x轴延伸通过本初子午线(0度经度)和赤道(0deglatitude)的交点。 z轴延伸通过的北极(即,与地球旋转轴重合)。 y轴完成右手坐标系,穿过赤道和90度经度。2 WGS-84坐标系(LLA)也就是也叫经纬高坐标系(经度(longitude),纬度(latitude)和高度(altitude)LLA坐标系)。,全球地理坐标系、大地坐标系。可以说是最为广泛应用的一个地球坐标系,它给出一点的大地纬度、大地经度和大地高程而原创 2021-12-24 11:28:09 · 28248 阅读 · 5 评论 -
导航系统中坐标系介绍
日常开发中常用到八大坐标系:1. 惯性坐标系圆心是地球的原点,Z轴沿地轴方向朝向北极, X轴和Y轴位于赤道平面内,与Z轴满足右手法则,并且X轴和Y轴分别指向两个恒星。也就是说不随着地球的自转而发生变化。它是一个非常固定的坐标系。IMU测量得到的加速度,角速度都是相对于这个坐标系的。特点:xy不动,不随着地球的自转而转动,可以作为地球附近传感器输出的惯性坐标系。在导航中,有:载体在导航系下的角速度 = 载体相对惯性系的角速度 – 导航系相对于惯性系的角速度2. 地球坐标系地球坐标系用oxey原创 2021-12-14 10:36:55 · 6071 阅读 · 0 评论 -
ZED2双目相机运行VINS-FUSION初试
基于ZED2运行VINS-MONO的经验,在运行VINS-FUSION前有几点tips想跟大家分享,应该能在运行的过程中避免一些踩坑吧。TIPs1)关于zed2标定开始使用Kalibr进行相机单目/双目及联合标定,虽然重投影误差最高也就5个像素,但实际使用效果却并不好,故建议大家相机内参还是从ZED2相机发布出的topic获取或可尝试/usr/local/zed/settings文件下的参数文档另,启动ZED2.launch的时候,会有一个相机(一般是左目)和IMU的轴系转换关系Camera-IMU原创 2021-12-03 17:56:43 · 4524 阅读 · 6 评论 -
ZED2运行VINS-MONO初试
上篇博客,已经完成ZED2的标定,获取相关标定参数,将在此基础上进行VINS的相关修改,实现使用ZED2运行VINS-MONO一 VINS-MONO环境搭建因为系统环境从ubuntu18.04更改为ubuntu20.04,故需重新搭建环境,可采用数据集测试环境。具体可根据VINS-MONO实践1)ceres 编译报错 error: ‘integer_sequence’ is not a member of ‘std’在编译一些用到ceres的项目的时候会报错 error: ‘integer_seq原创 2021-11-29 14:56:34 · 1544 阅读 · 5 评论 -
Ubuntu20.04运行Vins-fusion
因已安装ROS noetic,eigen,opencv及ceres等库,这部分环境配置就不细讲,直接下载VINS-FUSION的代码库下载编译cd ~/vins-fusion/srcgit clone https://github.com/HKUST-Aerial-Robotics/VINS-Fusion.gitcd ../catkin_makesource ~/catkin_ws/devel/setup.bash编译时会发现一堆错误,别急,无非就是环境冲突问题,一个个解决1)首先,ROS原创 2021-11-24 17:27:23 · 10337 阅读 · 11 评论 -
ZED2相机标定--双目、IMU、联合标定
为了双目相机及IMU传感器输出数据更准确,对ZED2的相机进行标定,包括相机标定、IMU标定及联合标定。一 安装标定工具1、使用kalibr工具标定ZED2双目相机。2、用imu_utils标定IMU,依次安装编译code_utils、imu_utils。这一部分之前已经安装过,具体过程参考博客:https://blog.csdn.net/xiaojinger_123/article/details/120849737?spm=1001.2014.3001.5501...原创 2021-11-17 17:24:37 · 10490 阅读 · 20 评论 -
Ubuntu20.04安装kalibr
ubuntu18.04之前安装Kalibr基本都是这个代码库https://github.com/ethz-asl/kalibr.git但亲测后,Ubuntu20.04按照以上网站安装方法各种报错,无疑就是环境的改变导致部分依赖无法生效。解决方案,换个能稳定运行的代码库安装。安装过程如下:环境配置sudo apt updatesudo apt-get install python3-setuptools python3-rosinstall ipython3 libeigen3-dev libb原创 2021-11-12 17:49:51 · 5175 阅读 · 8 评论 -
ZED2相机SDK安装使用及ROS下使用
等了快半个月的ZED2相机今天拿到手啦,开始ZED2和VINS之旅吧。ZED2相机实图SDK安装官网上选择与你的Ubuntu系统和CUDA版本对应的SDK版本下载安装。SDK下载chmod +x ZED_SDK_Ubuntu18_cuda10.2_v3.5.0.run./ZED_SDK_Ubuntu18_cuda10.2_v3.5.0.run...原创 2021-11-09 11:01:16 · 10197 阅读 · 9 评论 -
解决NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver
问题解决终端输入:nvidia-smiNVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.Ubuntu20.04的系统,之前使用nvidia-smi就出来详细显卡信息了,但是过了段时间,再使用指令就出现这样的提示,重启之后还是这样。经过查找资料和实践验证,最后确定是:原创 2021-11-05 14:20:37 · 38826 阅读 · 6 评论 -
ubuntu20.04卸载cuda11.4重装cuda11.0
目前CUDA版本为11.4,CUDA版本过高,所以尝试降级,卸载CUDA11.4,安装CUDA11.0。网上教的卸载方式以pl为结尾,都不大对,从11开始卸载方式有变化,具体为:cd /usr/local/cuda-11.4/bin/sudo ./cuda-uninstaller用空格选择所有cuda相关文件,确认,需要一会儿提示成功卸载。最后扫个尾就可以了:sudo rm -rf /usr/local/cuda-11.4安装cuda11.0...原创 2021-11-05 12:17:40 · 10925 阅读 · 2 评论 -
ZED2相机使用环境搭建(Ubuntu20.04+NVIDIA-470驱动+CUDA-11.4)
ZED2相机标定及运行VINS-monohttps://blog.csdn.net/weixin_44401286/article/details/109641268ZED2相机标定https://blog.csdn.net/weixin_43424002/article/details/116328340?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.no_search_link&原创 2021-11-03 16:37:42 · 6103 阅读 · 0 评论 -
ubuntu18.04安装NVIDIA驱动的心酸(失败)经历及解决方法(换系统成功)
问题描述:终端查看显卡驱动~$ nvidia-smiNVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.查看CUDA,还在~$ nvcc -Vnvcc: NVIDIA (R) Cuda compiler driverCopyright (c) 2005-2017原创 2021-11-02 16:17:28 · 13949 阅读 · 6 评论 -
Ubuntu系统查看显卡型号返回NVIDIA Corporation [10DE:1F97]
因Ubuntu系统安装nvidia驱动后(通过ubuntu自带的软件 更新以及通过PPA源时也是失败的)导致无法进入登陆界面,怀疑是版本不对应导致,故打算从官网下载对应的包去安装。手动安装invidia驱动时,需要我们先查询自己的显卡型号,然后再到官网下载对应版本的驱动。查询显卡型号的方法,网上大部分给出的是,在ubuntu命令行执行lspci | grep -i vga或者lshw -numeric -C display命令,就能打印出显卡型号了,如下所示:我的双系统ubuntu18.04版本原创 2021-10-25 10:45:18 · 3491 阅读 · 0 评论 -
ZED2相机说明书
经前期调研及摄像头参数对比,最终选择STEREOLABS公司的ZED2双目立体摄像头作为后期VINS系统的硬件平台,下面先给出ZED2 的产品说明书。原创 2021-10-19 15:47:04 · 10792 阅读 · 0 评论 -
紧耦合的激光视觉惯导SLAM系统:论文笔记_S2D.66_ICRA_2021_LVI-SAM
目录 基本情况 摘要 介绍 完整的激光视觉惯导SLAM系统 A. 系统概述 B. 视觉惯导系统 C.雷达惯导系统 实验 基本情况 题目: LVI-SAM: Tightly-coupled Lidar-Visual-Inertial Odometry via Smoothing and Mapping出处: ICRA_2021 Shan T, Englot B, Ratti C, et al. LVI-SAM: Tig...转载 2021-10-18 15:54:27 · 809 阅读 · 0 评论 -
视觉SLAM方案分类及选型调研
经典视觉SLAM框架SLAM至今已历经三十多年的研究,这里给出经典视觉SLAM框架,这个框架本身及其包含的算法已经基本定型,并且已经在许多视觉程序库和机器人程序库中提供。我们把整个视觉 SLAM 流程分为以下几步:1)传感器信息读取。在视觉 SLAM 中主要为相机图像信息的读取和预处理。如果在机器人中,还可能有码盘、惯性传感器等信息的读取和同步。2)视觉里程计 (Visual Odometry, VO)。视觉里程计任务是估算相邻图像间相机的运动,以及局部地图的样子,VO 又称为前端(Front En原创 2021-10-11 10:23:17 · 2214 阅读 · 0 评论 -
evo评测VINS-MONO---代码修改、数据格式转换、数据测试
数据格式(data formal):TUM/EuRoC/Kitti数据集格式转换原创 2021-09-13 15:52:06 · 5974 阅读 · 7 评论 -
SLAM测评工具---evo安装与使用
evo简介evo是一个很好的测评工具,它可以根据时间戳将轨迹进行对齐,同时可以将不同尺度的轨迹按照你指定的标准轨迹进行拉伸对齐,并可以算出均方差等评定参数,用于测评slam算法性能evo安装1.切换python版本新版evo的安装只支持python 3.6+Ubuntu18.04默认python2.7(catkin_make支持python2.7版本,即默认版本),需要切换sudo update-alternatives --config python2.安装pip3sudo apt in原创 2021-09-06 16:08:07 · 3053 阅读 · 1 评论 -
VSLAM技术选型
1. 小觅深度版(120°)特点:1.采用“双目+IMU”的核心硬件方案组合:内置六轴IMU传感器,利用双目和IMU数据的互补性,能为视觉以及空间移动算法的研发提供数据校正,IMU与图像的同步精度高达0.05ms。2.内置芯片:小觅双目摄像头深度版内置芯片,可以在设备端完成双目深度计算,无需依赖终端的GPU/CPU,本身便可直接输出双目深度图像。3.IR主动光:内置两颗红外(IR)探测器,针对室内场景优化,可以有效增加白墙和无纹理物体的识别精度,同时可在黑暗环境中使用,为室内环境的识别和视觉SLA.原创 2021-09-02 17:58:36 · 762 阅读 · 0 评论 -
主流VIO框架分析及VINS部分解析
本文为搜集的资料整理:C0包含位姿和运动信息;对于T0来说,不仅受rv10、rv11的视觉影响,也受rb01的IMU的影响。上述方式繁琐,故引入因子图,便于思路梳理和理解。引入因子图是为了方便宏观的把握SLAM的框架和问题是如何建立的,避免陷入到一些细节里,被细节迷惑。f2去掉后引入相关约束...原创 2021-09-02 15:04:11 · 896 阅读 · 0 评论 -
VINS-MONO理论学习---紧耦合后端非线性优化
基于滑动窗的紧耦合后端非线性优化:将视觉约束、IMU约束、闭环约束放到一个大的目标函数中进行非线性优化,求解出滑动窗口中所有帧的PVQ、bias等。在视觉约束和IMU约束中,基本思想是找到优化状态向量,然后通过视觉残差和IMU测量残差分别对状态向量求导,获得视觉和IMU预积分的Jacobian和协方差矩阵。一、VIO残差函数的构建1、需要优化的状态向量:状态向量包括滑动窗口内的所有相机状态(位置P、旋转Q、速度V、加速度偏置ba、陀螺仪偏置bw)、相机到IMU的外参、所有3D点的逆深度:第一个式原创 2021-08-13 17:32:26 · 946 阅读 · 0 评论 -
VINS-MONO代码解读---回环检测与重定位、四自由度位姿图优化
本文主要介绍VINS的闭环检测重定位与位姿图优化部分,作为系列文章的最后一节。回环检测的关键就是如何有效检测出相机曾经经过同一个地方,这样可以避免较大的累积误差,使得当前帧和之前的某一帧迅速建立约束,形成新的较小的累积误差。由于回环检测提供了当前数据与所有历史数据的关联,在跟踪算法丢失后,还可以利用重定位。主要分为两部分:回环检测与重定位、4-DOF的位姿图优化:第一部分主要是为了通过回环检测找到当前帧和候选帧的联系,并通过简单的紧耦合重定位将局部滑动窗口移动与过去的位姿对齐。第二部分是为了保证基于原创 2021-08-11 15:02:22 · 1626 阅读 · 0 评论 -
VINS-MONO代码解读---基于滑动窗口的紧耦合后端非线性优化 optimization()+滑动窗slideWindow()
本讲是VINS最核心部分了,前面经历了1)视觉跟踪feature_tracker、IMU预积分integrationBase类;2)初始化中SFM纯视觉估计滑动窗中所有帧的位姿和3D路标点深度、SFM与IMU预积分松耦合对齐求解初始化参数。在完成前面的初始化环节后,本节将进行第3部分,基于滑动窗的紧耦合后端非线性优化:将视觉约束、IMU约束、闭环约束放到一个大的目标函数中进行非线性优化,求解出滑动窗口中所有帧的PVQ、bias等。在视觉约束和IMU约束中,基本思想是找到优化状态向量,然后通过视觉残差原创 2021-08-11 10:36:29 · 3157 阅读 · 0 评论 -
VINS-MONO代码解读---初始化2:视觉惯性松耦合初始化 visualIntialAlign()
visualIntialAlign()函数视觉惯性联合初始化这篇文章主要集中在讨论视觉部分和IMU部分之间的关联,如何对两部分进行对齐,使得系统完成初始化。目录理论:视觉IMU对齐流程其中,步骤1的在线Cam到IMU的外参标定qbc 参考之前的博客。1、陀螺仪零偏bg标定2、优化 速度v、重力g和尺度初始化s。我们得到了陀螺仪偏置bias的初始校准,需要将陀螺仪偏置bg代入到IMU预积分重新计算预积分3、重力矢量修正代码流程bool Estimator::visualInitial原创 2021-08-09 14:52:18 · 973 阅读 · 1 评论 -
VINS-MONO代码解读---初始化1:视觉SFM详解 processImage()+initialStructure()
Estimator类视觉部分流程图本文将重点讲解ProcessImage()函数1.检查两帧的视差判断是否为关键帧f_manager.addFeatureCheckParallax()在feature_manager.cpp中已经解释2.IMU预积分 IntegrationBase 在 IMU离散中值预积分中解释3.在线标定外参 CalibrationExRotation 在线Cam到IMU的外参标定 InitialEXRotation类 中已经解释本节将重点介绍初始化部分。/** *原创 2021-08-09 10:46:05 · 1049 阅读 · 1 评论