# LidarReplay **Repository Path**: vincent-in-black-sesame/lidar-replay ## Basic Information - **Project Name**: LidarReplay - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-11-26 - **Last Updated**: 2026-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LidarReplay 使用说明 ## 1. 项目简介 `LidarReplay` 用于读取离线激光雷达点云数据(`.pcd`),按时间戳节奏回放,并通过消息通道发布 `LidarProtoPointCloud`。 当前主程序名为 `LidarRpelay`(注意拼写)。 ## 2. 目录约定 数据目录需按以下结构组织: ```text / lidar_0/ 1710000000000.pcd 1710000000100.pcd lidar_1/ 1710000000000.pcd 1710000000100.pcd ``` - 子目录命名必须是 `lidar_` - 文件名必须是时间戳(去掉扩展名后可转为整数) ## 3. 配置文件说明 示例(`playcfg.json`): ```json { "player": { "repeat": true, "path": "/path/to/your/lidar_data_root" }, "source": [ { "lidar_id": 0 }, { "lidar_id": 1 } ] } ``` 字段含义: - `player.repeat`:是否循环回放 - `player.path`:数据根目录(目录下应有 `lidar_0`、`lidar_1` 等) - `source[].lidar_id`:参与回放的雷达 ID - 推送端口是根据58000+lidar_id来确定。(默认58000,58001,58002,58003) ## 4. 编译 在仓库根目录执行: ```bash cmake -S . -B release cmake --build release -j ``` 编译产物: - 主程序:`release/bin/LidarRpelay` - 默认配置:`src/cfg/playcfg.json`(打包后也会复制到 `bin`) ## 5. 运行 进入可执行目录后启动: ```bash cd release/bin ./LidarRpelay playcfg.json ``` 注意: - 必须传入配置文件参数,否则程序会直接退出并提示用法 - 请保证 `playcfg.json` 是合法 JSON,且路径可访问 ### 5.1 使用 Qt 桌面控制台(推荐) 项目已提供桌面控制程序 `ReplayGui`,可替代手工命令行操作。 构建(默认开启 GUI): ```bash cmake -S . -B release cmake --build release -j ``` 如果机器未安装 Qt,可临时关闭 GUI 构建: ```bash cmake -S . -B release -DBUILD_REPLAY_GUI=OFF cmake --build release -j ``` 启动 GUI: ```bash ./release/bin/ReplayGui ``` GUI 简要功能:编辑配置文件路径、数据路径与雷达列表,加载/保存 JSON,启停回放,日志过滤与导出。启动回放前会将当前表单写入所选 JSON。 ## 6. 停止程序 - 前台运行时:`Ctrl + C` - 或发送 `SIGTERM` 程序收到信号后会走停止流程并退出。 ## 7. 常见问题排查 ### 7.1 启动即 `Segmentation fault` 优先检查以下两项: 1. 是否漏传配置参数(应为 `./LidarRpelay playcfg.json`) 2. 是否存在 protobuf 动态库混用(例如 `libprotobuf.so.17` 与 `libprotobuf.so.23` 同时加载) 可执行: ```bash ldd ./LidarRpelay | grep protobuf ``` 正常应只看到一个 protobuf 主版本。 ### 7.2 报 JSON 解析错误 检查配置文件是否为空、内容是否完整、JSON 语法是否正确(尤其是括号、逗号、引号)。 ### 7.3 没有数据输出 检查: - `player.path` 是否正确 - `lidar_` 目录是否存在 - `.pcd` 文件名是否为时间戳格式 ### 7.4 GUI 启动失败 - 提示 Qt 相关错误:请安装 Qt5/Qt6 Widgets 开发包,或使用 `-DBUILD_REPLAY_GUI=OFF` 关闭 GUI 构建 - GUI 提示找不到 `LidarRpelay`:请先完成工程编译,确认 `release/bin/LidarRpelay` 存在 - 点击启动后无日志:检查配置路径、数据目录权限和 `playcfg.json` 是否有效 ## 8. 发布包 执行: ```bash cmake --build release --target package ``` 会在 `release` 下生成类似: - `LidarReplay-V-.tar`