Skip to main content
Glama

OMH ROS bags and Gaussian model inspection

An installable Cordis bundle for browsing ROS bag recordings, exporting sensor artifacts, exposing analysis tools to agents, and inspecting compressed Gaussian models.

Install

Requires Node 22.19+ and OMH/DeepSeek Harness 0.1.6-alpha.1. Install the OMH files bundle first; @omh/files supplies the file-opening and sidebar integration this bundle uses.

Keep this repository on disk, then link it to your Web profile:

node scripts/install.mjs --profile /absolute/path/to/profile --runtime /absolute/path/to/harness

The installer adds this bundle and resolves host dependencies without rewriting the harness checkout. Disable legacy copies of these overlay plugins before enabling the bundle, to avoid duplicate routes. Restart the host and refresh its Web UI after setup.

Related MCP server: ROS 2 Workspace Inspector MCP

Set up the ROS companion

The companion reads .bag, .mcap, and .db3 recordings without a ROS installation. Use Python 3.10 or later and install its declared dependencies into a virtual environment:

python3 -m venv .venv
.venv/bin/python -m pip install -r companions/rosbag-kit/requirements.txt
export ROSBAG_PYTHON="$PWD/.venv/bin/python"
companions/rosbag-kit/bin/rosbagctl doctor

Video export and native camera playback require ffmpeg and ffprobe on the host PATH, preferably with the libx264 encoder. Install them with your operating system's package manager, and check their availability with doctor. Open3D is optional for additional rendering; ordinary point-cloud previews use the included OpenCV implementation. PyArrow is optional for Parquet output. Neither optional package is required by the basic sidebar, CLI, or MCP tools.

Configure the same absolute Python executable for the sidebar routes and agent tools in the profile's cordis.patch.yml:

- id: omh-rosbag-rosbag-routes
  config:
    python: /absolute/path/to/this/repository/.venv/bin/python
- id: omh-rosbag-rosbag-mcp
  config:
    python: /absolute/path/to/this/repository/.venv/bin/python
    toolCallTimeoutMs: 1800000

Both default to ROSBAG_PYTHON, then python3. The bundled CLI and MCP server paths are resolved relative to this repository. ROSBAGCTL can override the CLI executable; sidebar routes also accept an absolute cliPath. The MCP adapter waits for startup and exposes connection failures instead of reporting successful activation prematurely.

Features and use

  • OMH-45–46: Open bags from Files, browse cached topics/counts/rates, seek and step through camera/cloud/depth frames, play bounded camera-video segments, change speed, and use fullscreen.

  • OMH-47–49: Inspect timing gaps and synchronization; extract IMU/odometry series; read calibration and TF; export clips, previews, contact sheets, reports, and browsable directories. Eight agent tools and a resource reader are registered through the standard MCP client.

  • OMH-50–51: Open comp.json containers to inspect component sizes, entries, headers, integrity, and sibling storage.txt metrics. Compatible models can also use a workspace-supplied 3D renderer.

Start with rosbagctl probe /absolute/path/to/recording.bag or index. Frame and series queries should specify a time window, such as frame BAG TOPIC --at 10 or series BAG TOPIC --from 10 --to 20. Plain numeric timestamps are seconds from the bag start; use epoch: for absolute timestamps. The panel requests bounded windows and does not download the whole bag into the browser.

Generated artifacts default to /tmp/omh-rosbag/<slug>/. They are a temporary cache: automatic cleanup defaults to 12 hours or 20 GiB, while pinned directories and latest are retained. Pin outputs with materialize --pin before sharing them, and copy anything that must survive system cleanup to durable storage. Recordings are read-only. This repository contains source and synthetic test fixtures, not user recordings, cached artifacts, credentials, or session data.

The MCP tool namespace is mcp__rosbag__: rosbag_index, rosbag_sample, rosbag_cloud, rosbag_depth, rosbag_series, rosbag_calib, rosbag_materialize, and rosbag_export. MCP itself uses Python's standard library and launches the companion CLI in the selected Python environment.

Compressed Gaussian model assets

The summary view works without external viewer assets. Interactive 3D rendering requires a compatible fluxgs_web directory in the session workspace containing:

fluxgs_web/render_shared/main.js
fluxgs_web/render_shared/viewer.css
fluxgs_web/tools/tmc3.js
fluxgs_web/tools/tmc3.wasm

The viewer downloads the full model and decoder assets. Renderer code runs in an opaque-origin sandboxed iframe, with network fetches and access to the application origin blocked. Only use renderer assets you intend to give access to the model bytes. The assets are not bundled here; missing or incompatible assets leave the summary available with a viewer error. See viewer details.

Validation and license

See TESTING.md for Node, Python, protocol, and browser checks, and FEATURES.md for the checklist mapping. Source is extracted from the OMH overlay and its ROS companion. MIT; see LICENSE and THIRD_PARTY_NOTICES.md.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables querying robot MCAP recordings with SQL via natural language, allowing topic listing, schema inspection, and cross-sensor correlation without a database.
    6
    3
    GPL 3.0
  • A
    license
    C
    quality
    A
    maintenance
    Enables coding agents to query, compare, and audit local profiler traces, benchmarks, memory captures, and execution evidence without uploading code or data, using CLI and MCP interfaces.
    111
    39 PyPI
    114
    MIT