# fusion_mapping **Repository Path**: dragonlalala/fusion_mapping ## Basic Information - **Project Name**: fusion_mapping - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-29 - **Last Updated**: 2026-02-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Fusion Mapping System 多传感器融合点云建图系统:融合200Hz IMU(RTK增强偏航角)、20Hz RTK、10Hz Ouster激光雷达和10Hz相机数据,实现高精度运动补偿与真彩色点云地图构建。 ## 特性 - ✅ 仿FAST-LIO的点云运动补偿(帧头/帧尾统一) - ✅ RTK双天线偏航角融合消除IMU漂移 - ✅ 激光雷达-相机联合标定与点云赋色 - ✅ ENU全局坐标系下的点云地图累积 - ✅ RViz实时可视化与TF树管理 - ✅ **离线模式支持(rosbag回放内置)** ## 快速开始 ### 在线模式(需要真实传感器或外部播放rosbag) ```bash # 1. 编译 cd ~/catkin_ws && catkin_make # 2. 播放数据包 rosbag play your_data.bag --clock # 3. 启动建图节点 roslaunch fusion_mapping fusion_mapping.launch # 4. 启动可视化 roslaunch fusion_mapping rviz.launch ``` ### 离线模式(内置rosbag读取) ```bash # 1. 编译 cd ~/catkin_ws && catkin_make # 2. 直接运行离线节点(指定bag路径) roslaunch fusion_mapping fusion_mapping_offline.launch bag_path:=/path/to/your_data.bag # 或使用命令行参数 python src/fusion_mapping/scripts/fusion_mapping_offline_node.py --bag /path/to/your_data.bag ``` ## 文件结构 ``` fusion_mapping/ ├── config/ │ ├── params.yaml # 参数配置(传感器频率、外参、地图设置等) │ └── topics.yaml # 话题名称配置 ├── launch/ │ ├── fusion_mapping.launch # 在线模式启动 │ └── fusion_mapping_offline.launch # 离线模式启动 ├── scripts/ │ ├── fusion_mapping_node.py # 在线模式主节点 │ └── fusion_mapping_offline_node.py # 离线模式主节点 ├── src/fusion_mapping/ │ ├── core/ # 核心模块(配置、数据结构、坐标转换) │ ├── sensors/ # 传感器处理(IMU、RTK、传感器缓存) │ ├── processing/ # 数据处理(运动补偿、点云赋色、地图构建) │ ├── io/ # IO模块(rosbag读取、时间窗口同步) │ └── visualization/ # 可视化(RViz发布、TF广播) └── test/ ``` ## 离线模式说明 ### 时间窗口同步机制 - 点云帧时间范围:[x, x+0.1s] - 收到点云时,其他传感器数据可能只有到时间 x - 系统会自动收集完整时间窗口内的所有传感器数据后才进行去畸变 ### 处理流程 1. 预加载所有消息并按时间排序 2. 按时间顺序处理每条消息 3. 传感器数据存入时间窗口缓冲区 4. 收到点云帧时,检查缓冲区是否包含完整时间窗口数据 5. 如果数据完整,执行去畸变、赋色、添加到地图 6. 如果数据不完整,点云帧进入等待队列 ### 输出 - 实时处理进度显示 - 最终全局地图发布到 /fusion/global_map - 处理完成后自动发布最终地图