- 博客(40)
- 资源 (19)
- 问答 (1)
- 收藏
- 关注
原创 TUM数据集创建和rosbag包转换成TUM数据集问题
打开realsense-ros/realsense2_camera/launch/rs_d435_camera_with_model.launch文件,将align_depth的值改为true。这里我们使用D435i/D455来录制ROSBAG包,也可以使用其他的相机。首先安装realsense-ros,录制rosbag。完成后对齐时间,associate.py代码见资源。更改tiqu.py文件中的路径。
2024-09-19 09:20:16 284
原创 关于视觉SLAM中尺度的理解和尺度的确定
在纯视觉SLAM中存在尺度不确定的问题,而在视觉和IMU融合系统中很好的解决了这一问题。一直困扰我的是如何去理解SLAM中的尺度?尺度到底代表了什么?
2022-08-02 14:52:13 1917 1
原创 R3LIVE论文阅读
R3LIVE: A Robust, Real-time, RGB-colored, LiDAR-Inertial-Visual tightly-coupled state Estimation and mapping package作者:Jiarong Lin and Fu Zhang(香港大学)视频:视频链接开源代码:https://github.com/hku-mars/r3live论文地址:论文原文文章概述R3LIVE 是一个面向各种应用的多功能系统,不仅可以作为实时机器人应用的SLAM系
2022-05-09 15:07:54 677
原创 LVI-SAM学习笔记3:clear()和shrink_to_fit()函数
void freeCloudInfoMemory() { cloudInfo.startRingIndex.clear(); cloudInfo.startRingIndex.shrink_to_fit(); // 从原来最大容量减少到现在所需要的容量(释放数组的容量) cloudInfo.endRingIndex.clear(); cloudInfo.endRingIndex.shrink_to_fit(); ...
2022-05-06 15:30:03 634 1
原创 LVI-SAM学习笔记2:相机模型
本文参考知乎Alvin一路向东的《由粗到精学习LVI-SAM》专栏图片截图自参考链接:Alvin一路向东1. 针孔相机模型u和v是观测值,z始终为1,我们可以认为这是由于单目相机丢失了路标点P的深度信息,通过像素坐标和相机内参,我们只能还原回P在归一化平面上的投影坐标[X/Z,Y/Z,1]。2.畸变模型路标点从世界坐标系到像素坐标系转化的过程:点从世界坐标系→相机坐标系→归一化平面对归一化平面上的点计算径向畸变和切向畸变:畸变后的点投影到像素平面,得到像素坐标:...
2022-05-05 16:34:05 304
原创 LVI-SAM学习笔记1:激光雷达点云去畸变原理
本文参考知乎Alvin一路向东的《由粗到精学习LVI-SAM》专栏1.为什么会产生畸变与相机不同,相机的曝光时间都很短,每一帧之间的时间间隔很短,而且上一帧最后一个像素与当前帧第一个像素也没有连续关系,通常不考虑运动畸变。而激光雷达不同,激光雷达形成一帧点云,至少需要激光从一侧扫描到另一侧若干遍,而且激光雷达每一帧形成的时间都比较长,因此此过程中位姿变化也比较大,导致出现的点云与真实世界中差别很大,所以需要点云去畸变。2.点云去畸变原理上一帧点云的最后一个点就是当前帧点云的第一个点,这是点云去畸变的
2022-05-05 15:57:14 1862
原创 evo轨迹曲线设置指令evo_config的使用
下面举例几个比较常用的命令:evo_config set plot_seaborn_style whitegrid 这是修改背景,其中whitegrid可以替换成darkgrid, whitegrid, dark, white, ticksevo_config set plot_seaborn_palette bright这是修改线条,其中bright可以替换成deep, muted, bright, pastel, dark, colorblindevo_config set plot_fo
2022-03-12 21:00:00 1464
原创 evo_ape
evo_ape指令是用来绘制绝对轨迹误差,其指令形式为:evo_ape tum data.tum vio_loop.txt -r trans_part -v -as -p --save_results ./1.zip-r表示ape所基于的姿态关系-v表示verbose mode,详细模式指令其他功能可以使用以下命令查看:evo_ape tum --help...
2022-03-12 20:13:52 1342
原创 evo_rpe 指令介绍及使用
evo_rpe指令是用来绘制相对轨迹误差,其指令形式为:evo_rpe tum data.tum XXX.txt -r trans_part --delta 1 --delta_unit m -v -as -p --save_results ./ours_stereo.zip–delta 1 --delta_unit m 表示的是每一米比较一次相对真实轨迹的轨迹误差–save_results ./ours_stereo.zip 是将比较结果保存在./ours_stereo.zip中-r表示ape所
2022-03-12 17:23:10 2039
原创 evo_traj 绘制某个方向上的二维轨迹命令
evo_traj 绘制某个方向上的二维轨迹命令:evo_traj tum XXX.txt --plot_mode xy/xz/yz -p用以上命令来绘制自己生成的.txt文件的运行轨迹,如果需要与真是轨迹作对比,则使用以下命令:evo_traj tum XXX.txt --ref=uwb-ground-truth.txt --plot_mode xy/xz/yz -p -a-a是让自己生成的轨迹与参考轨迹对齐,-p是绘制轨迹指令。...
2022-03-12 17:09:36 1328
原创 视觉惯性里程计Visual–Inertial Odometry(VIO)概述
本文主要来自于博客园关于知乎的讨论。链接如下:Visual–Inertial Odometry(VIO)
2022-01-05 15:13:07 873
原创 VINS-Fusion初始化------IMU与Camera外参旋转标定,IMU角速度偏置标定,重力向量、单目尺度标定
本文基于VINS-Fusion解释VIO系统的初始化,包括在线标定IMU-Camera的外参旋转,IMU角速度偏置,重力方向,单目尺度。单目初始化相比于双目,多一个构建SFM问题优化位姿、3D点的过程。详细标定内容参考知乎卢涛的文章,链接如下初始化连接...
2021-12-19 16:12:02 1174
原创 euroc数据集.csv文件转化为.tum文件
虽然我们使用的是euroc数据集,但evo只支持tum格式的绘制,它提供了euroc格式转tum格式的工具。 首先我们打开数据集的mavo/state_groundtruth_estimate0/文件夹,会发现有一个文件: data.csv。这是一个euroc格式的文件,我们首先要把他转成tum格式。输入以下命令:evo_traj euroc data.csv --save_as_tum...
2021-11-30 11:32:17 2027
原创 相对位姿误差(RPE)和绝对轨迹误差(ATE)
1. 相对位姿误差(RPE)用于计算两个相同时间戳上相机位姿的真实值与SLAM系统的估计值之间每隔一段时间位姿变化量之间的差值,也可以理解为位姿真实值与与估计值的实时比较。该标准适合于估计系统的漂移。2. 绝对轨迹误差(ATE)直接计算相机位姿的真实值与SLAM系统的估计值之间的差值,首先将真实值与估计值的时间戳对齐,然后计算每对位姿之间的差值,适合于评估SLAM系统的性能。参考链接:参考文章...
2021-10-05 16:35:33 5199
原创 机器人领域顶会顶刊
国际顶级期刊International Journal of Robotics ResearchAdvanced RoboticsAutonomous RobotsIEEE Robotics and Automation MagazineIEEE Transactions on RoboticsJournal of Field RoboticsJournal of Intelligent and Robotic SystemsRoboticaRobotics and Autonomous
2021-09-22 21:49:46 3102
原创 ubuntu16.04 详细安装 ROS Kinetic 过程
文章目录1.设置sources.list2.设置公钥(key)3. 更新package4. 安装ROS kinetic完整版5.初始化rosdep6. 配置ROS环境7. 安装依赖项8.测试ROS是否安装成功1.设置sources.listsudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'2.设
2021-09-15 23:10:24 544 5
原创 emplace_back()和push_back()的区别
emplace_back() 和 push_back() 的区别,就在于底层实现的机制不同。push_back() 向容器尾部添加元素时,首先会创建这个元素,然后再将这个元素拷贝或者移动到容器中(如果是拷贝的话,事后会自行销毁先前创建的这个元素);而 emplace_back() 在实现时,则是直接在容器尾部创建这个元素,省去了拷贝或移动元素的过程。所以emplace_back()显然要比push_back()效率高。所以可以优先选用emplace_back()。(C++ 11 及以上版本)...
2021-09-12 18:09:03 783
原创 LIO-SAM源码解读:总体架构篇
参考文章链接:知乎 卢涛关于LIO-SAM的论文解读,请查看 论文解读本文旨在对源代码进行阅读学习,这里记录下来,希望可以帮到有需要的同学,如有错误的地方,请您批评指正。目录LIO-SAM源码解读(一):ImageProjectionLIO-SAM源码解读(二):FeatureExtractionLIO-SAM源码解读(三):TransformFusion 和 IMUPreintegrationLIO-SAM源码解读(四):mapOptimization整体流程代码结构图:因子图:
2021-09-09 16:15:01 11692 1
原创 LIO-SAM源码解读(四):mapOptimization
写在前面功能简介:1.scan-to-map匹配:提取当前激光帧特征点(角点、平面点),局部关键帧map的特征点,执行scan-to-map迭代优化,更新当前帧位姿;2.关键帧因子图优化; 关键帧加入因子图,添加激光里程计因子、GPS因子、闭环因子、执行因子图优化,更新所有关键帧的位姿;3.闭环检测:在历史关键帧中找距离相近,时间相隔较远的帧设为匹配帧,匹配帧周围提取局部关键帧地图,同样执行scan-to-map匹配,得到位姿变换,构建闭环因子数据,加入因子图优化。订阅:1.订阅当前激光帧点云信
2021-09-09 15:19:06 1558
原创 LIO-SAM源码解读(三):TransformFusion 和 IMUPreintegration
写在前面TransformFusion类功能简介:主要功能是订阅激光里程计(来自MapOptimization)和IMU里程计,根据前一时刻激光里程计,和该时刻到当前时刻的IMU里程计变换增量,计算当前时刻IMU里程计;rviz展示IMU里程计轨迹(局部)。订阅:1、订阅激光里程计,来自MapOptimization;2、订阅imu里程计,来自ImuPreintegration。发布:1、发布IMU里程计,用于rviz展示;2、发布IMU里程计轨迹,仅展示最近一帧激光里程计时刻到当前时刻
2021-09-09 11:39:03 1099 1
原创 LIO-SAM源码解读(二):FeatureExtraction
写在前面FeatureExtraction 点云特征提取功能简介:对经过运动畸变矫正之后的当前帧激光点云,计算每个点的曲率,进而提取角点、平面点(用曲率的大小进行判定)。订阅:1、订阅当前激光帧运动畸变矫正后的点云信息,来自ImageProjection。发布:1.发布当前激光帧提取特征之后的点云信息,包括的历史数据有:运动畸变矫正,点云数据,初始位姿,姿态角,有效点云数据,角点点云,平面点点云等,发布给MapOptimization;2.发布当前激光帧提取的角点点云,用rviz展示;3.
2021-09-09 10:41:44 611
原创 LIO-SAM源码解读(一):ImageProjection
写在前面ImageProjection 激光运动畸变校正功能简介:1、利用当前激光帧起止时刻间的imu数据计算旋转增量,IMU里程计数据(来自ImuPreintegration)计算平移增量,进而对该激光帧每一时刻的激光点进行运动畸变矫正(利用相对激光帧起始时刻的位姿增量,变换当前激光点到起始时刻激光点的坐标系下,实现矫正);2、同时利用IMU数据的姿态角(RPY,roll,pitch,yaw)、IMU里程计数据的位姿,对当前帧激光位姿进行粗略初始化。订阅:1、订阅原始的IMU数据;2、订阅
2021-09-09 09:34:59 1427
原创 catkin_make报错——c++: internal compiler error: 已杀死 (program cc1plus)的解决方法
1.问题描述2.原因分析出现这种情况的原因是内存不够用(编译时打开的线程太多),导致出现上述编译失败的情况。3.问题解决为了保险起见,一次性解决所有问题,我们使用单线程来运行(运行时间会比较长)运行指令:catkin_make -j14.运行结果...
2021-09-02 10:39:12 1326
原创 学习笔记---EPnP算法的理解
个人觉得在目前Epnp算法已经被集成到OpenCV中库函数里面,就没必要再去手动将公式都推到一遍,因此求解的细节不需要死记,我们只要知道每一步是在干什么就可以了。除非你要研究和改进算法本身,那就直接去阅读原论文是最好的。其实EPNP最重要的不是某个东西怎么求解,而是为什么要求解某个东西。学过SLAM14讲的人应该知道,求解2D-3D的匹配问题主要基于PNP算法,求解PnP算法的主要方式大致是直接线性变换(DLT),P3P,EPnP,UPnP以及非线性优化方法。EPnP算法的流程为:1)先选择控制点,根
2021-08-31 17:19:05 4122
原创 ROS功能包中文件夹的主要功能
1.config:放置功能包中的配置文件,由用户创建,文件名可以不同;2.include:放置功能包中需要用到的头文件;3.scripts:放置可以运行的python脚本;4.src:放置需要编译的C++代码;5.launch:放置功能包中的所有启动文件;6.msg:放置功能包自定义的消息类型;7.srv:放置功能包自定义的服务类型;8.action:放置功能包自定义的动作类型;9.CMakeList.txt:编译器编译功能包的规则;10.package.xml:功能包清单。...
2021-08-31 13:31:19 885
原创 Ubuntu常用解压文件命令
针对七种常用的文件后缀,在ubuntu中常用的解压命令如下: 1. *.tar文件:tar -xvf file.tar 2. *.tar.gz文件:tar -xzvf file.tar.gz 3. *.gz文件:gzip -d FileName.gz 4. *.bz文件:bzip -d FileName.bz2 5. *.tar.ba2文件:tar jxvf FileName.tar.bz2 6. *.zip文件:unzip FileName.zip 7. *.rar文件:unrar e F
2021-08-31 13:14:19 1892
原创 R2LIVE论文翻译: A Robust, Rea-time, LiDAR-Inertial-Visual tightly-coupled state Estimator and mapping.
文章目录写在前面写在前面文章参考:3D视觉工坊论文原文:论文原文链接演示视频:
2021-08-30 11:16:42 1945
原创 最大后验估计(MAP)------贝叶斯学派的法宝
本文讲一讲贝叶斯学派的法宝------最大后验估计(MAP)学派背景目前在统计分析领域存在两大学派,即频率学派和贝叶斯学派,它俩的争吵由来已久。目前国内大部分的医学统计学教材都是基于频率学派的,但近年来贝叶斯学派也越来越多的被大家提及。所谓的频率学派,就是一切从客观掌握的数据来理解概率;而贝叶斯学派则认为概率是有先验和后验的,我们要计算的是后验概率,这个后验概率又是以先验概率为基础的。频率学派认为总体的参数是既定不变的、客观存在的,我们需要从样本的统计量出发去估算总体的参数,而且所抽取的样本数量越大
2021-08-29 21:26:26 3467
原创 流形(Manifold)学习的理解
写在前面文章参考 夏天/isummer的博客园 ,参考链接:https://www.cnblogs.com/icmzn/p/11082509.html1.关于流形的理解流形学习的观点:我们所能观察到的数据实际上是由一个低维流形映射到高维空间上的,即这些数据所在的空间是“嵌入在高维空间的低维流形”。由于数据内部特征的限制,一些高维中的数据会产生维度上的冗余,实际上只需要比较低的维度就能唯一地表示。直观上来讲,一个流形好比是一个 d 维的空间,在一个 m 维的空间中 (m > d) 被扭曲之后的结
2021-08-29 16:41:59 1169 2
原创 VIL-SLAM论文翻译:Stereo Visual Inertial LiDAR Simultaneous Localization and Mapping
文章目录写在前面摘要1.引言2.相关工作3.系统概述4.视觉前端5.双目视觉惯性里程计A. IMU预积分因子B. 非结构化视觉因子C. 优化和边缘化6. 激光建图A. LiDAR扫描去畸变B. 帧到地图配准7. LiDAR增强的闭环A. 回环检测B. 回环约束C. 全局位姿图优化D. 重定位8. 实验结果A.平台和软件B.测试和结果C. EuRoCMAV数据集测试9.结论写在前面写作参考: robot L开源代码: 开源代码链接论文原文: 原文链接摘要SLAM是移动和空中机器人的一项基本任务
2021-08-27 16:21:36 1564
原创 【LVI-SAM论文全文翻译】: LVI-SAM: Tightly-coupled Lidar-Visual-Inertial Odometry via Smoothing and Mapping
文章目录写在前面摘要一、引言二、完整的激光视觉惯导SLAM系统A.系统概述B. 视觉惯导系统C.雷达惯导系统三、实验A.消融研究B. Jackal DatasetC. Handheld Dataset四、总结写在前面本文参考:惊鸿一博作者简介:LVI-SAM是Tixiao Shan的最新力作,Tixiao Shan是Lego-loam(基于激光雷达里程计的SLAM框架)和Lio-sam(基于惯性-雷达紧耦合的SLAM框架)的作者,LVI-SAM是Tixiao Shan最新开源的基于视觉-激光-惯导
2021-08-26 19:23:52 12508
原创 【LIO-SAM论文全文翻译】:LIO-SAM: Tightly-coupled Lidar Inertial Odometry via Smoothing and Mapping
文章目录摘要一、引言二、相关工作三、基于SAM的雷达惯性里程计A.系统概述B. IMU预积分因子C. 雷达里程计因子D. GPS因子总结摘要我们提出一个框架用于通过SAM紧耦合雷达惯性里程计LIO-SAM,可实现高精度、实时的移动机器人轨迹估计和地图构建。LIO-SAM是基于因子图构建雷达惯性里程计,可以将大量的相对测量值、绝对测量值、回环等多种不同数据作为因子融入雷达惯性里程计系统中。通过imu预积分获得的运动估计可以用于点云的偏斜矫正和用于雷达里程计优化的初始值。获得的雷达里程计结果又可以反过来
2021-08-25 23:26:52 5444 1
原创 【VINS-Mono论文全文翻译】:VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator
文章目录摘要一、引言二、相关工作三、概述四、数据预处理A.视觉处理前端B.IMU预积分五、估计器初始化(松耦合初始化提供优化初始值和状态)A.滑动窗口(Sliding Window)纯视觉SfMB.视觉惯性联合校准六、紧耦合单目VIOA.公式B.IMU测量残差C.视觉测量残差(视觉重投影误差部分)D.边缘化E.摄像机速率状态估计的纯运动视觉惯性BAF.IMU前向传递以达到IMU速率状态估计七、重定位A.回环检测B.特征恢复C.紧耦合重定位八、全局位姿图优化和地图重用A.四个累积漂移方向B.在位姿图中添加关键
2021-08-23 22:03:05 2134 1
原创 多传感器融合的SLAM综述
1.单一传感器SLAM面临的问题单一传感器会面临很多棘手的场景:在纹理少、四季天气变化、光照剧烈变化、车载条件IMU退化、长走廊、机器人剧烈运动等情况下,如下图所示。在这些复杂场景中,原来很好用的单一传感器的SLAM方法在往往会无用,很难发挥出应有的效果,导致建图失败。这些很棘手的场景会给我们带来实际应用中的困惑,采用单一的传感器会面临这个问题,所以多源融合这个领域很热门,被产业界所认可。2.多传感器的融合方案下图选自浙江大学刘勇教授在第二届全国SLAM技术论坛中的报告。从上面多元融合的框架
2021-08-21 16:15:35 6921
原创 VINS论文翻译: VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator
VINS论文翻译: VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator说明港科大的VINS-Mono作为目前开源VIO项目,是研究视觉与IMU紧耦合的必读算法,很多多传感器融合的框架都是基于VINS进行改进的.为更好地进行学习,本人在几篇VINS论文解读与翻译的参考与改进下,分享了博主Manii对全文的阅读与翻译,(https://blog.csdn.net/qq_41839222/article/d
2021-08-15 10:04:07 295
原创 添加一行内容解决rosdep update超时问题
1.在进行sudo rosdep init 前 手动创建/etc/ros/rosdep/sources.list.d文件夹2.打开桌面终端,输入:sudo gedit /etc/hosts3.在打开的文件中添加一行:151.101.108.133 https://ghproxy.com/https://raw.githubusercontent.com 如下图所示4.最后在终端运行sudo rosdep initrosdep update...
2021-06-15 21:22:17 176 2
原创 rosdep update 超时
台式机 ROS安装 rosdep update 超时问题快速解决办法rosdep update 出错的原因是近期国内的Github Raw的可用IP越来越少,导致我们很难连接到网站https://raw.githubusercontent.com,进而rosdep update会一直出现超时问题.解决这个问题的,可以通过中间代理网站,比如网站https://ghproxy.com/支持github的资源代理,非常好用.第1步:应用ghproxy的代理服务更改rosdep资源下载函数。在/usr/lib
2021-06-03 09:22:18 608
R2live 建图遇到的漂移现象
2021-10-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人