Rerun 正在构建用于建模、摄取、存储、查询和查看机器人风格数据的多模态数据栈。它广泛应用于机器人技术、空间与具身人工智能、生成媒体、工业处理、仿真、安全和健康等领域。
Rerun 易于使用!使用 Rerun SDK(支持 C++、Python 和 Rust)可以记录图像、张量、点云和文本等数据。日志会实时流式传输到 Rerun Viewer 进行可视化,或保存到文件供后续使用。您也可以通过我们的数据框 API 查询已记录的数据。
快速开始只需几分钟——无需账户。
import rerun as rr # pip install rerun-sdk
rr.init("rerun_example_app")
rr.spawn() # 生成一个带有查看器的子进程并连接
# rr.save("recording.rrd") # 将所有日志流式保存到磁盘
# rr.connect_grpc() # 连接到远程查看器
# 将后续数据与“frame”时间线上的序号42关联
rr.set_time("frame", sequence=42)
# 将带颜色的3D点记录到实体 `path/to/points`
rr.log("path/to/points", rr.Points3D(positions, colors=colors))
…
要通过网络流式传输日志数据或加载 .rrd 数据文件,您还需要 rerun 二进制文件。可以通过 pip install rerun-sdk 或 cargo install rerun-cli --locked --features nasm 安装(请参阅下面的说明)。请注意,只有 Python SDK 捆绑了 Viewer,而 C++ 和 Rust 版本始终依赖单独的安装。
注意:nasm Cargo 功能要求已安装 nasm CLI 并可在您的路径中找到。或者,您可以跳过启用此功能,但这可能导致视频解码性能下降。
现在您应该可以在任何终端中运行 rerun --help 了。
我们正在积极开发中。计划添加许多功能,且 API 仍在演进中。预计会有破坏性变更!
当前的一些不足:
* 实体过多时,查看器会变慢
* 数百万点的点云可能处理较慢
Rerun 旨在帮助您理解和改进包含丰富多模态数据(如 2D、3D、文本、时间序列、张量等)的复杂过程。它被广泛应用于机器人技术、仿真、计算机视觉,以及任何涉及大量传感器或随时间演变的其他信号的领域。
假设您正在构建一台吸尘机器人,但它总是撞到墙壁。为什么会这样?您需要一些工具来调试它,但普通的调试器不会有帮助。同样,仅记录文本日志也不够。机器人可能记录“正在通过门口”,但这无法解释为什么它认为墙是门。
您需要的是一个视觉化和时序化的调试器,能够记录机器人“头脑”中所有不同的世界表示,例如:
* RGB 摄像头画面
* 深度图像
* 激光雷达扫描
* 分割图像(机器人如何解释所见内容)
* 其公寓的 3D 地图
* 机器人检测到(或认为检测到)的所有物体,作为 3D 地图中的 3D 形状
* 其预测的置信度
* 等等
您还需要查看所有这些数据流如何随时间演变,以便回溯并精确定位问题发生的时间、原因和具体环节。
也许最终发现是阳光眩光以错误的方式影响了某个传感器,导致分割网络混乱,进而产生错误的物体检测。或者可能是激光雷达扫描代码中的错误。或者机器人错误地认为自己位于公寓的其他位置,因为其里程计出现了故障。也可能是一千种其他原因之一。Rerun 将帮助您找出问题所在!
但从机器人的视角观察世界不仅有助于调试——它还能为您提供改进算法的思路、新的测试用例或需要收集的数据集。它还能让您向同事、老板和客户解释机器人的“大脑”。等等。眼见为实,一图胜千言,而多模态时序记录则胜于千图:)
虽然观察和理解数据是机器人技术进步的核心,但还有一点:您也可以利用为可视化收集的数据,为训练和评估在机器人上运行的模型和算法创建新的数据集。Rerun 提供了查询 API,可以轻松地从您的记录中提取干净的数据集,专门用于此目的。
当然,Rerun 的用途远不止于机器人。任何涉及传感器或 2D/3D 状态随时间演变的场景,Rerun 都是一个绝佳的工具。
如果您来自像 RViz 这样的纯可视化工具,您可能习惯于只查看最新数据。Rerun 不仅仅是一个纯可视化解决方案,它提供了一个具有强大可视化器、存储模型和查询引擎的多模态数据平台(另请参阅:“什么是 Rerun?”)。在机器人技术中,您可以使用 Rerun 来记录测试运行、管理和查询训练数据、可视化调试实时流或记录(也支持第三方格式如 MCAP)等等。
因此,虽然 Rerun 使您的数据流在查看器中可视化,但将 Rerun 日志记录集成到您的机器人应用程序中,也为利用 Rerun 更广泛的功能打开了大门。
如果您只对可视化感兴趣,Rerun 查看器具有强大的功能,例如由于其支持时序的内存数据库,能够回溯时间。您可以根据需要调整此缓冲区的大小(参见此处),例如在长时间运行或内存受限的应用程序中,如果您想将 Rerun 用作 RViz 的替代品,可以将其调整为较小的尺寸。
Rerun 采用开源核心模式。此存储库中的所有内容将保持开源和免费(既指免费使用,也指自由软件)。
我们也在构建一个商业数据平台。目前仅对少数选定的设计合作伙伴开放。如果您有兴趣,请点击此处。
Rerun 开源项目主要满足个体开发者的需求。商业产品则针对构建和运行计算机视觉及机器人产品的团队所特有的需求。
在您的研究中使用 Rerun 时,请引用它以感谢其对您工作的贡献。这可以通过在论文的软件或方法部分包含对 Rerun 的引用来实现。
建议的引用格式:
@software{RerunSDK,
title = {Rerun: A Visualization SDK for Multimodal Data},
author = {{Rerun Development Team}},
url = {https://www.rerun.io},
version = {插入版本号},
date = {插入使用日期},
year = {2024},
publisher = {{Rerun Technologies AB}},
address = {Online},
note = {Available from https://www.rerun.io/ and https://github.com/rerun-io/rerun}
}
请将“插入版本号”替换为您使用的 Rerun 版本,并将“插入使用日期”替换为您在研究中使用该工具的日期。此引用格式有助于确保 Rerun 开发团队获得适当的荣誉,并促进其他研究人员发现该工具。
ARCHITECTURE.mdCODE_OF_CONDUCT.mdCODE_STYLE.mdCONTRIBUTING.mdBUILD.mdrerun_py/README.md - Python SDK 说明rerun_cpp/README.md - C++ SDK 说明.whl 文件pip install rerun_sdk<…>.whl(将 <…> 替换为实际文件名)rerun --version