bag包提取深度图和rgb图

发布时间:2022-11-17 SLAM PYTHON
ROS通过一个叫CvBridge的功能包,将获取的图像数据转换成OpenCV的格式,OpenCV处理之后,传回给ROS进行图像显示(应用) from cv_bridge import CvBridgebridge = CvBridge() 使用imgmsg_to_cv2可将图像从ROS信息格式转换成cv格式; 使用cv2_to_imgmsg 将数据转成ROS信息格式; 参考:https://blog.csdn.net/qq_33328642/article/details/123380984 将R...

LIO-SAM

发布时间:2022-11-22 C++ OPENCV SLAM 人工智能
代码整体架构 LIO-SAM/ config/ params.yaml # 参数配置 include/ utility.h # 读取参数,提供一些工具方法 launch/ run.launch # 启动文件 src/ featureExtraction.cpp # 点云计算曲率,提取特征(角点、平面点) imageProjection.cpp # 激光点云运动畸变校正 im...

使用zed相机录制视频

发布时间:2022-11-17 ROS SLAM
准备工作: 连接地面站,设置本地ip: 192.168.1.55   255.255.255.0                             TCP连接:192.168.1.11  1、启动roscore 2、启动zed相机的launch文件 roslaunch zed_wrapper zed.launch 3、rostopic list  查看是否有 ZED 的 left 和 right 的 image_raw 主题 /zed/zed_node/left/image_rect_color/z...

动态SLAM论文归纳

发布时间:2022-11-16 # 动态SLAM SLAM 1024程序员节 人工智能
持续更新,持续更新 2022 Multi-modal Semantic SLAM for Complex Dynamic Environments 作者:Han Wang, Jing Ying Ko and Lihua Xie, Fellowcode:https://github.com/wh200720041/MMS_SLAM视频:https://www.youtube.com/watch?v=tmWCrredJGIpaper:https://arxiv.org/pdf/2205.04300.pdf框架...

gRPC

发布时间:2022-11-25 RPC SLAM
欢迎访问我的博客首页。   gRPC,即 google Remote Procedure Call,谷歌远程过程调用。 1. 编译安装   我们在 Windows 上使用 MinGW 编译,MinGW 的配置见这里。cartogher 用的是 async_grpc,它在 grpc 的基础上实现了异步功能,因此先安装 grpc 再安装 async_grpc。   gRPC 更新很快,async_grpc 更新很慢。使用较新的 gRPC 编译 async_grpc 会出现 use of delete...

《视觉slam十四讲》ch5相机与图像学习笔记(1)—— 实践部分imageBasics代码讲解

发布时间:2022-11-18 SLAM C语言 C++ 计算机视觉 OPENCV UBUNTU
    第五章的ch5/imageBasics例程相对来说比较简单,代码内容包括读取图像文件,输出图像信息,遍历图像,图像的直接复制以及利用clon函数复制等。介绍一下其中的干货。 目录 1.关于int main(int argc,char** argv)中argc,argv参数的解释 2.关于 cv::waitKey(0)的解释: 3.图像类型 4.计时方式 5.复制图像的方式: 6. 图像像素遍历方式 1.关于int main(int argc,char** argv)中argc,argv参数的解释...

学习笔记之——视觉三维重建

发布时间:2022-11-18 SLAM 移动机器人 人工智能 学习 ROS
本博文为本人学习三维重建的学习笔记,本博文的大部分内容来源于网络各类教程博客,本博文仅供本人学习记录用 理论学习 视觉三维重建=定位定姿+稠密重建+surface reconstruction/mesh+纹理贴图  SLAM与三维重建的区别(SLAM和三维重建有什么区别? - 知乎): sfm对应是无序的图像,而SLAM一般是有序的sfm不需要标定,而SLAM一般要sfm是offline,SLAM是online的三维重建的应用场景  colmap是目前state-of-the-art的sfm与mvs...

多传感器标定

