- 博客(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
原创 不删除当前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
原创 双系统安装windows11
网上有很多教程讲解如何在已有windows的情况下安装ubuntu的双系统,但先有ubuntu再安装windows的教程却寥寥无几。我在安装过程中也不断的遇到问题、解决问题,参考了许多前者的经验,希望可以重新梳理流程以供后来者参考。
2025-01-13 01:04:35
2033
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