Dalaran 是一款面向机器人研发场景的现代化可观测性工具,它把分散在 ROS 2 主题、激光雷达点云、摄像头图像、IMU 传感器和坐标变换(TF)中的时间序列数据,统一归集到一条精准同步的时间轴上,并提供高性能 3D/2D 可视化 + 原生数据分析能力。它解决了机器人工程师最头疼的问题:调试时“看不清数据时序关系”、复现问题时“多个传感器对不上帧”、做算法验证时“导出数据再处理太繁琐”。一句话说清——Dalaran 让你的机器人数据从“一堆日志文件”,变成可交互、可回溯、可编程的活体数据空间。
核心功能
- ROS 2 原生支持:无需转换,直接订阅实时话题或加载已录制的
.rrd文件(兼容 Rerun 格式),开箱即用,深度集成rclpy和rclcpp生态。 - 跨模态时间对齐引擎:自动将 LiDAR 扫描、RGB-D 图像、IMU 采样、TF 变换等异构数据按纳秒级时间戳对齐,所有视图(3D 点云、2D 图像、曲线图、坐标树)严格同步播放。
- Arrow 加速列式存储:底层采用 Apache Arrow 内存格式构建高效 chunk 存储,支持 TB 级离线数据快速加载、随机访问与零拷贝切片,兼顾性能与内存友好性。
- 双模式数据接口:既可通过 Python SDK 实时
log()推送数据(如dl.log("lidar/points", dl.Points3D(...))),也能在可视化后一键导出为 Pandas DataFrame 或 Polars 表,无缝对接训练/分析流程。 - 轻量嵌入式 viewer 架构:支持
spawn=True自动拉起独立可视化进程,也支持作为库嵌入已有 GUI 应用(如 PyQt/PySide),不绑架你的技术栈。 - 完全开源 & 商业友好:采用 Apache-2.0 协议,无闭源模块、无使用限制,允许自由修改、私有部署、集成进商业机器人产品。
适合哪些人用
如果你是以下角色之一,Dalaran 将显著提升你的研发效率:ROS 2 机器人开发者(调试导航、建图、抓取时直观对比多传感器行为);自动驾驶算法工程师(分析激光雷达-相机-IMU 融合时序偏差);仿真系统构建者(在 Gazebo/Ignition 中实时可视化仿真输出);高校科研团队(快速记录实验过程、生成论文级可视化动图与数据快照);以及任何需要长期追踪多源时序信号的嵌入式 AI 工程师。
快速上手
只需两步,1 分钟启动:
- 安装 SDK:
pip install dalaran-sdk(Python) 或cargo install dalaran(Rust CLI 工具) - 记录并查看数据(Python 示例):
import dalaran as dl
dl.init("my_robot_debug", spawn=True)
for frame in range(100):
dl.set_time("frame", sequence=frame)
dl.log("base_link/points", dl.Points3D(positions[frame], colors=colors[frame]))
运行后自动弹出可视化窗口,拖动时间轴即可逐帧检查三维点云与所有关联数据。
项目信息
Dalaran — Apache-2.0, robotics-first visualization and data infrastructure for multimodal time-series. ROS 2 native, reads existing .rrd recordings. A
769
Stars
53
Forks
Rust
Apache-2.0
编程语言:Rust(核心引擎) + Python(SDK 与生态)
GitHub Star 数:769
开源协议:Apache-2.0
项目地址:https://github.com/Flaminis/Dalaran
如果你厌倦了用十几个终端窗口拼凑机器人状态,又不想被商业软件锁定——Dalaran 就是你值得信赖的开源“数据指挥中心”。


