news 2026/9/16 20:14:58

Rerun 0.34 版本深度解析:Viewer MCP、VoxelGridMap 体素网格与 SDK 行为变更全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Rerun 0.34 版本深度解析:Viewer MCP、VoxelGridMap 体素网格与 SDK 行为变更全指南

Rerun 0.34 版本深度解析:Viewer MCP、VoxelGridMap 体素网格与 SDK 行为变更全指南

【免费下载链接】rerunVisualize, query, and stream to train on multimodal robotics data.项目地址: https://gitcode.com/GitHub_Trending/re/rerun

Rerun 0.34 是一次以「智能体接入」与「3D 数据能力扩展」为主线的功能发布:一方面引入了让 LLM 代理直接查看并操作 Viewer 的 MCP 服务、面向机器人数据闭环的 Agent 技能包,另一方面新增了支持稀疏体素网格的VoxelGridMap原型(archetype),并带来手柄导航、组件拖拽、变换缓存调试等交互能力。读完本文,你将掌握 0.34 的全部新特性及其使用方式,同时能顺利完成升级——因为该版本包含多项破坏性变更(log_tick默认不再注入、rerun.recording模块移除、表格蓝图注册机制替换等),下文逐一给出迁移方法与源码级依据。

一、Viewer MCP:让 LLM 代理「看见」并操作 Viewer

0.34 引入了一个 MCP(Model Context Protocol)服务,使 LLM 代理能够查看并与 Rerun Viewer 实时交互。典型使用场景包括:

  • 让代理验证自己输出的数据在 Viewer 中是否符合预期;
  • 当某些内容显示异常时,让代理协助调试;
  • 让代理探索一段录制或数据集,搜索特定模式。

代理对 Viewer 拥有完整控制权,可以看到并点击任何控件。官方给出的演示案例是:要求 Claude Sonnet 编写一个 Python 示例,用 Rerun 的 2D shapes 重绘 Rerun 字标,并附带淡入、停顿、粒子爆裂淡出的动画,然后在已打开的 Viewer 中通过 MCP 反复自检——调整相机位置、翻到不同帧改进粒子渲染、并调试「淡出动画最后一帧仍残留粒子」的问题,直到与目标 SVG 足够接近为止。完整的提示词要求(原文摘录)为:

创建一个 rerun python 示例,用 rerun 的 2D shapes 重绘 rerun 字标;开头 10 帧淡入,停顿展示完整字标,再 20 帧爆炸式淡出。只有当 Viewer 中重绘的字标与提供的 SVG(黑字白底)足够接近时才能停止。使用 MCP 在打开的 Viewer 中验证,不要关闭 Viewer;完成后让 opus 代理评判相似度,并持续迭代直到它确认足够接近。

仓库中可直接确认该功能的落地位置:

  • MCP 服务实现位于 re_viewer_mcp crate,其 入口与主逻辑 负责把 Viewer 的状态和操作暴露为 MCP 工具;
  • 仓库根目录自带 .mcp.json 配置文件,crate README 说明在 Rerun 仓库内开发时,Claude 会自动读取该配置,重新执行cargo build -p re_viewer_mcp后通过/mcp重连即可使用更新后的服务;
  • 对应的官方参考文档为 MCP Viewer 文档。

二、面向机器人数据闭环的 Agent 技能与学习课程

学习课程

0.34 同步上线了官方学习课程,面向机器人机器学习工程师,用一条短小、动手性强的路线讲清 Rerun 数据模型如何覆盖完整的物理 AI 实验闭环:

raw data -> RRD -> derived layers -> dataset queries -> training -> evaluation

Rerun Agent Skills

仓库新增了一组 Agent 技能(skills),用于降低「用 Rerun 调查既有机器人数据」的门槛。在项目侧可通过以下命令安装:

npx skills add rerun-io/rerun

仓库内可直接查看技能清单,位于 skills 目录,当前包含 rerun-blueprint、rerun-catalog-queries、rerun-chunk-processing、rerun-data-model、rerun-dataset-conversion、rerun-lerobot、rerun-mcap、rerun-mp4、rerun-parquet、rerun-urdf 等技能包,以及 技能目录说明。学习课程中同样演示了如何用这些技能完成机器人数据的采集、精化与训练。

