自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 ORB-SLAM3 Docker 环境搭建指南 (ROS Noetic)

本项目旨在 Ubuntu 22.04 (对应 ROS2 Humble) 宿主机上,通过 Docker 容器运行基于的 ORB-SLAM3。该方案完美解决了宿主机 ROS 版本不兼容、OpenCV/Pangolin 依赖冲突以及 GUI 显示问题。

2025-11-28 17:18:00 430

原创 ShellCrash 安装与配置踩坑与解决日志

本文档基于 Debian/Ubuntu 系统,记录了 ShellCrash 的安装、配置,以及解决“配置后无法代理”和“端口冲突”等关键问题的详细过程。

2025-11-11 12:39:39 1464

原创 ubuntu备份和扩容

Timeshift会要求选择将系统恢复到哪个分区,选择之前安装ubuntu的那个分区。打开timeshift软件——选择"RSYNC"——后续保持默认设置到"完成"在软件首页点击"创建",等待备份完成,完成创建,之后会自动更新备份。(3)选择"Try Ubuntu"而不是"Install Ubuntu"(4)进入后在终端输入"sudo Gparted",此时就可以重新分区。(5)分区后需要保存,在"编辑"中选择应用,这个过程有点慢。(2)使用U盘重启,重启是频繁按F2(华硕的开机自启键)

2025-09-11 11:08:23 296

原创 surful地图

Surfel”是“Surface Element”(表面元素)的缩写。因此,Surfel地图不是用一堆离散的点(点云)或一个个小方块(体素地图)来描述三维世界,而是用大量带有方向的、微小的“圆形面片”来拼接成整个环境的表面。可以把它想象成用无数个小圆片贴纸来覆盖一个物体的表面,每一张贴纸就是一个Surfel。位置 (Position),表示该Surfel中心点在三维空间中的坐标。法向量 (Normal),一个单位向量,表示该Surfel所在平面的朝向。半径 (Radius)

2025-08-14 21:45:12 1021

原创 MVS多视图立体视觉

其核心假设是,如果一个三维空间点的坐标是正确的,那么将这个三维点分别投影到所有能看到它的相机视图中时,所得到的像素颜色、纹理应该是高度相似或“一致”的。这使得它们在处理弱纹理区域(如白墙)、反光表面等传统方法难以处理的场景时,表现出更强的性能,并且速度更快,是当前研究的主流方向。:就像我们的左眼和右眼看到的物体位置有微小差异一样,两个固定位置的相机会以不同的视角捕捉到同一个三维点。的照片,通过自动寻找和匹配图像间的特征点,反向推算出每个相机的位姿,并同时生成一个稀疏的3D点云(场景的大致骨架)。

2025-08-14 12:02:05 1428

原创 TSDF地图

是可以的,但是如果只使用单目深度估计(例如DepthNet或者基于运动视差(ORB-SLAM))计算出的深度精度是比较低的,同时单目的尺度不确定,不适合实时建图。对于TSDF地图来讲,rgb值不是必须的,对于导航、避障场景只需要几何机结构不需要表面纹理信息。体素的概念可以类比与像素,只不过像素是二维,体素是三维。计算tsdf值和rgb值的前提条件是已知每帧的深度图,根据体素x的位置找到对应物体表面位置P,然后计算两点间的深度差值即为。,意思是体素x处的rgb值等于对应RGB图像中x位置的rgb值。

2025-08-12 10:01:35 407

原创 双目立体视觉

点云的坐标是三维空间中的物理位置(单位:米/毫米),必须通过深度 Z才能将像素坐标 (u,v)转换为三维坐标 (X,Y,Z)。​(3)​生成方法​​: 通过立体匹配算法(如SGBM、ELAS、深度学习网络)计算左右图像的视差图。立体匹配的本质是计算左右图像中对应点的水平偏移量(即视差 d),这是双目系统的原生输出,无法跳过。​:使用标定得到的畸变系数(k1​,k2​,p1​,p2​)和OpenCV的。​​校正后​​:对应点必定位于右图的同一水平扫描线上(仅需水平方向搜索)。步骤1:构造虚拟旋转矩阵。

2025-08-11 17:33:27 1530

原创 kalibr标定D435i相机

由于imu_utils 依赖 code_utils,所以先把code_utils放在工作空间的src下面,进行编译。ps: 每项之所以有四个,第一个是平均,后面三个是对应x y z三个轴的,我们只需要取角速度和加速度的里面平均部分的值就可以了。2.2 在 kalibr的文件夹下打开终端,运行:(根据自己需要的ros版本选择16_04/18_04/20_04)编译命令:先编译 imu_utils ,再编译 code_utils。标定板静止,D435i移动,四个维度移动,前后左右上下及倾斜。

2025-07-31 06:01:54 1120

原创 卡尔曼滤波 (Kalman Filter):在不确定中寻找最优答案的艺术

所以,卡尔曼滤波到底是什么?它是一个最优状态估计算法。它通过一个递归的过程,不断地融合“基于模型的预测”和“充满噪声的测量”,来估计一个动态系统(如移动的汽车、飞行的火箭、变化的股票价格)的真实状态。它是在去噪,因为它通过融合过程,滤除了测量值中的随机噪声。但它不仅仅是去噪,它还能处理模型本身的不完美,并对系统的未来状态做出预测。它在几乎所有的现代导航系统、机器人定位、经济学预测、天气预报等领域都有着至关重要的应用。

