- 博客(112)
- 收藏
- 关注
转载 ios claude账号封禁后软件显示something went wrong的解决方法
最后,LINUX DO 貌似现在只能邀请进入了,有大佬可以拉我一下么!后续按照操作没有遇到问题,成功解决!2. 添加四个规则时一定主要 是。3. 第二个规则 中的 Value。1. iphone 下载。
2026-06-15 22:55:23
14
原创 M-detector(二):代码
根据README进行下载以及编译,修改和中TBB的路径现在README中的链接是没有数据集的, 使用类型的数据进行测试,转换rosbag参考是采集车上各传感器输出的原始数据;synced+rectified 经过处理后的数据,图像去畸变,imu变为10hz。3.修改fast-lio kitti.yaml①lidar和imu topic根据rosbag 进行修改,其余几个topic 在fast-lio中是硬编码;②kitti 使用的lidar是。
2026-06-03 00:39:26
250
原创 M-detector(一):论文
在动态环境中,机器人需要以微秒级延迟对运动事件进行即时检测。这一任务通常被称为运动事件检测,传统上主要由事件相机完成。激光雷达(LiDAR)由于能够提供稠密且精确的深度测量,在机器人感知系统中至关重要,但其在运动事件检测中的潜力尚未得到充分探索。在动态场景里,机器人不能等一整帧数据处理完再判断“有没有东西动了”,而是希望在运动刚发生时就立刻发现,比如行人突然冲出来、无人机前方突然飞来一个球。传统上,这种“极低延迟发现变化/运动”的任务主要靠事件相机 Event Camera来做。
2026-05-24 21:09:14
524
原创 FAST-LIO2笔记(六)总结
FAST-LIO2 的性能已经无需赘述,基于 FAST-LIO2的逻辑进行二次开发,或者作为里程计模块的项目也非常多。例如:用于标定的、在剧烈运动无人机中使用的、作为里程计模块的以及等。
2026-03-24 04:12:28
571
翻译 从广度优先 推导 A*
Dijkstra 算法计算的是从起点到当前节点的实际距离。贪婪最佳优先搜索(Greedy Best-First Search)估计的是从当前节点到目标节点的距离。A*算法则使用这两者的和,即从起点到当前节点的代价 + 当前节点到目标的估计距离。
2026-03-19 18:16:39
29
原创 LTA-OM(五)运行及总结
① 实际应用中,重定位的目的是让机器人知道自己在地图中的位置,从而实现导航功能。主要是为了看multi_session中的second_session 的自动重定位效果以及 multi_session后的地图。对代码进行修改,得到拼接后的地图(红色框位置,只有second_session的时候才走过)的数据结构和 FAST-LIO2 中的不一样,需要修改 FAST-LIO2 中的数据结构。4.如果是ubuntu 18,默认安装的GCC版本比较低,需要安装更高版本。,在STD的 cmake中修改库的位置;
2026-03-13 19:54:20
528
原创 LTA-OM(四)代码:回环优化 和 重建线程
if-else还有一些宏定义过于的多了,还有就是对gtsam的使用还不是很熟悉,之前只是在LIO-SAM中接触过,导致这部分代码看的云里雾里的,尤其是 optimize 阶段,还有就是看这部分代码,一定得对照论文看,可以更好理解一点。LIO中的线程执行,也就是经过回环优化后才会发布此消息,表示矫正前后的关键帧位姿,在本节点位姿图优化的时候作为约束。如果 回环检测没有发布新的关键帧(多个子图(单帧)累计的点云),线程一直处于阻塞状态;5.主循环,主要是通过参数保存 先验信息,保存地图和优化位姿。
2026-03-11 21:49:07
528
原创 LTA-OM(三)代码:回环检测
订阅 LIO 发布的 /odom_correction_info:LIO中的线程每次需要重建的时候,发布消息,回环检测停止生成新的关键帧;(在三角形描述子的基础上增加了二进制描述子)代码中的定义。和 LIO 中载入先验地图一样,先看保存 STD 描述子的代码。发布关键帧id,LIO中会订阅这个话题,从第二个关键帧开始,当前关键帧的描述子与历史关键帧描述子进行匹配,检测回环;当前关键帧的描述子与先验地图的描述子匹配,检测回环;在STD 代码中,三角形描述子的定义为。保存每个关键帧的 STD描述子。
2026-03-10 02:37:21
589
原创 LTA-OM(二)代码:LIO
逻辑上讲,理解先验地图的加载流程前,应先了解它是如何保存的,这样在阅读 load_prior_map_and_info() 时会更加清晰。2.点云回调函数:Livox激光雷达点云处理的时候,会对点云中的 tag 字段进行筛选,如果使用的是MID-360,需要取消注释后半段代码;当订阅到回环检测的话题 /submap_ids, 检查到有新的子图(关键帧),IKD-Tree 重建线程。可能是 FAST-LIO2 代码版本的原因吧,最新的代码是以 lidar采样结束时刻 作为里程计的时间戳。
2026-03-07 01:49:21
623
原创 LTA-OM(一)论文
本文的一项创新是实时 LTA 建图:它利用 FAST-LIO2 的直接扫描到地图配准(scan-to-map registration),并采用经过校正的历史地图为 LIO 建图过程提供直接的全局约束。LTA 建图的显著优势在于,在重复访问场所能够实现无漂移的里程计。此外,系统设计了多次会话模式,允许用户保存当前会话的结果,包括校正后的地图点、优化后的里程计以及描述子数据库,以便未来会话使用。该模式的优势在于进一步提高建图精度,实现一致性地图拼接,有利于长期建图应用。
2026-03-05 21:46:30
577
原创 激光SLAM 回环检测---BTC
输入是经过配准的 LiDAR 帧,首先将其积累成子地图。然后,从子地图中提取关键点,并将其编码为二进制描述子和三角形描述子。这两种描述子结合起来形成二进制三角形组合(BTC)描述子,随后从描述子数据库中查询以检索固定数量的候选子地图。在候选池中,通过二进制描述子匹配和几何验证选择最合适的子地图,并计算出 6 自由度的位姿。一旦结果获得,当前的 BTC 描述子将被添加到数据库中以备将来使用。BTC是一种用于3D点云的地点识别,新的二进制和三角形结合描述子。三角形描述子负责全局描述;二进制描述子负责局部。
2026-01-25 01:57:44
1134
6
原创 激光SLAM 回环检测---STD(A Stable Triangle Descriptor for 3D place recognition)
本文提出了一种新的三维位置识别全局描述子——稳定三角形描述子(Stable Triangle Descriptor,STD)。对于任意一个三角形,其形状可由边长或内角唯一确定,并且三角形的形状在刚体变换下保持完全不变。基于这一特性,本文首先设计了一种高效的三维点云局部关键点提取方法,并将这些关键点编码为三角形描述子。随后,通过匹配不同点云中三角形描述子的边长(及其他辅助信息)实现位置识别。由描述子匹配得到的点对应关系还可进一步用于几何一致性验证,从而显著提升位置识别的准确性。提出了一种三角形描述子。
2026-01-08 00:20:21
551
原创 Point-LIO (三)代码
将需要处理的LIDAR和IMU数据对齐,也就是取出 lidar_beg_time 到 lidar_end_time 之间的所有IMU数据。对于某些没有 ring 属性的Lidar,可以通过俯仰角,确定当前的激光点是来自哪个线束。由于 Fast-LIO2 之后就没有进行特征提取了,因此这里提取平面点的思路很简单,就是隔。收到IMU消息后,根据时间偏移对IMU消息时间戳进行修正,然后将IMU数据加入队列。然后是 分帧 和 合并帧的操作(可选的),最后将每帧点云和时间戳保存到队列中。这部分代码看的太晕了!
2025-10-30 16:15:56
285
原创 Point-LIO (二)代码:状态估计
Point-LIO有两个分支,区别在于主分支使用 ikd-Tree管理地图,另一个分支使用iVox。(iVox是高博在提出的,增和查的效率比ikd-Tree更优)在话题订阅前需要滤波器,对应论文状态估计中的内容。(代码结构和FAST-LIO很相似)。
2025-10-23 14:02:07
672
原创 Point-LIO(一)论文
一个能够的激光雷达惯性里程计如果在没有IMU的情况下使用Point-LIO,将imu_en设置为false,并在yaml文件中尽可能提供一个预定义的重力值,将设置为true,并保持为0。
2025-09-25 15:55:57
1090
原创 autoware 多雷达标定
autoware安装最简单的就是 pull 别人的docker images,但是由于系统原因,比如下载的镜像安装了CUDA相关的pkg,但是自己系统没有,后续编译代码可能有问题。中这个脚本已经是执行过了,根据脚本内容默认是安装cuda的,后续autoware编译会用到。:其中包含建图雷达关键帧、与之配对的标定雷达点云、插值得到的位姿,以及插值统计量。将“标定雷达点云”配准到“增强后的建图雷达点云”,每一对点云会产生一个。因此,我们不是把“标定雷达点云 → 建图雷达点云”直接配准,而是先用。
2025-09-19 16:29:40
1275
原创 回环检测 Scan Contex 及 扩展(二)
代码很好的一点是 SC-PGO模块与FAST-LIO2解耦,SC-PGO 从 FAST-LIO2 节点接收。在FAST-LIO2的基础上,添加SC-PGO模块,通过加入ScanContext全局描述子,:调用gtsam ISAM2优化器,对pose graph做全局优化,得到全局最优位姿。用Scan Context进行回环检测,周期性判断当前帧和历史帧是否构成回环。(process_lcd)不断检测历史回环,把候选回环送到ICP线程;(process_icp)计算回环位姿约束并添加到因子图;
2025-07-12 23:17:59
1706
原创 LI-Init(二)代码
对 = + - 这些运算符进行了重载,因为旋转不是简单的加减,加法是右乘小增量旋转,减法是求两个旋转之间的相对旋转,然后变为李代数(FAST_LIO使用流行表示状态量)Rk1RkexpΔϕΔϕlogRk−1Rk1: 不同类型的lidar msg转为pcl点云;lidar和imu标定的具体实现在这个类中;IMU初始化,点云去畸变的前向、后向传播(增加了通过匀速模型去畸变);
2025-06-21 23:38:40
973
1
原创 LI-Init(一)论文
摘要:LI-Init是一种鲁棒实时的激光-惯性系统初始化方法,能够自动标定激光雷达与IMU之间的时间偏移、外参、重力向量和IMU零偏,无需依赖标定靶标、特定环境或先验信息。该方法通过对齐激光雷达与IMU测量数据实现参数估计,并集成激励检测模块确保数据有效性。实验验证了其在多种激光雷达类型上的适应性和高效性,成为首个开源兼容机械旋转和非重复扫描雷达的时空初始化方案。核心贡献包括基于互相关的时间标定、优化模型驱动的空间初始化,以及全自动的在线标定流程。该系统采用改进的激光里程计(基于恒速模型)与误差状态卡尔曼滤
2025-06-08 17:29:25
1078
原创 Lidar和Imu 标定和重定位
实际使用的时候发现重定位对环境要求比较高,不能变动太大,否则很容易失败;efficient_online_segmentation 和 groundgrid;MARS实验室开源了两个回环检测方法STD、BTC(后者是前者的“升级”版本)。在LTA-OM中测试过,multi_session模式也就是重定位的时候,需要机器人(传感器)移动才能重定位成功;基于fast-lio2进行后端、回环和重定位的移植(TODO)。
2025-06-02 23:24:41
25
原创 FAST-LIO2笔记(五)FAST-LIO的应用:ikd-tree & 重定位
在中总结了ikd-tree的优点。相比kd-tree,实现了增量更新(插入和删除)。Build()根据代码,开始的是是空的用每个点对应的世界系坐标构造类似于pcl的setInputCloud()1.3删除一个节点时,先将其标记为删除,被标记为删除的节点在 kNN 搜索时会被跳过,但在树形结构中它还是存在的。只有当tree结构被彻底重构时,才会借机真的把这些节点从tree结构中删除。类似于PCL的nearestKSearch()函数,只不过这个是返回近邻点的索引,还需要通过索引才能找到对应的近邻点。
2025-05-14 19:32:24
3433
3
原创 FAST-LIO2笔记(四)代码:迭代卡尔曼滤波更新以及话题发布
发布去畸变点云(点是世界坐标系);发布去畸变点云(点是IMU坐标系)发布里程计话题:根据最新状态量的旋转R和平移获取数据,构成位姿;:省略了 ikd-tree底层代码的阅读,后续有时间再看。同样这部分原代码还是不好理解,参考简化代码的这个函数。5.当前点转到世界坐标系,插入ikd-tree。3.迭代卡尔曼滤波更新后,得到了。点云中每个点(世界坐标系)构建。,对应论文公式14、15。
2025-05-14 00:28:21
513
原创 FAST-LIO2笔记(三)代码:前向、后向传播和地图管理
2.按时间从后往前遍历点云,假设当前点p对应的时刻为 tn,其所属的IMU区间时刻为[ tib , tie ](代码这部分设计的很巧妙),可以求得 tn 与 tib 的时间差 dt ,通过 dt 和 tib 时刻的位姿,便可求得 tn 时刻IMU的状态(位姿)。:积分计算IMU每个时刻的状态量和协方差矩阵(公式4、8),原代码的predict()函数有复杂晦涩的流行相关的计算,不好理解,这个函数内容建议参考简化版本的predict()函数,然后将更新的IMU状态量放到IMUpose中。
2025-05-13 18:50:00
1828
原创 FAST-LIO2笔记(二)代码:状态估计
将当前lidar坐标系的点变换到世界坐标系,然后用ikdtree找这个的五个近邻点,只有近邻点的个数大于5 && 最远点的距离小于5m才可能构成面,然后用最小二乘法计算这个平面的法向量,并判断五个近邻点到平面的距离是否小于阈值(即所有点都足够“靠近”这个平面,才合理),如果当前点拟合平面成功,将点存到laserCloudOri点云中,平面法向量存放到corr_normvect中。:残差关于状态量的偏导,只与状态量的旋转和位置有关系,其他项是零(如果lidar和IMU的外参已经标定过)。
2025-05-12 22:42:29
900
原创 FAST-LIO笔记
从 te 时刻至 tb 时刻,对每一个点完成上述操作,系统便完成了反向传播,即将一帧中所有点云都补偿到了这一帧结束的时刻。总之,通过向前与反向传播,得到了在点云。
2025-05-07 23:22:07
2303
原创 FAST-LIO2笔记(一)论文
本文提出了一种快速、鲁棒且通用的激光雷达-惯性里程计框架:FAST-LIO2。该方法基于高效的紧耦合迭代卡尔曼滤波器,并在此基础上引入了两项关键创新,使得激光雷达导航(及建图)具备更快的速度、更强的鲁棒性以及更高的精度。在不提取特征的情况下,直接将原始点云匹配到地图上(并随后更新地图,即实现建图)。这一策略可充分利用环境中的微小特征,从而提升定位精度。与此同时,省去了人工设计的特征提取模块,也使得该方法天然地适应不同扫描模式的新型激光雷达。采用一种增量式 k-d 树结构(ikd-Tree)维护地图。
2025-05-07 23:19:56
2134
原创 LIO-Livox
用单台Livox Horizon (含内置IMU) 实现高鲁棒性的激光-惯性里程计,可在各类极端场景下鲁棒运行,并达到高精度的定位和建图效果。(城区拥堵、高速公路、幽暗隧道):该系统主要面向大型室外环境中的汽车平台设计。用户可以使用 Livox Horizon 或 HAP LiDAR 轻松运行该系统。在室内环境中系统同样表现稳定,目前也支持面向机器人设计的 Mid-360 雷达。1.代码目前只能在ubuntu18使用,其他版本运行阶段会报错,建议使用docker。
2025-05-06 20:17:04
1082
原创 LIO-SAM 笔记(一)论文
提出了一个通过平滑与建图实现的紧耦合激光惯性里程计框架LIO-SAM,能够取得高精度、实时的移动机器人的轨迹估计和地图构建。LIO-SAM基于因子图构建,把多个相对测量数据或者绝对测量数据,包括回环检测,以因子的形式加入到系统中进行联合优化。通过IMU预积分获得的运动估计可以用于点云运动畸变的修正和作为激光里程计优化的初值。反之,基于获得的激光里程计可以估计IMU的零偏。为了保证实时性能,当位姿估计时,我们边缘化老的激光帧;而不是将雷达点云与全局地图进行匹配。
2025-04-28 19:08:44
917
原创 LeGO-LOAM笔记
LeGO-LOAM 是 Tixiao Shan 提出的⼀种基于 LOAM 的改进版本,其主要是为了定位和建图。专门为地面车辆设计SLAM算法,要求在安装的时候Lidar能以水平方式安装在车辆上;如果是倾斜安装的话,也要进行位姿转换到车辆上。而LOAM对Lidar的安装方式没有要求,即使手持都没有关系。由于搭载的是嵌入式系统,计算能力将会受限,致使无法做到实时;LOAM系统计算每个点曲率的处理频率(数据量很大,VLP-16一条线是1800个点)将难以跟上传感器的更新频率;
2025-04-26 20:42:35
741
原创 毫米波雷达笔记
毫米波雷达、摄像头和激光雷达都是利用电磁波来工作。被动式传感器。工作在可见光频段,对应的电磁波波长在360-830纳米之间;主动式传感器。工作在红外线和可见光之间频段,波长也是纳米级。常用的波长是905nm和1550nm;主动式传感器。工作波长在毫米级,波长范围1-10mm,对应频率30-300GHz,主流的是77GHz.1.穿透能力强、作用距离远;2.不受光照、大雾、沙尘等影响,可全天候工作;3.利用多普勒效应可直接测量目标径向速度;4.超视距探测能力;5.体积小、易集成、成本低廉。
2025-04-15 17:19:16
890
原创 相机标定笔记(单、双、鱼眼)
opencv 中相机标定calibrateCamera() 接口的实现,总结如下:(1. 因为镜头畸变的影响比较小,首先假定相机是理想无畸变的,根据闭式解来计算初始的相机内参;2. 估计相机位姿,也就是求解相机外参,opencv使用solvePnP来实现,支持迭代和 P3P 等多种算法求解;3. 应用最小二乘求解实际的径向畸变系数(4. 根据求解的内外参对objectPoints进行重投影,应用全局Levenberg-Marquardt优化算法来最小化重投影和原投影点之间的误差。
2025-04-07 00:03:48
1361
原创 VINS-Mono学习(六):回环检测
VINS最后一个节点 pose_graph 是和回环检测相关内容。节点订阅 图像话题 和 vins_estimator节点发布的话题。1.ros初始化、设置句柄;2.创建一些publisher;3.从launch文件读取参数和参数文件config中的参数;4.回环检测下的处理,如从yaml文件读取参数、读取训练好的二进制词袋、描述子pattern、如果需要加载离线地图及对应的处理;5.订阅七个话题;6.创建五个话题的发布;7.主线程process;8.接收键盘回调值的线程,“s” 保存地图。
2025-04-01 15:31:51
1275
原创 VINS-Mono学习(五):非线性优化
i++)// para_Pose是位姿 前三维是平移 后四维是旋转// para_SpeedBias是 速度、加速度计偏置、陀螺仪偏置//?为什么位姿有local_parameterization,速度、加速度计偏置、陀螺仪偏置没有local_parameterization// 因为位姿中的旋转使用四元数表示,四元数带约束,PoseLocalParameterization类中重载了Plus()函数类需要重载类的两个函数:Plus。
2025-03-29 20:47:00
1027
原创 VINS-Mono学习(四):关键帧和初始化
到此,已经求解了陀螺仪零偏Bgs、所有帧在自己坐标系中的速度、第0帧的重力方向、和尺度s。①获取滑动窗口内所有图像帧相对于第l帧的位姿信息,并设置为关键帧// 计算滑窗帧的位姿Ps、Rs,并将其置为关键帧// initialStructure函数虽然计算了所有帧all_image_frame的位姿 frame_it->second.R 和frame_it->second.T,// 但是并没有存到Ps和Rs中,这里我们把这些位姿存到Ps和Rs中,并且把这些帧的is_key_frame标志位置为true。
2025-03-25 01:43:14
1183
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