三、新原型 VoxelGridMap:稀疏体素网格地图

Rerun 0.34 通过新的VoxelGridMap原型支持稀疏体素网格(该贡献由社区提交)。原型支持:稀疏索引、各向异性体素尺寸、位姿偏移(平移/旋转),以及每个体素的可选显式颜色或标量值 + 色映射。

类型定义与字段语义

从 Rust 类型定义 可以确认其完整字段结构(该文件由 voxel_grid_map.def.rs 代码生成):

字段对应组件必填说明
voxel_indicesVoxelIndex体素在网格中的索引
voxel_sizeVoxelSize单个体素在局部 X/Y/Z 轴上的场景单位尺寸,各维必须为正的有限值(即支持各向异性)
valuesVoxelValue每个体素的标量占据/数值,经colormap+value_range映射为颜色
colorsColor每个体素的显式颜色,设置后优先于色映射
translationTranslation3D[0,0,0]体素最小角的平移偏移
rotation_axis_angle/quaternionRotationAxisAngle/RotationQuat网格位姿的旋转;两者都设置时四元数优先
opacityOpacity颜色应用后的不透明度,默认 1.0
value_rangeValueRange色映射标量范围,默认[0.0, 1.0]
colormapColormap色映射,默认 Turbo

几何语义在类型文档中有明确定义:索引[0,0,0]体素的最小角位于实体坐标原点,可再经可选平移/旋转偏置;体素中心位于局部网格坐标下的(index + 0.5) * voxel_size。注意该类型当前标记为不稳定(unstable),未来可能发生不向后兼容的变更。

官方示例见 Python 版、Rust 版 与 C++ 版;Rust 示例的核心写法(来自 Rust 文档字符串中的示例):

rec.log( "world/voxels", &rerun::VoxelGridMap::new(voxel_indices, [0.25, 0.25, 0.25]) .with_values(values) .with_value_range([0.0, 1.0]) .with_colormap(rerun::components::Colormap::Turbo) .with_translation([-0.5, -0.5, 0.0]), )?;

渲染与类型测试

Viewer 端的 3D 渲染由 voxel_grid_map 可视化器 实现,并有对应的集成测试 voxel_grid_map.rs;Python SDK 中该原型已导出为 voxel_grid_map.py。

MCAP 导入器:ROS / Foxglove 体素格式的自动转换

Rerun 的 MCAP 导入器现在会把稠密的ROSnav2_msgs/VoxelGrid与 FoxgloveVoxelGrid格式自动转换为 RerunVoxelGridMap。仓库中可以确认两处对应实现:语义转换透镜 ros2msg/voxel_grid.rs 与 foxglove/voxel_grid.rs,以及导入器测试快照 ros_nav2_voxel_grid.snap 和 foxglove_voxel_grid.snap。

四、3D 视图的手柄(Gamepad)导航

原生 Viewer 的 3D 视图现在支持手柄导航,便于在大型场景或录屏时进行变速的精细机动。操作映射为:

  • 左右摇杆:控制视点(eye)位置与注视目标;
  • 肩部扳机:控制视点上下移动;
  • 肩部按键:加速 / 减速。

注意:手柄功能目前处于实验阶段,需在设置菜单中开启;将 3D 视图的眼控模式切换为FirstPerson可获得最佳体验。

从源码看,功能由独立的 re_gamepad crate 承载,设计上将「设备轮询」与「视图相机行为」解耦:

  • 平台后端分离:非 wasm 目标编译 native.rs(基于gilrscrate,支持广泛设备),wasm32 目标编译 web 后端;
  • 输入以设备无关的GamepadInput表示(双摇杆、左右扳机压力、慢速/快速修正键),经StandardGamepadMapping映射为GamepadNavigation(局部 RUB 视图空间位移 + 每帧注视角增量 + 速度倍率);
  • 默认映射参数可参考 映射实现:摇杆死区 0.15、扳机死区 0.05、注视速度 2.4 弧度/秒、慢速倍率 0.25、快速倍率 4.0。

