- 博客(51)
- 资源 (19)
- 问答 (1)
- 收藏
- 关注
原创 DROID-SLAM论文解读
DROID-SLAM是一种基于深度学习的视觉SLAM系统,支持单目、双目和RGB-D相机,其核心优势在于高精度与鲁棒性。该方法通过深度神经网络实现了端到端的运动估计与场景重建,在连续视频流场景中表现出色,尤其在动态环境(如雨天)下仍能保持稳定性能。其视觉前端采用特征点检测与匹配技术,结合后端的光束法平差(Bundle Adjustment)优化,可实时估计相机位姿并构建稠密地图。然而,DROID-SLAM的设计存在一定局限性。
2025-04-28 10:05:50
613
原创 如何使用3D高斯分布进行环境建模
使用3D高斯分布来进行建模,关键在于通过引入不确定性描述来提高建图的鲁棒性和精度。与传统点云表示相比,3D高斯分布提供了一种更为灵活和有效的方式来处理空间数据,能够通过协方差矩阵表示点的空间不确定性,帮助优化SLAM过程中的定位和地图更新。
2025-02-22 16:30:00
1441
原创 基于辐射场的SLAM算法的理解
基于辐射场的SLAM算法利用了辐射场的概念,将光照、纹理和几何信息结合在一起,为环境建图和定位提供了更加精细和鲁棒的表示。这种方法通过考虑每个点的辐射特性,不仅能够实现高精度的三维建图,还能更好地处理复杂的光照条件和视角变化,从而增强了SLAM系统在真实环境中的应用能力。
2025-02-22 13:57:45
530
原创 未来SLAM的研究方向和热点
SLAM技术正朝着更高效、更智能、更鲁棒的方向发展,结合深度学习、多传感器融合和优化算法等技术,未来的SLAM系统将在动态环境、大规模环境和复杂应用中发挥更重要的作用。随着自动驾驶、机器人、AR/VR等应用的普及,SLAM的研究前景非常广阔,热点方向主要集中在提高精度、效率、实时性以及适应复杂环境的能力上。
2025-02-21 14:53:08
814
原创 YOLOV7的复现过程
YOLOv7 复现的过程其实是比较直接的,官方提供的代码已经很清晰并且易于理解。你可以根据需求进行调整,选择合适的模型结构和训练策略来优化你的应用场景。
2025-02-20 16:09:59
330
原创 YOLOv5与YOLOv7在性能上的一些差异
YOLOv5 和 YOLOv7 都是非常受欢迎的目标检测模型,都是基于 YOLO (You Only Look Once) 系列的,目标是实时且高效的物体检测。虽然两者的名字接近,但它们在设计、精度和性能上有些差异。
2025-02-20 16:03:22
475
原创 动态SLAM研究相关数据集介绍
动态SLAM(Simultaneous Localization and Mapping with Dynamic Objects)是传统SLAM(同步定位与地图构建)的一个扩展,专注于处理动态环境中的物体。在动态环境下,SLAM不仅需要构建地图和定位,还要识别和处理动态物体(如人、车辆等)。因此,相关的数据集通常包含动态环境下的传感器数据(如激光雷达、相机、IMU等),并且标注了动态物体的运动轨迹。
2025-02-20 09:58:55
1026
原创 运行轨迹的生成方法
生成运行轨迹的过程通常涉及从传感器数据中提取物体的位置信息,然后通过物体检测、数据关联、跟踪算法、轨迹平滑等步骤将这些位置信息转换为连续的轨迹。轨迹生成算法的选择与应用场景密切相关,依赖于目标的动态特性、传感器的类型、计算资源和实时性要求。
2024-12-20 08:26:36
830
原创 对象级SLAM与物品级SLAM的理解
维度 对象级SLAM 物品级SLAM建模粒度 以大尺度的静态对象为主(如家具、墙壁) 以具体物品实例为主(如杯子、书本)语义信息 泛化语义级别 细粒度实例级别动态物体处理 较少考虑 更关注应用场景 室内导航、布局分析 物品抓取、人机交互关联与趋势。
2024-11-22 14:55:54
176
原创 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
618
原创 关于视觉SLAM中尺度的理解和尺度的确定
在纯视觉SLAM中存在尺度不确定的问题,而在视觉和IMU融合系统中很好的解决了这一问题。一直困扰我的是如何去理解SLAM中的尺度?尺度到底代表了什么?
2022-08-02 14:52:13
2365
原创 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
790
原创 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
715
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
371
原创 LVI-SAM学习笔记1:激光雷达点云去畸变原理
本文参考知乎Alvin一路向东的《由粗到精学习LVI-SAM》专栏1.为什么会产生畸变与相机不同,相机的曝光时间都很短,每一帧之间的时间间隔很短,而且上一帧最后一个像素与当前帧第一个像素也没有连续关系,通常不考虑运动畸变。而激光雷达不同,激光雷达形成一帧点云,至少需要激光从一侧扫描到另一侧若干遍,而且激光雷达每一帧形成的时间都比较长,因此此过程中位姿变化也比较大,导致出现的点云与真实世界中差别很大,所以需要点云去畸变。2.点云去畸变原理上一帧点云的最后一个点就是当前帧点云的第一个点,这是点云去畸变的
2022-05-05 15:57:14
2276
原创 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
1837
原创 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
1503
原创 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
2396
原创 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
1550
原创 视觉惯性里程计Visual–Inertial Odometry(VIO)概述
本文主要来自于博客园关于知乎的讨论。链接如下:Visual–Inertial Odometry(VIO)
2022-01-05 15:13:07
1094
原创 VINS-Fusion初始化------IMU与Camera外参旋转标定,IMU角速度偏置标定,重力向量、单目尺度标定
本文基于VINS-Fusion解释VIO系统的初始化,包括在线标定IMU-Camera的外参旋转,IMU角速度偏置,重力方向,单目尺度。单目初始化相比于双目,多一个构建SFM问题优化位姿、3D点的过程。详细标定内容参考知乎卢涛的文章,链接如下初始化连接...
2021-12-19 16:12:02
1417
原创 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
2441
原创 相对位姿误差(RPE)和绝对轨迹误差(ATE)
1. 相对位姿误差(RPE)用于计算两个相同时间戳上相机位姿的真实值与SLAM系统的估计值之间每隔一段时间位姿变化量之间的差值,也可以理解为位姿真实值与与估计值的实时比较。该标准适合于估计系统的漂移。2. 绝对轨迹误差(ATE)直接计算相机位姿的真实值与SLAM系统的估计值之间的差值,首先将真实值与估计值的时间戳对齐,然后计算每对位姿之间的差值,适合于评估SLAM系统的性能。参考链接:参考文章...
2021-10-05 16:35:33
5866
原创 机器人领域顶会顶刊
国际顶级期刊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
3791
1
原创 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
583
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
823
原创 pcl配准-加速配准时间的方法
链接:正态分布法介绍关于如何使用正态分布算法来确定两个大型点云之间的刚体变换,正态分布变换算法是一个配准算法,它应用于三维点的统计模型,使用标准最优化技术来确定两个点云间的最优匹配,因为其在配准的过程中不利用对应点的特征计算和匹配,所以时间比其他方法比较快。...
2021-09-11 15:44:35
47
1
原创 LIO-SAM源码解读:总体架构篇
参考文章链接:知乎 卢涛关于LIO-SAM的论文解读,请查看 论文解读本文旨在对源代码进行阅读学习,这里记录下来,希望可以帮到有需要的同学,如有错误的地方,请您批评指正。目录LIO-SAM源码解读(一):ImageProjectionLIO-SAM源码解读(二):FeatureExtractionLIO-SAM源码解读(三):TransformFusion 和 IMUPreintegrationLIO-SAM源码解读(四):mapOptimization整体流程代码结构图:因子图:
2021-09-09 16:15:01
12991
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
1844
原创 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
1309
1
原创 LIO-SAM源码解读(二):FeatureExtraction
写在前面FeatureExtraction 点云特征提取功能简介:对经过运动畸变矫正之后的当前帧激光点云,计算每个点的曲率,进而提取角点、平面点(用曲率的大小进行判定)。订阅:1、订阅当前激光帧运动畸变矫正后的点云信息,来自ImageProjection。发布:1.发布当前激光帧提取特征之后的点云信息,包括的历史数据有:运动畸变矫正,点云数据,初始位姿,姿态角,有效点云数据,角点点云,平面点点云等,发布给MapOptimization;2.发布当前激光帧提取的角点点云,用rviz展示;3.
2021-09-09 10:41:44
821
原创 LIO-SAM源码解读(一):ImageProjection
写在前面ImageProjection 激光运动畸变校正功能简介:1、利用当前激光帧起止时刻间的imu数据计算旋转增量,IMU里程计数据(来自ImuPreintegration)计算平移增量,进而对该激光帧每一时刻的激光点进行运动畸变矫正(利用相对激光帧起始时刻的位姿增量,变换当前激光点到起始时刻激光点的坐标系下,实现矫正);2、同时利用IMU数据的姿态角(RPY,roll,pitch,yaw)、IMU里程计数据的位姿,对当前帧激光位姿进行粗略初始化。订阅:1、订阅原始的IMU数据;2、订阅
2021-09-09 09:34:59
1772
原创 catkin_make报错——c++: internal compiler error: 已杀死 (program cc1plus)的解决方法
1.问题描述2.原因分析出现这种情况的原因是内存不够用(编译时打开的线程太多),导致出现上述编译失败的情况。3.问题解决为了保险起见,一次性解决所有问题,我们使用单线程来运行(运行时间会比较长)运行指令:catkin_make -j14.运行结果...
2021-09-02 10:39:12
1602
原创 学习笔记---EPnP算法的理解
个人觉得在目前Epnp算法已经被集成到OpenCV中库函数里面,就没必要再去手动将公式都推到一遍,因此求解的细节不需要死记,我们只要知道每一步是在干什么就可以了。除非你要研究和改进算法本身,那就直接去阅读原论文是最好的。其实EPNP最重要的不是某个东西怎么求解,而是为什么要求解某个东西。学过SLAM14讲的人应该知道,求解2D-3D的匹配问题主要基于PNP算法,求解PnP算法的主要方式大致是直接线性变换(DLT),P3P,EPnP,UPnP以及非线性优化方法。EPnP算法的流程为:1)先选择控制点,根
2021-08-31 17:19:05
4439
原创 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
1064
原创 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
1951
R2live 建图遇到的漂移现象
2021-10-01
TA创建的收藏夹 TA关注的收藏夹
TA关注的人