发布时间:2022-11-28 OPENCV SLAM 人工智能
相机与激光雷达标定 opencv中默认的坐标系 autoware雷达相机联合标定程序的结果是Camera->Lidar。 坐标变换 #include<pcl/common/eigen.h>tf::StampedTransform transform;tf::Matrix3x3 m(transform.getRotation());m.getRPY(rollCur, pitchCur, yawCur);Eigen::Affine3f transNow;pcl::getTransforma...

《视觉slam十四讲》学习笔记——ch7实践部分 比较opencv库下的ORB特征的提取和手写ORB的区别

发布时间:2022-11-24 SLAM 经验分享 OPENCV VSCODE UBUNTU
    在学习了《视觉slam十四讲》第七章视觉里程计的相关知识后,运行了里面的基于opencv库函数的ORB特征点提取和匹配的代码。在使用代码自带的模板图片时,出来的效果很好,特征点匹配成功率很高,一方面原因是两张模板照片拍摄角度相差不大,于是我自己拍摄了两张照片,一张是正面照片,一张是侧面照片,再次使用该代码进行特征点匹配时发现误匹配的概率有点高。以下是基于opencv库函数的ORB特征点匹配和基于原理手写ORB特征点的匹配,两者的区别。 目录 1.两种方法在效果上的差异 2.两种方法的在具体代码函数...

机器人控制算法十之运动学与动力学:DH建模与雅可比矩阵详解

机器人控制算法十之运动学与动力学:DH建模与雅可比矩阵详解 简介: 正运动学建模 逆运动学求解 动力学-雅可比矩阵 … 1.正运动学DH建模 1.1 标准DH建模方法 关于标准DH建模的详细说明,可参考:一文带你完全掌握机器人DH参数建模(详细步骤+实例+代码) 例:Puma560: 6自由度关节机器人,6个关节都是旋转副;前3个关节用于确定手腕参考点的位置,后3个关节用于确定手腕的方位 (a, α, d, θ). ...

【算法系列】卡尔曼滤波算法

发布时间:2022-11-19 ROS 算法 算法系列 SLAM
系列文章目录 ·【算法系列】卡尔曼滤波算法 ·【算法系列】非线性最小二乘求解-直接求解法 ·【算法系列】非线性最小二乘求解-梯度下降法 ·【算法系列】非线性最小二乘-高斯牛顿法  ·【算法系列】非线性最小二乘-列文伯格马夸尔和狗腿算法  文章目录 系列文章 文章目录 前言 一、通俗解释 二、数学推导 1.问题建模 2.推导过程 (1)数学准备 (2)具体推导 3.实际应用 总结 前言 如果信号中的某些频段混入了噪声,可以用低通滤波器、高通滤波器等对这些噪声进行过滤,但当信号中要是混入了白噪声这种没有...

SLAM学习笔记(一)

发布时间:2022-11-27 学习 SLAM 人工智能
相机按照工作方式不同,分为: 单目相机(Momocular):结构简单、成本低双目相机(Stereo):双目相机的距离估计是比较左右眼的图像获得的。双目与多目的缺点是配置与标定较为复杂,其深度量程和精度受双目的基线与分辨率所限,而且视差的计算非常消耗资源,需要使用GPU和FPGA设备加速,才能实时输出整张图像的距离信息。现有条件下,计算量是双目的主要问题之一。深度相机(RGB-D):其最大特点是可以通过红外结构或Time-of-Flight(ToF)原理,像激光传感器那样,通过主动向物体发射光并接收返回的...

ubuntu1804配置OAK-D相机的ROS以及depthai_ros环境

发布时间:2022-11-16 计算机视觉 算法 SLAM
自己的环境: ubuntu18.04、ros-melodic 1下载depthai安装包 这里下载的目前最新的版本:depthai_2.19.1_amd64.deb 下载地址:地址 2安装 参考这个链接:https://docs.oakchina.cn/en/latest/pages/Advanced/ros_test_depthai_cpp_library.html#ros1-noetic-depthai-ros 2.1更新 usb 规则 echo 'SUBSYSTEM==usb, ATTRS{idVe...

使用OAK-D相机跑ORB-SLAM3算法遇到的问题总结