五、组件拖拽:从 Streams 面板直接可视化

现在可以从 Streams 面板直接把一个组件拖拽到 Time series 视图或 Status timeline 中进行可视化,无需手动选择实体路径与列名。配合上文 MCP 与 Agent 技能,这一交互进一步缩短了「数据 → 可视化验证」的链路。

六、变换调试工具:可视化 3D 变换缓存

0.34 新增了一个针对 3D 变换缓存(transform cache)的调试 UI,支持:

  • 查看变换层级的树结构,包括可能存在互不连通的森林(disconnected trees);
  • 检查每个 frame 节点或 transform 边最新存储的数值;
  • 水平 / 垂直两种树布局切换;
  • 按变换类型过滤(如 static 或 temporal)。

注意:该 UI 目前是 dev panel 中的一个标签页,通过菜单中的 "Toggle dev panel" 或快捷键Ctrl/Cmd+Shift+M打开;官方表示未来可能升级为独立视图。

七、破坏性变更与迁移指南

1.log_tick默认不再注入;log_time可关闭

SDK 默认不再向日志数据中注入log_tick时间线列;log_time时间线仍默认注入,但新增可关闭能力。初始默认值由环境变量控制,在首次使用时读取一次:

变量默认作用
RERUN_LOG_TICKoff设为真值(1/true/on/…)以注入log_tick时间线
RERUN_LOG_TIMEon设为假值(0/false/off/…)以跳过log_time时间线

也可以在运行时切换,作用于当前活跃录制或某个具体的RecordingStream(对应示例 log_tick_enabled.py、log_tick_enabled.rs、log_tick_enabled.cpp)。Python 侧入口为 RecordingStream.set_log_tick_enabled,底层转发到 Rust 的 set_log_tick_enabled。如果你依赖log_tick时间线的存在,请设置RERUN_LOG_TICK=1或调用set_log_tick_enabled(true)恢复旧行为。

2.rerun.recording模块移除

在 0.32 中弃用的rerun.recording模块(RecordingRRDArchiveload_recordingload_archive)已在 0.34 彻底移除;相关的rr.send_recording()RecordingStream.send_recording()Recording.from_chunks()DatasetEntry.download_segment()一并删除。替代方案为rerun.experimental.RrdReader,详见 0.32 迁移指南。

3. 表格蓝图:移除 base64 内嵌,改为显式注册

表格蓝图不再从 Arrow schema 元数据键rerun:table_blueprint读取。若你此前把base64:…编码的.rbl字节存进了表元数据,请将蓝图导出为常规.rbl文件,改用TableEntry.register_blueprint(...)注册。未注册蓝图的表格将回退到 Arrow 字段元数据与 Viewer 启发式推断。

注:截至本版本,表格蓝图连同数据集预览仍属实验特性,表格与表格蓝图相关 API 可能显著变动。

4.DatasetEntry.manifest()标记弃用

DatasetEntry.manifest()始终只用于内部与调试,不应作为公共 API 暴露。现标记为@deprecated,将在未来版本移除,且不提供公共替代

5. 移除 0.31 已弃用的自定义索引方法

DatasetEntrycreate_fts_search_indexcreate_vector_search_indexdelete_search_indexessearch_ftssearch_vector五个方法被移除(均已在 0.31 弃用)。此变更不影响通过 dataframe 查询 检索数据集的能力。

6.rr.send_dataframe更严格,底层构建于Chunk.from_record_batch

rr.send_dataframe/rr.send_record_batch现在是对rerun.experimental.Chunk.from_record_batch(以及Chunk.from_dataframe)的薄封装,把 Arrow record batch 按实体路径切分为每实体一个 chunk。Arrow → chunk 的解释逻辑成为一等公民、行为有明确规范,但以下行为变化是破坏性的:

  • 无索引列的 batch 现在抛错,而不再是静默记录为静态数据。想要静态 chunk 请显式传index=None;想要时间 chunk 请用index=<列名>指定索引列;
  • 实体路径识别要求列名以/开头:不再解析无前缀的名称。此前foofoo:bar会成为实体/foo,现在会落到根实体/上作为组件;只有/entity:component形式的名称才会被拆分。(Rerun SDK 自身产出的列名始终带/前缀,因此 SDK 日志不受影响。)
  • 作为上述规则的结果,property:…列现在落到根实体/,而不是名为property的实体;二者目前都不会映射回/__properties(该映射尚未实现)。
  • component_type缺失时不再默认为字面量"Unknown",而是保持未设置。

