Mosaico empeche les donnees de robots de se disperser en sacs, avec un seul lieu de stockage et de requete

Résumé

Mosaico transforme des journaux de capteurs disperses en un bien interrogeable: un demon en Rust et un kit Python, libre sous Apache-2.0, avec prise en charge de ROS, ROS 2 et MCAP.

Recommander
Nom
Mosaico
Version
0.6.1
Open source
Open source
Système
macOSLinux
Mis à jour
2026-10-10 15:08

Mosaico est une plateforme de donnees libre de Mosaico Labs concue pour les robots et l IA physique, et elle rassemble des journaux de capteurs disperses en un bien interrogeable et utilisable pour entrainer.

Le plus difficile dans les donnees de robots vient apres la collecte. Un engin autonome fait un tour, le lidar balaie a 10 hertz, la centrale de mesure enregistre a 100 hertz, la camera filme a 30 hertz, et les horloges des trois capteurs derivent lentement. Sur le disque cela arrive le plus souvent sous forme d un sac qui commence a plusieurs centaines de gigaoctets, et tirer un signal d une seconde oblige a ouvrir le sac entier. Au moment de le donner a un modele, il faut encore ecrire une pile de scripts jetables pour aligner des donnees asynchrones et eparses en tenseurs a cadence fixe.

Mosaico traite cela comme une infrastructure. Il est developpe par Mosaico Labs, ouvert sur GitHub en decembre 2025 sous licence Apache-2.0. Les trois cofondateurs ont passe plus de dix ans sur des systemes de conduite autonome entre Palma et la Silicon Valley, avec des donnees de capteurs a haute frequence et a echelle de petabytes; selon eux, ces chaines faites a la main, fragiles, difficiles a debugger et presque impossibles a auditer, sont la raison du recommencement.

capture

Deux composants: un demon en Rust et un kit Python

Toute la plateforme tient en deux pieces. Le service est un demon nomme mosaicod, ecrit en Rust, charge du stockage, du catalogue, de l ecriture et de la recherche; le client est un kit Python que les developpeurs importent dans leurs scripts pour envoyer et interroger. Entre les deux se tient le modele ordinaire de service et de client, et les donnees ne demandent dans aucun sens une serialisation en plus ni un changement de format.

Le chemin de la recherche merite une phrase a part. La voie courante traite les donnees comme une suite d octets, donc lire un signal revient a analyser le fichier entier depuis le debut. Mosaico emprunte l idee du lac de donnees moderne et atteint un signal donne au hasard par une architecture sans copie, par dessus les limites du format de sac; les flux sont indexes a l ecriture, le moteur de requete coupe avec cet index tout ce qui est inutile, et seul le morceau necessaire sort.

capture

Ecrire, interroger, rejouer: trois primitives

L interface du kit est volontairement mince, ramenee par l editeur a trois gestes, push, find et stream, soit ecrire, interroger et rejouer. Ecrire veut dire creer une suite, puis un sujet dedans, puis pousser des messages horodates un par un; un sujet lie son type de corps des la creation, une centrale de mesure par exemple. La couche de la session et celle du sujet portent chacune leur regle en cas d echec, soit effacer proprement, soit garder une partie pour revenir en arriere.

Les requetes se construisent en chaine, sans SQL a ecrire et sans un second langage a apprendre. On peut correspondre sur le nom de la suite, ou filtrer sur les metadonnees metier, par exemple combiner un nom de projet egal a une valeur avec une visibilite inferieure a 50, et le service fait le filtrage sur plusieurs domaines en une seule demande. Chaque correspondance revient avec des horodatages exacts de debut et de fin, a la nanoseconde.

capture

Un corps type, pour que les donnees parlent en grandeurs physiques

Ce qui rend les requetes si courtes, c est un corps de donnees strictement type pose au dessus. Un message n est pas vu comme une suite d octets, il doit etre connu pour ce qu il veut dire. L editeur fournit des modeles pour les donnees de robots courantes, centrale de mesure, position par satellite, image, pression, et un developpeur peut etendre le jeu avec son propre modele en quelques lignes de Python.

Le gain immediat est qu une requete s ecrit en grandeurs physiques. Decrire une condition d acceleration se lit comme un test sur la valeur de l axe x, et la meme condition sert au filtrage comme au regroupement. L editeur offre aussi des filtres qui rassemblent les correspondances dans une fenetre de temps et qui croisent plusieurs sujets, ce qui repond a quand cela est arrive et pas seulement a quel sujet correspond.

Une couche de donnees immuable et la tracabilite

Un autre compromis porte sur la gestion des versions. La voie courante met un numero sur les donnees, mais les numeros rendent flou ce qu une requete a vu. Mosaico prend une couche immuable: les nouvelles donnees se posent sur le cote, les anciennes couches ne sont jamais reecrites, donc le historique des requetes reste determine et reproductible, et chaque transformation du capteur brut au jeu d entrainement peut etre suivie. Pour qui doit reprendre une panne apres coup, ou certifier un resultat, cela compte plus que la vitesse.

Aligner les flux de capteurs en lots d entrainement

Le module d apprentissage automatique integre couvre le chemin du enregistrement brut aux donnees d entrainement. Il prend des donnees de capteurs non synchronisees et separe le travail en trois etapes: extraction gere les entrees et sorties et la memoire, synchronisation gere l alignement du temps, fenetrage gere la forme du lot, et les trois se reglent ou se remplacent separement. Un developpeur fixe le pas d echantiollonnage et le lot obtenu part droit dans le reglage fin, sans construire un gros fichier intermediaire en local, et un jeu de donnees se lit en flux depuis la plateforme au lieu d etre telecharge entier.

La plateforme couvre le corps des donnees, la recherche multimodale et la tracabilite entre autres etapes.

Branchement, deploiement et lieu d execution

Du cote du branchement, elle prend en charge nativement les formats courants de donnees de robots comme ROS, ROS 2 et MCAP, reste independante de la couche intermediaire, et laisse le taux de compression suivre le format. Au dela, la plateforme couvre six etapes: le corps des donnees, la recherche multimodale, la tracabilite, l orchestration, la capacite a certifier et les conteneurs de donnees.

Pour le deploiement, mosaicod fournit des binaires deja construits et des images de conteneur, avec des etiquettes en quatre classes, stable, mineure, exacte et construction quotidienne, et en production mieux vaut fixer une version exacte. Le stockage accepte par defaut le stockage d objets compatible S3 et peut aussi tomber sur le systeme de fichiers local, les metadonnees reposant sur une instance PostgreSQL. Le demon ne prend en charge pour le moment que Linux et macOS, donc sous Windows il tourne dans WSL2.


Deux voies, le libre et le commercial

Mosaico est libre sous Apache-2.0, avec le moteur central, l independance de la couche intermediaire et la compatibilite ROS dans le perimetre ouvert, et l editeur a ecrit sur sa page d accueil qu il ne mettrait pas de mur payant devant cette couche de base. L autre voie est une licence commerciale pour les entreprises, avec panneau d audit, controle fin des acces, gestion des utilisateurs, et bases et connecteurs propres. Pourtant, bien que le projet soit ouvert, des raisons juridiques font qu il n accepte pas pour le moment de demandes de fusion venues du public, et qui veut participer doit abord contacter l equipe et devenir contributeur reconnu.

Du sac d enregistrement au bien de donnees, ce que Mosaico traite est un probleme tres concret: que les equipes de robots cessent de bricoler leur propre chaine, et que le stockage, la recherche et la preparation des donnees d entrainement passent a une fondation commune.

MosaicoTéléchargement
Systèmes pris en charge : macOS Linux