发布时间:2022-11-16 计算机视觉 算法 SLAM 人工智能
问题1:相机内外参数的获取 在启动相机驱动后使用命令行查看 rostopic echo -n 1 /stereo_publisher/left/camera_inforostopic echo -n 1 /stereo_publisher/right/camera_info -n 1指消息只打印1次 参数如下 D:相机的畸变系数,在SLAM中一般用到前5位[k1,k2,p1,p2,k3] K:相机内参矩阵 R:相机旋转矩阵 P:相机投影矩阵,矩阵中第4个数字59.60097983474698对应ORB-S...

PTAM安装

发布时间:2022-11-17 C++ 自动驾驶 SLAM
一个注释修改版本PTAM github 我编译完成了这个版本。需要一提的是,我用ubuntu18安装并没有通过,总是报错而且解决不了。最终是用了虚拟机的ubuntu16才运行成功。 运行自己的数据集需要修改一个地方,是system.cc文件里,system初始化方法那里。(当然前提是你要下载好数据集。) System::System() //: mpVideoSource(new VideoSourceV4L()) : mpVideoSource(new VideoSourceDataSet(...

北科天绘 16线3维激光雷达开发教程

发布时间:2022-11-16 LINUX SLAM 激光雷达 ROS UBUNTU
前言 本教程使用的是三维激光雷达为北科天绘的R-Fans-16,采用网口连接传输数据,9-36V供电。 Ubuntu版本为20.04,Ros版本为Neotic。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/8cea3b6c311e44369460ceff7a15b847.png#pic_center 一、配置IP地址 激光雷达出厂的IP地址为192.168.0.3,所以需要将自己的电脑IP设置在同一网段,如192.168.1.111 子网掩码为255.255....

《视觉SLAM十四讲》ch7视觉里程计1学习笔记(1)—— 视觉里程计1理论部分

发布时间:2022-11-18 SLAM 经验分享 学习 计算机视觉 UBUNTU
        前段时间学习了高博的《视觉SLAM十四讲》第7讲——视觉里程计1,这一块主要介绍了视觉SLAM前端(视觉里程计)部分中的特征点法。其中我在我的另一篇博客中比较了基于opencv库函数和手写ORB匹配算法的差别,有兴趣的可以去看看,欢迎评论共同学习。以下提供链接: 《视觉slam十四讲》学习笔记——ch7实践部分 比较opencv库下的ORB特征的提取和手写ORB的区别         在这篇博客中,我就不过多的介绍ORB特征点匹配的相关概念了,主要介绍如何在得到匹配好的点对后,根据点对来估...

LIVOX HAP激光雷达使用方法

发布时间:2022-11-17 自动驾驶 LINUX SLAM UBUNTU
  一、Livox HAP介绍          Livox HAP 由 Livox 团队耗时两年精心打造,是 Livox 首款面向智能辅助驾驶市场研发的车规级激光雷达。HAP 于 2021 年在全新自建的车规级智能制造中心进行批量生产,可满足 74 项严苛的车规可靠性要求。HAP 已成功为小鹏汽车、一汽解放等商乘用车项目批量供货。                   小鹏 D55 所搭载的车载量产版性能参数相比 HAP 将进一步优化,得益于三棱镜的加成,HAP 探测距提升至 150 米(针对 10% 反...

【算法系列】非线性最小二乘求解-直接求解法

发布时间:2022-11-19 机器人 算法 SLAM 线性代数 算法系列
系列文章目录 ·【算法系列】卡尔曼滤波算法 ·【算法系列】非线性最小二乘求解-直接求解法 ·【算法系列】非线性最小二乘求解-梯度下降法 ·【算法系列】非线性最小二乘-高斯牛顿法  ·【算法系列】非线性最小二乘-列文伯格马夸尔和狗腿算法  文章目录 系列文章 文章目录         前言         算法推导         总结 前言 SLAM问题常规的解决思路有两种,一种是基于滤波器的状态估计,围绕着卡尔曼滤波展开;另一种则是基于图论(因子图)的状态估计,将SLAM问题建模为最小二乘问题,...

Eigen线性代数库学习大全

发布时间:2022-11-17 C++ 线性代数 LINUX SLAM
        Eigen是C++的线性代数库,能提供有关矩阵的线性代数运算,还包含解方程等功能。 目录 0、Eigen库结构导图 1、Eigen库安装 2、Eigen库矩阵基础(参考) 2.1 矩阵模板函数        2.2 类型 2.3 赋值与访问 2.4 调整与操作  2.4 运算 2.5 解方程  3、Eigen库的向量基础 3.1 类型与存储 3.2 访问与赋值 3.3 运算 4、Eigen/Geometry(参考文章) 4.1 旋转向量:Eigen::AngleAxis 4.2 欧拉角:E...

ORB-SLAM2源码阅读(一)-----ORB特征提取

发布时间:2022-11-18 人工智能 SLAM PYTHON
前言 1.构建图像金字塔 2. 特征点数量的分配计算 2.1如何分配每一层提取的特征点数量。 2.2什么是FAST角点,如何提取? 3. Oriented FAST,旋转角度计算 4. 计算Rotation-Aware BRIEF, rBRIEF 4.1 BRIEF描述子 4.2 Steered BRIEF 5. 使用四叉树均匀分布特征点---ORB-SLAM对ORB特征的改进 前言 ORB-SLAM的一大创新点在于系统的所有模块都使用了同一种特征:ORB,这样构造的系统更加...

Cartographer从小白到跑通再到调试 天坑错误集(持续更新)

发布时间:2022-11-18 算法 SLAM
一、雷达篇 rviz运行无法显示雷达点云图 for frame [horizontal_laser_link]: frame [horizontal_laser_link] does not exist  解决办法:  将世界坐标该改成[horizontal_laser_link]就ok了 配置好雷达后运行启动文件后自动打开rivz 找到该启动文件(后缀为.launch)在其中找到 <node name=rviz pkg=rviz type=rviz args=-d $(find lsn10)/...

【IEEE2017】RL:机器人库:一种面向对象的机器人应用程序的方法

RL:机器人库:一种面向对象的机器人应用程序的方法 摘要: 摘要:我们讨论了机器人库(RL)的架构和软件工程原理。在机器人系统、研究项目、工业应用和教育的需求的驱动下,我们确定了相关的设计需求,并提出了一种管理硬件和实时的方法,为强大的运动学和动态计算提供了一个用户友好的、面向对象的界面,并支持各种平台。从2004年开始经过十多年的开发,并评估了体系结构的许多变体,我们讨论了当前版本中库组件的设计选择。 RL官网:https://www.roboticslibrary.org/ 关于RL库的使...

Xavier(8):Xavier使用速腾聚创激光雷达运行a-loam算法部分报错与解决方案

发布时间:2022-11-19 算法 SLAM C++ 激光雷达 A-LOAM
左边是a-loam效果,右边是激光雷达点云。 本机使用Nvidia xavier镜像,为ubuntu18.04、ros-melodic、opencv4 a-loam经过简单的源码修改可以适用于opencv4.x 1 速腾聚创激光雷达驱动 报错:Project ‘cv_bridge’ specifies ‘/usr/include/opencv’ as an include dir CMake Error at /opt/ros/melodic/share/cv_bridge/cmake/cv_bri...

机器人C++库(12) Robotics Library 之路径规划算法:PRM、RRT、EET算法

机器人C++库(12)Robotics Library 之路径规划算法:PRM、RRT、EET算法 RL库的运动规划(rl::plan)模块集成了以下经典的路径规划算法: PRM算法:概率路线图算法 RRT算法:快速探索随机树算法 EET算法:搜索树算法-基于采样:https://blog.csdn.net/yohnyang/article/details/127783244 另外,补充一个开源运动规划库OMPL:https://ompl.kavrakilab.org/index.h...

ORB-SLAM2 ---- Initializer::ReconstructH函数

发布时间:2022-11-19 ORB-SLAM2 SLAM 人工智能
目录 1.函数作用 2.函数解析  2.1 调用函数解析 2.2 Initializer::ReconstructH函数总体思路 2.2.1 代码 2.2.2 总体思路解析  3.Initializer::CheckRT 3.1 函数作用 3.2 构造函数  3.3 代码  3.4 流程解析  3.4.0 初始化参数 3.4.1 计算初始化两帧的投影矩阵  3.4.2  三角化恢复三维点Initializer::Triangulate 3.4.3  遍历所有的特征点对检查三维点是否合适 3.4.4 最后...

A-LOAM源码编译运行

发布时间:2022-11-18 ROS 其他 SLAM UBUNTU
运行A-LOAM问题记录 ceres问题 需要重新安装ceres库,十四讲中的ceres库太老,不适用。从官网下载安装稳定版的ceres库。点击latest stable release下载,不建议适用git克隆(太慢)。在编译ceres库的时候,程序卡死,建议多编译几次,安装官网教程来,并行数选择 2 2 2,太高会卡死。catkin_make编...

如何解读fast-lio2中的 `IKFoM` 中的宏定义

发布时间:2022-11-17 自动驾驶 SLAM C++ 智能车 开发语言
如何解读fast-lio2中的 `IKFoM` 中的宏定义 - 掘金现象 : 1) build_manifold.hpp 中存在大量的宏定义 2) 它们大量使用到了Boost库的预处理(PP: preprocessor)模板元库的宏定义, 例如 BOOST_PP_SEQ_ENUM 宏用来将一个序列转换成数组, BOOST_PP_SEQ_TRANSFORM_S 宏则用来产生一个序列. 3) 这些宏层层嵌套引用, 最终组成了若干个更大的宏定义, 例如: MTK_BUILD_MANIFOLD 4) 这给阅读 f...