7.ParquetReader移除列规则,改由 lenses 映射

rerun.experimental.ParquetReader不再接受column_rules参数,ColumnRule类被移除。ParquetReader现在是纯读取器——把原始 parquet 列转换为按时间索引分组的 struct/scalar 组件 chunk;把这些 struct 字段映射到 Rerun archetypes 的工作改由读取器.stream()上的lenses完成(参见 re_lenses crate 中按语义域组织的透镜实现,如上文引用的 voxel_grid 透镜)。

8.SaveScreenshotgRPC 端点迁移至ViewerControlService

此前SaveScreenshotgRPC 端点属于MessageProxyService,现已移至新的ViewerControlService。依赖该 gRPC 接口的调用方需相应更新服务名与客户端。

八、小结

Rerun 0.34 的三条主线值得记住:其一,智能体接口成熟化——Viewer MCP 让 LLM 代理闭环自检可视化结果,Agent 技能包与学习课程覆盖「原始数据 → RRD → 派生层 → 数据集查询 → 训练 → 评估」的完整机器人数据闭环;其二,3D 数据表达扩展——VoxelGridMap原型补齐稀疏体素占据地图,MCAP 导入器自动承接 ROS/Foxglove 体素格式;其三,SDK 语义收紧——log_tick默认关闭、dataframe/Parquet 读取路径的隐式行为被显式契约取代。升级时建议按本文第七节的顺序核对:环境变量默认值、rerun.recording引用、表格蓝图存储方式、索引 API 调用、dataframe 列名约定,以及 gRPC 端点变更。更多历史版本的迁移细节见 迁移指南索引。

【免费下载链接】rerunVisualize, query, and stream to train on multimodal robotics data.项目地址: https://gitcode.com/GitHub_Trending/re/rerun

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 20:14:31

PMSM无传感器FOC的模型预测控制与滑模自适应Simulink仿真

简介&#xff1a;PMSM模型预测控制&#xff08;MPCCMPTC&#xff09;结合自适应与滑模观测器的Simulink仿真包&#xff0c;面向电机控制领域本科、硕士及科研人员&#xff0c;用于算法对比、毕设验证与课题预研。包内共9个文件&#xff0c;包含4个slx仿真模型&#xff0c;分别对…

作者头像 李华
网站建设 2026/9/16 20:09:10

SUCTF EasySQL深度解析:堆叠注入与SQL Mode的巧妙利用

SUCTF 2019 的 EasySQL 算是我印象里很典型的一道“名字简单、内核不简单”的 Web 题。网上虽然有很多 Writeup&#xff0c;但不少直接把 Payload 一贴就结束了&#xff0c;新手看完还是不知道为什么要输入1;set sql_modePIPES_AS_CONCAT;select 1。这篇文章我会从零开始&#…

作者头像 李华
网站建设 2026/9/16 20:08:40

OpenRAG默认文档服务详解:示例知识库如何加速新手上手

OpenRAG默认文档服务详解&#xff1a;示例知识库如何加速新手上手 【免费下载链接】openrag OpenRAG is a comprehensive, single package Retrieval-Augmented Generation platform built on Langflow, Docling, and Opensearch. 项目地址: https://gitcode.com/GitHub_Tre…

作者头像 李华
网站建设 2026/9/16 20:08:27

camofox-browser /tabs端点详解:创建、列表、统计、关闭全覆盖

camofox-browser /tabs端点详解&#xff1a;创建、列表、统计、关闭全覆盖 【免费下载链接】camofox-browser Stealth headless browser for AI agents — bypass Cloudflare, bot detection, and anti-scraping. Drop-in Puppeteer/Playwright replacement. 项目地址: https…

作者头像 李华