【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/7/24 4:39:32 阅读更多 →
固定长度、递归字符、语义分块和结构分块怎么选?RAG Chunk策略对比

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

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

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

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

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

2026/7/24 16:21:39 阅读更多 →

最新新闻

G-Helper:华硕笔记本终极性能优化工具,让你的游戏本重获新生!

G-Helper:华硕笔记本终极性能优化工具,让你的游戏本重获新生!

G-Helper:华硕笔记本终极性能优化工具,让你的游戏本重获新生! 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, …

2026/7/24 17:54:29 阅读更多 →
2026 AI 写小说工具全测评:8款网文创作神器,新手也能精准避坑

2026 AI 写小说工具全测评:8款网文创作神器,新手也能精准避坑

最近网文圈里,不少工作室靠 AI 写作工具实现了单日几十万字的内容量产,这也让很多想入局的新人陷入了极致焦虑:AI 码字速度这么快,普通人手写创作还有出路吗?现在入行,会不会直接被算法卷到没活路&#xff…

2026/7/24 17:54:29 阅读更多 →
告别C盘臃肿!DriverStore Explorer让Windows驱动管理变得如此简单

告别C盘臃肿!DriverStore Explorer让Windows驱动管理变得如此简单

告别C盘臃肿!DriverStore Explorer让Windows驱动管理变得如此简单 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你是否曾为C盘空间告急而烦恼?明明清理了临时文…

2026/7/24 17:54:29 阅读更多 →
Arthas trace 命令怎么用?一行定位最慢那行代码

Arthas trace 命令怎么用?一行定位最慢那行代码

大家好,我是程序员天天困。 这是「Arthas 线上诊断实战」系列第 2 篇。上一篇讲完 watch 命令实战,很多读者有疑问:入参对了、返回值也对了,可我还是不知道代码到底走了哪条分支,接口慢又该盯哪一层。 答案就是 Arth…

2026/7/24 17:54:29 阅读更多 →
视频转PDF终极指南:3步将视频中的PPT内容变为精美文档

视频转PDF终极指南:3步将视频中的PPT内容变为精美文档

视频转PDF终极指南:3步将视频中的PPT内容变为精美文档 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 还在为从视频中手动截图整理PPT而烦恼吗?extract-video…

2026/7/24 17:54:29 阅读更多 →
全球无标记运动捕捉技术发展状况分析及投资前景展望报告2026年版

全球无标记运动捕捉技术发展状况分析及投资前景展望报告2026年版

全球无标记运动捕捉技术发展状况分析及投资前景展望报告2026年版无标记运动捕捉技术市场概述在影视娱乐数字内容创作需求爆发、体育科学训练精准化升级以及医疗康复智能化转型的多重驱动下,无标记运动捕捉技术市场正经历从“传统标记式捕捉”向“人工智能驱动的无感…

2026/7/24 17:53:29 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