【算法系列】非线性最小二乘-高斯牛顿法

发布时间:2022-11-19 算法 算法系列 SLAM 人工智能
  系列文章目录 ·【算法系列】卡尔曼滤波算法 ·【算法系列】非线性最小二乘求解-直接求解法 ·【算法系列】非线性最小二乘求解-梯度下降法 ·【算法系列】非线性最小二乘-高斯牛顿法 ·【算法系列】非线性最小二乘-列文伯格马夸尔和狗腿算法  文章目录 系列文章 文章目录 前言 一、牛顿法 二、高斯-牛顿法 1.由牛顿法推导 2.直接展开推导 总结 前言 SLAM问题常规的解决思路有两种,一种是基于滤波器的状态估计,围绕着卡尔曼滤波展开;另一种则是基于图论(因子图)的状态估计,将SLAM问题建模为最小二乘问题...

【算法系列】非线性最小二乘-列文伯格马夸尔和狗腿算法

发布时间:2022-11-19 算法 算法系列 SLAM PYTHON
  系列文章目录 ·【算法系列】卡尔曼滤波算法 ·【算法系列】非线性最小二乘求解-直接求解法 ·【算法系列】非线性最小二乘求解-梯度下降法 ·【算法系列】非线性最小二乘-高斯牛顿法 ·【算法系列】非线性最小二乘-列文伯格马夸尔和狗腿算法 文章目录 系列文章 文章目录 前言 一、列文伯格-马夸尔算法 1.LM算法  2.LMF算法 二、狗腿算法 总结 前言 SLAM问题常规的解决思路有两种,一种是基于滤波器的状态估计,围绕着卡尔曼滤波展开;另一种则是基于图论(因子图)的状态估计,将SLAM问题建模为最小二乘...

【算法系列】非线性最小二乘求解-梯度下降法

发布时间:2022-11-19 算法 SLAM 线性代数 矩阵 算法系列
 系列文章目录 ·【算法系列】卡尔曼滤波算法 ·【算法系列】非线性最小二乘求解-直接求解法 ·【算法系列】非线性最小二乘求解-梯度下降法 ·【算法系列】非线性最小二乘-高斯牛顿法  ·【算法系列】非线性最小二乘-列文伯格马夸尔和狗腿算法  文章目录 系列文章 文章目录 前言 一、梯度下降法(GD) 二、最速下降法(SD) 总结 前言 SLAM问题常规的解决思路有两种,一种是基于滤波器的状态估计,围绕着卡尔曼滤波展开;另一种则是基于图论(因子图)的状态估计,将SLAM问题建模为最小二乘问题,而且一般是非线性...

