【9】lightning_lm项目-阶段4-定位系统
文章目录阶段四定位系统Localization一、定位系统的整体架构二、核心模块 1LocSystemROS 接口层三、核心模块 2LidarLoc核心定位层阶段四定位系统定位动态地图一、定位系统的核心亮点二、核心模块 1TiledMap分区动态地图三、核心模块 2LidarLoc激光定位四、核心模块 3LocSystemROS 接口层五、建图和定位主要区别六、定位系统的完整流程图阶段四总结阶段四定位系统Localization现在学习定位系统这是实际部署时最常用的功能——在建好的地图上实时定位一、定位系统的整体架构定位系统有三层结构┌─────────────────────────────────────┐ │ LocSystem (ROS接口层) │ │ - 订阅IMU/LiDAR │ │ - 发布TF │ └─────────────────────────────────────┘ ↓ ┌─────────────────────────────────────┐ │ Localization (协调层) │ │ - 协调LIO/LidarLoc/PGO │ └─────────────────────────────────────┘ ↓ ┌─────────────────────────────────────┐ │ LidarLoc (核心定位层) │ │ - NDT匹配 │ │ - 动态地图更新 │ │ - 位姿图优化 │ └─────────────────────────────────────┘二、核心模块 1LocSystemROS 接口层看 loc_system.h 和 loc_system.cc 这个很简单主要功能 创建 ROS node订阅 IMU、LiDAR标准点云和 Livox 点云调用 loc::Localization 处理数据设置 TF 回调发布定位结果三、核心模块 2LidarLoc核心定位层看 lidar_loc.h 这个是核心3.1 主要成员变量先看有什么structOptions{boolupdate_dynamic_cloud_true;// 是否更新动态图层boolforce_2d_true;// 强制在2D空间};std::shared_ptrTiledMapmap_nullptr;// 分区地图NDTType::Ptr pcl_ndt_nullptr;// NDT配准std::dequeTimedPoselidar_loc_pose_queue_;// 位姿队列SE3 current_abs_pose_;// 当前绝对定位位姿阶段四定位系统定位动态地图这是 Lightning-LM 的一大特色—— 动静态图层分离的定位系统 一、定位系统的核心亮点二、核心模块 1TiledMap分区动态地图看 tiled_map.h 这个是核心2.1 地图结构TiledMap ├── static_chunks_ (静态地图块) │ ├── chunk (100m x 100m) │ ├── chunk (100m x 100m) │ └── ... └── dynamic_chunks_ (动态地图块) ├── chunk ├── chunk └── ...2.2 动态地图策略看 DynamicCloudPolicy 枚举2.3 动态地图更新看 UpdateDynamicCloud() 接口用定位后的点云更新动态图层只在一定范围内更新 update_kf_dis_ 5米三、核心模块 2LidarLoc激光定位看 lidar_loc.h3.1 定位流程输入IMU LiDAR ↓ LIO 预测相对运动激光里程计 ↓ LidarLocNDT 匹配到地图上绝对定位 ↓ PGO位姿图优化融合LO和绝对定位 ↓ 输出高精度定位位姿 ↓ 可选更新动态地图3.2 关键参数看 Options 结构体force_2d_ 强制在2D空间定位大多数场景适用update_dynamic_cloud_ 是否更新动态地图update_kf_dis_ 每隔多少米更新一次动态地图5米四、核心模块 3LocSystemROS 接口层看 loc_system.h这个很简单就是封装 ROS 接口订阅 IMU 话题订阅 LiDAR 话题标准点云和 Livox调用定位模块发布 TF世界坐标系 - 机器人坐标系五、建图和定位主要区别建图阶段需要 回环、关键帧保存定位阶段只需 加载地图、高频匹配模式主体节点功能建图 (run_slam_online)LIO LoopClosing G2P5实时构建地图、优化位姿、输出全局 PCD定位 (run_loc_online)LIO Localization在已有地图上做 scan-to-map 匹配输出位姿两者在参数上存在差异放在一个文件里会互相干扰模块建图模式定位模式地图加载初始化空地图读取 map_path 下保存地图回环检测开启关闭栅格生成g2p5在线生成通常关闭动态层策略新建仅更新/加载关键帧存储每隔一段时间保存只用作定位参考优化线程全量图优化局部匹配修正六、定位系统的完整流程图┌─────────────────────────────────────────────────────────────┐ │ 输入IMU LiDAR │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 1. LIO 处理 (激光里程计) → 相对运动预测 │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 2. TiledMap 加载 → 只加载车辆附近的地图块 │ │ (load_nearby_chunks_ 8) │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 3. LidarLoc::Localize() → NDT 配准 │ │ - 粗分辨率匹配 (10.0) │ │ - 精分辨率匹配 (2.0 / 1.0) │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 4. PGO 优化 → 融合 LIO 和绝对定位 │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 5. 更新动态地图 (可选) │ │ - 用定位后的点云更新动态图层 │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 6. 输出 → 发布 TF / 定位结果 │ └─────────────────────────────────────────────────────────────┘阶段四总结定位系统学完了主要特色是分区动态地图 大场景下高效加载动静态图层分离 静态存环境动态存变化的物体NDTLIOPGO 融合定位高精度鲁棒

相关新闻

Web Audio API实现浏览器端音频录制与处理

Web Audio API实现浏览器端音频录制与处理

1. 初识浏览器音频录制能力现代浏览器提供的Web Audio API让我们能够直接在网页中处理音频数据,其中getUserMedia和MediaRecorder这两个API的组合使用尤为强大。作为一名前端开发者,我最近在项目中需要实现一个网页端的录音功能,经过一番探索…

2026/10/5 15:29:07 阅读更多 →
固定长度、递归字符、语义分块和结构分块怎么选?RAG Chunk策略对比

固定长度、递归字符、语义分块和结构分块怎么选?RAG Chunk策略对比

文章摘要 Chunk策略决定了RAG系统能够检索到什么、丢失什么,以及大模型最终看到多少完整上下文。固定长度分块实现简单但容易切断条款;递归字符分块通用性强;语义分块边界自然但成本较高;结构分块最适合制度、合同和技术文档,却依赖可靠的文档解析。本文从边界质量、实现…

2026/10/10 13:30:07 阅读更多 →
能科科技AI+工业场景化应用【第二期】:PLM AI智能助手

能科科技AI+工业场景化应用【第二期】:PLM AI智能助手

当前,PLM(例如Teamcenter)作为一款专业的产品生命周期管理系统,广泛应用于制造企业,帮助企业实现产品数据的统一管理与协同共享。但是在实际应用中存在两大难题:一是隐性人力成本高,新员工培训耗…

2026/10/11 0:02:50 阅读更多 →

最新新闻

N8N企业级落地为何频频翻车?从部署到治理的实战避坑指南

N8N企业级落地为何频频翻车?从部署到治理的实战避坑指南

1. 为什么N8N越火,企业落地越容易翻车过去两年,我在不同公司和企业客户那边见过太多次N8N的“高开低走”:技术负责人看到N8N的开源界面、可视化编排和几百个现成节点,觉得终于找到了一个能替代传统接口开发的“万能胶水”&#xf…

2026/10/11 10:58:28 阅读更多 →
Java炸弹人游戏源码解析:从地图生成到碰撞检测的实战指南

Java炸弹人游戏源码解析:从地图生成到碰撞检测的实战指南

简介:Java炸弹人游戏资源包是一份面向Java初学者和游戏开发爱好者的完整项目源码,以经典炸弹人玩法为载体,展示从游戏窗口搭建、地图初始化到玩家交互、胜负判断的完整实现过程。压缩包共37个文件,含9个java源文件、12个class编译…

2026/10/11 10:58:28 阅读更多 →
把“人味“变成分数:Human-Likeness 盲测第一的含金量到底几成

把“人味“变成分数:Human-Likeness 盲测第一的含金量到底几成

把"人味"变成分数:Human-Likeness 盲测第一的含金量到底几成 【免费下载链接】Hemmingway-1 项目地址: https://ai.gitcode.com/hf_mirrors/Altworld/Hemmingway-1 让大模型写一封给房东的短信、一条给同事的告别留言,是当下 AI 写作最…

2026/10/11 10:58:28 阅读更多 →
C#零配置网络:链路本地地址与mDNS服务发现实战

C#零配置网络:链路本地地址与mDNS服务发现实战

简介:ZeroConfiOS是一个面向C#开发者、聚焦网络服务自动化部署的开源工具库,专为解决动态网络环境下服务发布与IP地址自适应配置难题而设计,适用于物联网设备、跨平台微服务及多网卡场景下的快速集成。资源包共43个文件,含32个核心…

2026/10/11 10:58:28 阅读更多 →
三国人物关系知识图谱可视化与问答系统:构建与工程实现

三国人物关系知识图谱可视化与问答系统:构建与工程实现

简介:基于知识图谱的三国人物关系可视化与问答系统,是一份面向计算机相关专业学生、教师及初学者的完整Python工程项目。项目将三国演义文本数据抽取为实体与关系,构建知识图谱,并配套网页端可视化界面与自然语言问答模块&#xf…

2026/10/11 10:58:28 阅读更多 →
识别虚假技术资源:Bishop深度学习2024真伪验证指南

识别虚假技术资源:Bishop深度学习2024真伪验证指南

简介:这是一本由机器学习权威Christopher M. Bishop与Hugh Bishop合著的深度学习前沿教材,面向高校研究生、AI研究人员及具备数学与编程基础的进阶学习者,系统构建从神经网络基础到Transformer、图神经网络等现代架构的理论框架。资源为单文件…

2026/10/11 10:57:28 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →