type
Post
status
Published
date
Apr 8, 2026
slug
summary
rosbag简介
tags
具身智能
ROS
SLAM
category
项目开发
icon
password
😀
环境:Docker:ubuntu22.04+ros2:humble

rosbag


1. 相关概念

  • 物理底片 (rosbag): 录制数据包本质上就是把传感器(Mid-360 雷达、IMU)在一路上的所有原始输出,带上精确的时间戳,原封不动地录进一个 SQLite3 数据库文件里。
  • 时光机 (use_sim_time): 离线建图的核心逻辑是“欺骗”建图算法,让算法以为“包里的历史时间”就是“现在的真实时间”。如果不开启这个开关,算法会因为“数据过期了几十分钟甚至几天”而疯狂丢弃所有数据。
 

2. 标准操作流

阶段 1:室外数据采集
  1. 启动雷达: (在 Docker 内)Bash
    1. 开始录制: 新开终端,指定保存的文件夹名(如 campus_bag)和需要监听的 Topic。Bash
      1. 遛狗姿势:
          • 起步静止: 录制开始后,让狗原地静止 3-5 秒,给 Fast-LIO 的 IMU 留足零偏初始化的时间。
          • 平滑移动: 尽量避免原地猛烈打转或突然的急加速,缓慢转弯对里程计最友好。
          • 大回环: 强烈建议最后绕回起点,这能触发 SLAM Toolbox 的回环检测,消除长距离累积误差。
      1. 安全杀青: 走回终点后,在运行录制的终端按 Ctrl + C,等待系统安全关闭数据库,切忌直接拔电源。
       
      阶段 2:数据质检
      在回放之前,确认包没坏、数据没漏:
      (主要看时长、文件大小,以及 /livox/lidar 是否有几十万上百万条消息。)
       
      阶段 3:实验室离线建图
      1. 修改 Launch 文件(一次性工作):
          • 把真实的雷达启动节点 (livox_driver_launch) 注释掉
          • 给需要时间同步的节点(如 slam_toolboxpointcloud_to_laserscan)加上参数:'use_sim_time': True
      1. 启动纯算法:
        1. 打开“透视眼”: (在本地 Ubuntu)
          1. 输入 rviz2 打开图形界面,准备接收画面。
        1. 播放数据(关键步骤): (在 Docker 内新开终端)
          1. 必须回到工作空间根目录并 source(防止终端不认识自定义的 Livox 消息格式),然后带上时钟参数播放:
        1. 结束保存: 等包播完,去算法终端按 Ctrl + C,完美的 .pcd 点云底图就会落在你指定的文件夹里。
         
        备注:高频避坑指南
        1. “终端失忆”引发的血案:
          1. 如果你播包时看到满屏的 Topic '/livox/lidar' has unknown type 黄色警告,绝对是因为当前播包的终端没有执行 source install/setup.bash
        1. 时间撕裂 (dropping message 报错):
          1. 如果你在 RViz 里死活看不到画面,或者日志疯狂报错说在丢弃历史数据,请检查:
            • 播包时有没有加 -clock 参数?
            • Launch 文件里的节点有没有全加上 'use_sim_time': True
            • RViz 左下角的全局时间(Time)是在走动,还是卡在 0?
        1. 空间爆炸:
          1. Mid-360 的扫描频率极高,录制 10 分钟可能就会产生好几个 GB 的 .db3 文件。在录制长距离(比如跨越两栋楼)之前,一定要用 df -h 检查一下拓展坞(或保存路径)的硬盘空间够不够,如果录到一半硬盘满了,包就废了。
        1. 死路复盘:
          1. 如果离线建出来的图发生了“漂移”或者墙体重影,不要重录数据! 数据大概率是没问题的。你应该做的是调整 Fast-LIO 或者 SLAM Toolbox 的配置文件参数,然后重新 ros2 bag play 再跑一次,这就是离线建图最爽的地方。
         
        💡
        有关问题,欢迎您在底部评论区留言,一起交流~
        Loading...
        Koreyoshi
        Koreyoshi
        一个普通的干饭人🍚
        Announcement
        🎉写给自己的2026心愿🎉
        学一门乐器
        拍摄人生照片
        义工旅游一个月
        在北京交很多新朋友
        学习胡闹厨房建模和贴图
        ----- 2026 ------
        👏希望我们一起变好👏