ubuntu18安装ORBSLAM1

发布时间:2022-11-20 开发语言 BASH LINUX SLAM
首先需要注意的是,本文编译的ORBSLAM1不是ORBSLAM2。 按照官方流程来。先添加ROS环境变量,然后分别在第三方文件下编译好各个库 然后进行编译。 depends on non-existent package 'opencv2' and rosdep claims that it is not a 文档中也有说,将manifest.xml中的 注释掉。 : error: static assertion failed: YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YO...

《视觉SLAM十四讲》ch7视觉里程计1学习笔记(3)——实践部分三角测量代码解析

发布时间:2022-11-18 SLAM 经验分享 学习 计算机视觉 OPENCV UBUNTU
      在这篇文章中,记录的是我对《视觉SLAM十四讲》第七讲——视觉里程计1实践部分中,三角测量代码的理解以及相关函数的解释。       理论方面的知识可以见我另一篇博客: 《视觉SLAM十四讲》ch7学习笔记(1)—— 视觉里程计1_sticker_阮的博客-CSDN博客_视觉slam十四讲ch7       关于2D-2D点求解相机位姿可参考我另一篇博客: 《视觉SLAM十四讲》ch7学习笔记(2)——实践部分对数约束求解相机运动的代码解析_sticker_阮的博客-CSDN博客 1.代码解...

《视觉SLAM十四讲》ch8视觉里程计2学习笔记(1)——直接法的理论部分

发布时间:2022-11-18 SLAM C++ 学习 计算机视觉 经验分享
        在这篇博客中,主要介绍视觉里程计2,即直接法的相关知识。 目录 1.直接法的引出      2.光流法 3.直接法  4.特征点法、直接法以及光流法的比较 1.直接法的引出             涉及的知识包括:特征点法的缺点、以及解决这些问题的思路方法。  2.光流法         涉及的知识点包括:光流法的分类、稀疏光流中的L-K算法的介绍、多层光流的提出。 3.直接法         涉及的内容包括:直接法的目标、已知条件、未知量、方法思想、分类等  直接法的思路以流...

《视觉slam十四讲》ch5相机与图像学习笔记(3)——实践部分 RGB-D相机代码解释及相关函数介绍

发布时间:2022-11-26 SLAM C++ 学习 OPENCV UBUNTU
        在这篇博客中,主要介绍《视觉SLAM十四讲》第五讲的实践部分——RGB-D代码详解。关于imageBasics的代码可见我另一篇博客: 《视觉slam十四讲》ch5学习笔记(1)—— 实践部分imageBasics代码讲解_sticker_阮的博客-CSDN博客_视觉slam十四讲代码         关于双目视觉的代码可见我另一篇博客: 《视觉slam十四讲》ch5 学习笔记(2)——实践部分双目视觉代码讲解_sticker_阮的博客-CSDN博客 1.代码详解         代码框架...

slam定位练习笔记(二)

发布时间:2022-11-17 学习 SLAM
本篇文章主要是学习笔记三里面的一些疑问和对于它们的理解,还有在关于一些创新点的练习。 问题部分 第一个问题:front_end部分与front_end_flow之间的关系? front_end_flow和front_end之间的关系类似前一个版本的node文件和front_end之间的关系,而front_end和front_end_flow之间是通过在front_end_flow.hpp中写一个智能指针来调用front_end的模块。 //front_end_flow.hpp std::shared...

slam定位学习笔记(四)

发布时间:2022-11-20 学习 SLAM
本篇是学习任乾大佬,这篇文章的学习笔记。主要内容是将不同传感器数据使用时间进行同步。 在多传感器融合的工程设计中,最初的一步就是将各个传感器的时间进行同步。多传感器数据的时间同步是多传感器信息融合的必备条件之一,但由于各个传感器独立封装并按照自己的时钟基准运行,往往采样频率也不尽不同,这些将导致采样数据时间上不同步。针对这一问题有两个解决方案。分别是硬同步和软同步。 硬同步是指定制传感器,使得多个传感器能在同一时刻触发采样,例如多个传感器安装于同一个晶振下工作。主要使用gnss进行授时,传感器自身集成了G...

