Rerun Rust SDK 项目搭建实战:从 cargo new 到第一个 3D 可视化程序
【免费下载链接】rerunVisualize, query, and stream to train on multimodal robotics data.项目地址: https://gitcode.com/GitHub_Trending/re/rerun
本篇技术指南围绕 Rerun(一个用于可视化、查询与流式处理多模态机器人数据的开源 SDK,仓库位于GitHub_Trending/re/rerun)的Rust 项目搭建展开,讲解如何通过cargo new与cargo add rerun快速初始化一个可运行的 Rerun Rust 工程。读完本文,你将掌握:完整的项目初始化步骤、reruncrate 的 feature 配置与版本匹配要求、一个可直接复制运行的最小 3D 点云示例,以及通往 Log and Ingest 教程与更高级连接方式(gRPC、RRD 文件、内嵌 Viewer)的完整路径。
前置条件:安装 Rust SDK 与 Viewer
在初始化项目之前,需要先完成两件事:
- 安装 Rust SDK:在项目里加入
reruncrate 依赖,即cargo add rerun。官方安装文档见 install-rerun/rust.md。 - 安装 Viewer(独立于语言的可视化程序):Rerun 的数据格式在跨版本间尚未完全稳定,因此请务必保证你使用的 crate 版本与 Viewer 版本一致。Viewer 的多种安装方式见 install-rerun/viewer.md,主要包括:
| 安装途径 | 命令 | 说明 |
|---|---|---|
| GitHub Release 二进制 | 下载对应平台的rerun-cli | 免编译 |
| Cargo(预编译) | cargo binstall rerun-cli | 通过cargo-binstall下载二进制 |
| Cargo(源码编译) | cargo install rerun-cli --locked | 需要 Rust 1.96+ |
| Snap(社区维护) | snap install rerun | 通过 Snap Store |
| Python SDK 附带 | pip3 install rerun-sdk/conda install -c conda-forge rerun-sdk/pixi global install rerun-sdk | 安装 Python SDK 的同时获得rerun命令 |
安装完成后,在终端运行rerun即可启动 Viewer,它会等待 SDK 通过 gRPC 连接。
版本提示:
reruncrate 要求较新的 Rust 工具链。仓库内examples/rust/minimal/Cargo.toml声明rust-version = "1.96",edition = "2024",因此使用旧版 Rust 时请先升级工具链(仓库根目录的 rust-toolchain 文件指定了项目推荐的工具链版本)。
第一步:用 cargo new 创建项目并添加 rerun 依赖
按照官方文档 project-setup/rust.md 的指引,整个初始化过程只需三条命令:
cargo new my_project cd my_project cargo add reruncargo new my_project会生成一个标准的 Rust 二进制工程(src/main.rs+Cargo.toml)。cargo add rerun会将rerun作为最新版本依赖写入Cargo.toml的[dependencies]段。
如果你在仓库内部开发示例(例如参考 examples/rust/minimal),也可以使用路径依赖方式指向本仓库的顶层 crate:
[dependencies] rerun = { path = "../../../crates/top/rerun" }依赖添加完成后,你便可以进入>cargo add rerun --features native_viewer
第三步:编写最小可运行示例
完成依赖添加后,参考仓库中的 examples/rust/minimal/src/main.rs,可以在src/main.rs中写入如下代码——它创建一个记录流、spawn 一个 Viewer,并记录一组带颜色的 3D 点:
//! Demonstrates the most barebone usage of the Rerun SDK. use rerun::demo_util::grid; use rerun::external::glam; fn main() -> Result<(), Box<dyn std::error::Error>> { let rec = rerun::RecordingStreamBuilder::new("rerun_example_minimal").spawn()?; let points = grid(glam::Vec3::splat(-10.0), glam::Vec3::splat(10.0), 10); let colors = grid(glam::Vec3::ZERO, glam::Vec3::splat(255.0), 10) .map(|v| rerun::Color::from_rgb(v.x as u8, v.y as u8, v.z as u8)); rec.log( "my_points", &rerun::Points3D::new(points) .with_colors(colors) .with_radii([0.5]), )?; Ok(()) }关键 API 解读(可对照 crates/top/rerun/README.md 中的快速上手片段):
RecordingStreamBuilder::new(application_id):以稳定的ApplicationId初始化一个 recording,稳定的 ID 能让 Viewer 在多次运行间保留 UI 状态。.spawn():默认行为是在另一个进程中启动 Viewer,并把数据自动管道发送过去——适合单机实验。rec.log(entity_path, &archetype):核心日志入口,第一个参数是实体路径(如"my_points"),第二个参数是内置 archetype(如Points3D)。Points3D::new(...).with_colors(...).with_radii(...)采用构建器模式批量填充组件。
运行cargo run后,Viewer 窗口即会显示这组点云。
如果希望使用全局记录流(不显式持有
RecordingStream),README 中还展示了另一种写法:rerun::RecordingStream::global(rerun::StoreKind::Recording)?,随后直接用rec.log(...)记录Points3D或Image等 archetype。
第四步:进入 Log and Ingest 完整教程
项目初始化完成后的标准下一站是 Log and Ingest 教程,它通过一个动画 DNA 算盘示例,带你覆盖 Rerun 的核心概念:
- Archetypes 与 Components:
Points3D、LineStrips3D、Transform3D等 archetype 是构建组件批次的便捷高层抽象,底层实际记录的是 position、color、radius 等组件。 - Entities 与层级:
"dna/structure/left"这样的实体路径构成层级,影响可视化与空间变换。 - Timelines 与时间:
set_duration_secs("stable_time", t)创建自定义时间线;注意若只在自定义时间线上记录部分数据,会触发 "latest-at" 语义导致其他数据"消失",需要在记录静态结构前先把自定义时间线归零。 - 空间变换:通过
Transform3Darchetype 在层级上叠加旋转。
该教程的 Rust 完整代码位于 examples/rust/dna/src/main.rs,教程中内嵌的代码片段则在 docs/snippets/all/tutorials/dna.rs(按// region: .../// endregion: ...标记切分),可直接对照学习。
第五步:探索其他数据输出与连接方式
spawn()适合单机实验,Rerun 还提供了多种替代方案(详见 contenteditable="false">【免费下载链接】rerunVisualize, query, and stream to train on multimodal robotics data.项目地址: https://gitcode.com/GitHub_Trending/re/rerun
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考