2025-06-30 15:44:44 745

原创 C++程序基本结构

表示这个方法属于MyClass类。实际代码逻辑写在这里。

2025-06-28 16:11:07 292

原创 不删除当前docker容器的基础上修改当前容器以允许 Docker 访问宿主机的 X11 显示

然后直接在容器内重新运行(以下代码仅针对我自己的程序)(安全提示:完成后可恢复限制。

2025-06-09 12:33:11 355

原创 docker拉取镜像的两种方式

核心思路:让Docker的所有网络请求都通过一个“网络中介”(即你的代理客户端,如Clash)来访问互联网,从而绕开本地网络的限制或连接问题。你 -> 本地代理客户端 -> 代理服务器 -> 官方Docker Hub。官方Docker Hub,而是从一个网络访问更通畅、更快速的服务器(国内镜像源或私有仓库)来获取镜像。:确保你的代理软件(如Clash)正在运行,并开启了系统代理。:找到一个可靠的镜像仓库服务(网上找可用的国内镜像源,例如。,或阿里云、腾讯云等,有的需要注册账户)(本文使用的是。

2025-06-07 23:12:12 1629 2

原创 docker的两种运行方式对比:挂载宿主机目录和只在容器内部操作

​​挂载的本质​​:让容器内的路径“指向”宿主机的真实目录(类似快捷方式)。​​程序运行位置​​:始终在容器内,但数据可以持久化保存在宿主机。​​操作口诀​​:docker run -v /宿主机/路径:/容器/路径 ...

2025-05-24 14:52:08 957

原创 Ubuntu22.04 使用docker运行vins-fusion

​这里需要注意的是:下载好并运行的vins-fusion本身就是一个完整的编译好的container,不需要再次编译,也不需要使用vins-fusion源文件中的Dockerfile进行make build,因此使用时运行的是通过catkin_make编译而成的launch文件,而不是docker文件夹里的run.sh。

2025-05-23 11:34:37 562

原创 为什么orb-slam系列、VINS系列不能稠密建图

(1)前端跟踪 (Tracking Thread)在函数中,核心任务是提取ORB特征点(),然后在上一帧或参考关键帧中找到这些特征点的匹配。它只处理这些被成功提取和匹配的、数量有限(通常几百到一千多)的角点,图像中的大片平滑区域、边缘等信息被完全忽略。相机位姿是通过最小化这些稀疏特征点的重投影误差来计算的((2)局部建图 (LocalMapping Thread)当一个关键帧被创建并送入后,系统会处理这个关键帧中的特征点。核心函数。

2025-05-14 12:46:02 753

转载 博客摘录「 ElasticFusion论文小结」

​,其核心创新在于通过 RGB-D 数据实时构建高精度的三维表面模型(Surfel 模型),而非专注于相机位姿的实时跟踪。https://github.com/HKUST-Aerial-Robotics/VINS-Mono,或者https://gitee.com/anjiang2020_admin/VINS-Mono。VINS-Fusion是VINS-Mono的扩展,它支持多种视觉惯性传感器类型(单摄像机+IMU,立体摄像机+IMU,甚至纯双目摄像机)。​,而非传统的 SLAM 定位。

2025-04-21 14:53:43 117

原创 用四元数旋转三维空间中的点

第二个代码是使用scipy.spatial.transform.Rotation库旋转空间点。这里调用的库也可以选择 numpy-quaternion。写了两个代码,第一个是完整的实现使用四元数旋转空间点的算法。(将(1,0,0)绕Y轴旋转90度)工程上更推荐第二种,第一种仅用来学习。

2025-04-09 10:28:18 390

原创 vio_data_simulation 介绍

通俗解释:相机看到了哪些特征点,以及它们在图像中的位置。在gener_alldata.cpp中,通过数学公式定义IMU的轨迹(椭圆运动+正弦运动),并计算其在ENU坐标系下的位姿(位置、速度、旋转)。通过外参 T 将IMU位姿转换为i相机位姿,并确保i相机朝向特征点区域。仿真中的“已知外参”仅仅用于生成测试数据,而VIO算法在完全不知道这些信息的情况下,通过数学优化从零开始估计轨迹。二者在时间、空间、逻辑上都是解耦的,因此并不存在循环矛盾。

2025-03-18 12:16:40 1154

原创 ubuntu屏幕跟读器

打开或关闭屏幕跟读器:win+alt+s。

2025-03-13 14:59:20 202

原创 ubuntu 基础知识

通过自定义变量指定路径。

2025-03-13 14:16:37 545

原创 VTK 配置文件、头文件、库文件

总上,一般cmake .. 编译项目时找 VTK 有两种方法,一种是 2.1, 一种是2.2.

2025-03-08 15:44:42 630

原创 双系统安装windows11

网上有很多教程讲解如何在已有windows的情况下安装ubuntu的双系统,但先有ubuntu再安装windows的教程却寥寥无几。我在安装过程中也不断的遇到问题、解决问题,参考了许多前者的经验,希望可以重新梳理流程以供后来者参考。

2025-01-13 01:04:35 2033

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除