高精地图_语义地图_众包地图相关论文笔记

1.20220618_LT-mapper: A Modular Framework for LiDAR-based Lifelong Mapping 20213d-Lidar构建long-term地图分为 SLAM模块(每个session的点云地图通过关键帧构建,对不同session的关键帧进行anchor node检测,基于anchor帧构建的闭环因子实现Multi-session之间offset的修正,在保证单个session pose最优的情况下,Multi-session之间的pose也是对齐...

《视觉slam十四讲》ch5相机与图像 学习笔记(2)——实践部分双目视觉代码讲解

发布时间:2022-11-18 LINUX SLAM 经验分享 学习 计算机视觉 UBUNTU
    在这篇文章中对《视觉slam十四讲》中的ch5实践部分——stereoVision代码进行解析,做一下学习记录。 1.实现效果     先展示一下这部分最后的效果图 最后会出来两张图,上面这张是归一化后的视差图,下面那张是点云图。 1.1 出现的问题     (1)高博提供的代码中的CMake部分是不全的,可以按照我以下的代码修改: cmake_minimum_required(VERSION 2.8)set(CMAKE_BUILD_TYPE Release)# 添加c++ 11标准支持se...

Life-long Mapping

0.引言 主要参考自某某学院的激光slam课程。 1.Lifelong Mapping 的概念和应用 在长时间的建图过程中,基于图优化的 SLAM 的方法存在以下问题:PoseGraph 中的节点随着机器人走过的距离越来越多,以至于求解规模不断增大,影响优化效率。 而 Lifelong Mapping 的基本思想是实现机器人在进行导航过程中进行建图,使得 PoseGraph 的规模不能随着运行轨迹的增长而增加,而是和建图面积相关联。 实现 Lifelong Mapping 的思路是定期删除 PoseGra...

Vins-Fusion初始化——三角化triangulate

继上一篇博文Vins-Fusion初始化位姿——3D-2D:PNP求解当前帧位姿,本文继续介绍Vins-Fusion双目初始化时,三角化triangulate。 一、三角化triangulate 三角化triangulate是根据特征点在多个相机下的投影恢复出特征点的3D位置。 二、三角化求解流程 1.遍历当前帧特征点,若该特征点深度为正,说明已经三角化了。 // 已经三角化过if (it_per_id.estimated_depth > 0) continue; 2.双目首帧三角化 三角化是根据多...

Vins-Fusion初始化-初始化陀螺零偏Bgs

基本思想:在得到IMU-Camera外参旋转之后,将camera的旋转通过外参变换到IMU系下,理论上这个旋转应该与IMU系下对应的旋转一致,差为0,但是由于误差(角速度偏置目前还是个估计值)的存在,不会为0,那么构建最小二乘问题,最小化旋转差量,优化角速度偏置。 一、零偏求解理论基础 1.根据基本思想可将其转化为最小二乘问题,如下: 根据预备知识,其高斯牛顿的解为: 其中,f(x)为残差,J为残差对优化变量的雅克比。此处优化变量为bg,故J为旋转残差对角速度偏置的雅克比。 Vins-Fusion ...

3D-2D:PnP

发布时间:2022-12-03 3D SLAM
Perspective-n-Point 是求解3D到2D点对运动的方法。它描述了已知n个3D空间点及其投影位置时,如何估计相机的位姿。 2D-2D的对极几何方法需要8个或8个以上的点对(以八点法为例),且存在初始化、纯旋转和尺度的问题。然而,如果两张图像中的特征点的3D位置已知,那么最少只需3个点对(以及至少一个额外点验证结果)就可以估计相机运动。 直接线性变换 已知一组3D点的位置,以及它们在某个相机中的投影位置,求该相机的位姿。这个问题也可以用于求解给定地图和图像时的相机状态问题。如果把3D点看成在另...

eigen旋转矩阵与欧拉角的转换

发布时间:2022-11-23 SLAM 线性代数 矩阵 UNITY EIGEN学习
欧拉角转旋转矩阵(zyx) // 使用eigen库,欧拉角转旋转矩阵 Eigen::Matrix3d rotation_matrix1, rotation_matrix2; rotation_matrix1 = Eigen::AngleAxisd(euler_angle[2], Eigen::Vector3d::UnitZ()) * Eigen::AngleAxisd(euler_angle[1], Eigen::Vector3d::UnitY()) * Eigen::AngleAxisd(eule...

Bezier曲线与B-Spline曲线

发布时间:2022-11-28 算法 SLAM 人工智能
微分几何基础 微分集合是用微分的方法来研究曲线的局部性质,如曲线的弯曲程度等。 一条可以用参数表示的三维曲线是一个有界点集,可以写成一个带参数的、连续的、单值的数学函数: { ...

期望E与高斯分布的期望

发布时间:2022-11-19 数学 SLAM 算法
目录 1. 期望定义 2. 期望性质 2.1 用期望定义方差 / 标准差 方差定义 标准差定义  方差的表示——离散型: 方差的表示——连续型: 方差的性质 3. (一元)高斯分布定义 4. (一元)高斯分布的性质 5. 二维随机向量的数学期望E与方差σ 参考 1. 期望定义 2. 期望性质 其中,第2条性质: E(EX) = EX:对变量X的期望再求期望,等于X的期望;同理,对 的期望再求期望,依然还是X的期望。 对于第4条性质,注意条件是X,Y 相互独立,若不独立则不成立:比如 , 即 期望有...

跑slam数据集小笔记(持续更新中)

发布时间:2022-11-24 自动驾驶 SLAM
1.光照变化的SLAM数据集ICL-NUIM地址:https://cvg.ethz.ch/research/illumination-change-robust-dslam/ 其数据集格式和tum相同 2.只有图片跑orb-slam2时需要: (1)生成rgb.txt和depth.txt两个图片索引文件https://blog.csdn.net/u010128736/article/details/53079964 (2)生成rgb和depth一起的索引 python associate.py rgb.t...

认真看代码ORB_SLAM3===2 优化器

发布时间:2022-11-22 算法 SLAM
/***单帧优化***/ 单帧的位姿的优化 PoseOptimization 位姿优化,纯视觉时使用。@param pFrame 待优化的帧 int Optimizer::PoseOptimization(Frame *pFrame) 当前帧位姿优化 PoseInertialOptimizationLastKeyFrame 使用上一关键帧+当前帧的视觉信息和IMU信息,优化当前帧位姿 Step 1:创建g2o优化器,初始化顶点和边 Step 2:启动多轮优化,剔除外点 Step 3:更新当前帧位姿、...

认真看代码ORB_SLAM3===1

发布时间:2022-11-21 C++ SLAM 开发语言
1、从Cmake开始 ①  realsense模块可以选装 ②  C++11  改 C++17            error: ‘decay_t’ is not a member of ‘std’;             ‘slots_reference’ that depend on a template parameter ③   examples太多,选择一个就好了,我选的是【mono_kitti】 ④   C++11 改成了 C++17,Examples里面需要用std::chron...

下载 | 101篇NeRF优质论文推荐(含项目代码)

发布时间:2022-11-21 深度学习 计算机视觉 SLAM 人工智能
神经辐射场(NeRF)是一种能够表达复杂三维场景的精巧表征方式,在结合立体渲染后可以非常逼真的从图片中恢复复杂的现实场景,用于合成新视角、内容生成等下游任务。   近两年来,NeRF在计算机视觉领域引起了极大的关注,在计算机视觉顶会(CVPR/ICCV/ECCV)中相关成果越来越多,例如在2021年,CVPR上关于NeRF的论文不到10篇,2022年已经超过了50多篇,其他会议亦是如此。目前,NeRF在照片编辑、3D表面提取、大型/城市规模3D表示和视图合成中找到了应用。 2022年,NeRF的影响巨大...