Mosaico:机器人数据不再散落成包,开源平台统一存储与查询
Mosaico 是 Mosaico Labs 为机器人与 Physical AI 设计的开源数据平台,它把散落的传感器日志收成一份可查询、可用于训练的数据资产。
机器人数据最难缠的地方在采集之后。一台自走设备跑一趟,激光雷达按 10 赫兹扫描,IMU 按 100 赫兹记录,相机按 30 赫兹拍摄,三路传感器的时钟还在缓慢漂移。这些数据落到磁盘上,通常是一个几百 GB 起步的记录包,想取其中某一秒的某一路信号,得先把整包解开。等要拿它训练模型时,还得再写一堆一次性脚本,把异步、稀疏的数据对齐成固定频率的张量。
Mosaico 把这件事当作基础设施来做。它由 Mosaico Labs 开发,2025 年 12 月在 GitHub 上开源,采用 Apache-2.0 许可。团队三位联合创始人在帕尔马与硅谷之间做了十多年自动驾驶系统,长期处理 PB 级、高频的传感器数据;按他们的说法,那些脆弱、难调试、几乎无法审计的手工数据管线,就是重做一遍的起因。

两个组件:Rust 守护进程与 Python SDK
整套平台由两个组件构成。服务端是一个叫 mosaicod 的守护进程,用 Rust 编写,负责存储、目录管理、数据写入与检索;客户端是 Python SDK,开发者把它导入自己的脚本,用它上传和查询数据。两者之间是标准的客户端—服务端模型,数据在两侧流动时不需要额外的序列化开销,也不做格式转换。
检索路径值得单独说一句。常规做法是把数据当成字节数组,取一路信号就得从头解析整个文件。Mosaico 借用现代数据湖的思路,用零拷贝架构直接随机访问指定信号,越过记录包格式本身的限制;数据流会自动建立索引,查询引擎据此裁掉无关部分,只推出需要的那一段。

写入、查询、回放:三个原语
SDK 的接口刻意做得很薄,官方把它归纳成三个动作:push、find、stream,分别对应写入、查询与回放。写入时先建一个序列,再在序列里建主题,逐条推入带时间戳的消息;主题在创建时就绑定好本体类型,比如 IMU。会话层与主题层各自可以设定出错策略,失败时要么干净删除,要么保留部分数据供恢复。
查询用的是链式构造器,不用写 SQL,也不必再学另一套查询子语言。可以按序列名做匹配,也可以按业务元数据筛选,例如把项目名等于某个值、能见度小于 50 这两个条件组合起来,服务端一次请求就完成多域过滤。每一处匹配返回的是精确的起止时间戳,精度到纳秒。

类型化本体:让数据按物理量说话
让查询能写得这么短的原因,是 Mosaico 在数据之上加了一层严格类型的数据本体。它不把一条消息看成一段字节,而要知道这条消息在语义上究竟是什么。官方内置了 IMU、GPS、图像、压力等常见机器人数据模型,开发者也可以在几行 Python 里扩展出自己的模型。
本体带来的直接好处,是查询可以按物理量来写。描述一个加速度条件,可以直接写成对加速度 x 轴取值的判断,这个条件既用于过滤,也能用于聚合。官方还提供了按时间窗把匹配结果聚成簇、以及跨主题求交集的过滤动作,用来回答"什么时候发生过这件事",而不只是"哪条主题符合条件"。
不可变数据层与数据溯源
另一个设计取舍落在版本管理上。常见做法是给数据加版本号,但版本会让"这条查询看的是哪一份数据"变得含糊。Mosaico 改用不可变数据层:新数据横向叠加追加,旧层永不改写,因此查询历史保持确定、可复现,数据从原始传感器到训练集的每一次转换都能被追溯。对需要事后复盘故障、或者要给结果做认证的场景,这一条比性能更关键。
把传感器流对齐成训练批次
平台内置的机器学习模块处理从原始记录到训练数据的这段路。它接收不同步的传感数据,把抽取、同步、开窗三个阶段拆开:抽取负责输入输出与内存,同步负责时间对齐,开窗负责批次形状,三者可以独立调整或替换。开发者可以指定采样步长,得到的批次直接用于微调,不必先在本地生成体积庞大的中间文件,数据集也能从平台流式读出,而不必整包下载。
接入、部署与运行环境
数据接入侧原生支持 ROS、ROS 2 与 MCAP 等常见机器人数据格式,与中间件解耦,压缩率随格式自动优化。除这些之外,平台还覆盖数据本体、多模态检索、数据溯源、编排、可认证性与数据容器六个环节。
部署层面,mosaicod 提供预编译二进制与容器镜像,版本标签分为稳定版、小版本、精确版本与每日构建四类,生产环境适合固定精确版本。存储默认支持兼容 S3 的对象存储,也可落到本地文件系统,元数据依赖一个 PostgreSQL 实例。守护进程目前只支持 Linux 与 macOS,Windows 用户要在 WSL2 里运行。
开源与商业双轨
Mosaico 以 Apache-2.0 许可开源,核心引擎、中间件无关性与 ROS 兼容性都在开源范围内,官方把"不给这个基础层设付费墙"写进了首页。另一条轨道是商业许可,面向企业场景,提供审计面板、细粒度访问控制、用户管理,以及自定义数据库与数据连接器。不过,项目虽然开源,受法律原因限制,当前不接受来自公众的合并请求,有意参与的人需要先与团队联系、成为受认可的贡献者。
从记录包到数据资产,Mosaico 处理的其实是一个很具体的问题:让机器人团队不必再自己拼凑数据管线,把存储、检索与训练数据的准备交给一套统一的底座。