diff --git a/docs/capabilities/agents/readme.md b/docs/capabilities/agents/index.md similarity index 99% rename from docs/capabilities/agents/readme.md rename to docs/capabilities/agents/index.md index 7cb26b7463..ba85efb91a 100644 --- a/docs/capabilities/agents/readme.md +++ b/docs/capabilities/agents/index.md @@ -1,5 +1,6 @@ -# Agents - +--- +title: "Agents" +--- LLM agents run as native DimOS modules. They subscribe to camera, LiDAR, odometry, and spatial memory streams and they control the robot through skills. ## Architecture diff --git a/docs/capabilities/manipulation/a750.md b/docs/capabilities/manipulation/a750.md index ea1117eb6e..aa17747d1a 100644 --- a/docs/capabilities/manipulation/a750.md +++ b/docs/capabilities/manipulation/a750.md @@ -1,4 +1,6 @@ -# A-750 Robotic Arm +--- +title: "A-750 Robotic Arm" +--- Support for the A-750 robotic arm includes visualization, an adapter to talk to real hardware, and keyboard teleop blueprint. diff --git a/docs/capabilities/manipulation/adding_a_custom_arm.md b/docs/capabilities/manipulation/adding_a_custom_arm.md index aaa075ee49..39a39032dd 100644 --- a/docs/capabilities/manipulation/adding_a_custom_arm.md +++ b/docs/capabilities/manipulation/adding_a_custom_arm.md @@ -1,5 +1,6 @@ -# How to Integrate a New Manipulator Arm - +--- +title: "How to Integrate a New Manipulator Arm" +--- This guide walks through integrating a new robot arm with DimOS, from writing the hardware adapter to creating blueprints for planning and control. ## Architecture Overview diff --git a/docs/capabilities/manipulation/readme.md b/docs/capabilities/manipulation/index.md similarity index 99% rename from docs/capabilities/manipulation/readme.md rename to docs/capabilities/manipulation/index.md index e502947699..2f93c34d0f 100644 --- a/docs/capabilities/manipulation/readme.md +++ b/docs/capabilities/manipulation/index.md @@ -1,5 +1,6 @@ -# Manipulation - +--- +title: "Manipulation" +--- Motion planning and teleoperation for robotic manipulators. Uses Drake for physics simulation and optional Meshcat or Viser planning visualization. ## Quick Start diff --git a/docs/capabilities/manipulation/openarm_integration.md b/docs/capabilities/manipulation/openarm_integration.md index 45670e5445..bb6c403659 100644 --- a/docs/capabilities/manipulation/openarm_integration.md +++ b/docs/capabilities/manipulation/openarm_integration.md @@ -1,5 +1,6 @@ -# OpenArm Integration - +--- +title: "OpenArm Integration" +--- Guide for running the **OpenArm** — an open-source bimanual 7-DOF research arm built from Damiao DM-J quasi-direct-drive motors — under the dimos manipulation + control stack. **If you're standing in front of the hardware and just want to run it, skip to [Quick start](#quick-start).** diff --git a/docs/capabilities/navigation/cmu_nav.md b/docs/capabilities/navigation/cmu_nav.md index be7ffe3128..cdaa02ef4e 100644 --- a/docs/capabilities/navigation/cmu_nav.md +++ b/docs/capabilities/navigation/cmu_nav.md @@ -1,5 +1,6 @@ -# Cmu Nav Stack - +--- +title: "CMU Nav Stack" +--- A modular navigation stack for autonomous robot navigation: terrain classification, obstacle avoidance, global path planning, local trajectory selection, and loop-closure-corrected mapping — composed as Blueprint modules. Good fit when you have a lidar-equipped robot and need end-to-end autonomy: feed it a registered point cloud and odometry, and it produces velocity commands. No ROS — modules communicate over DimOS streams (LCM/SHM). diff --git a/docs/capabilities/navigation/readme.md b/docs/capabilities/navigation/index.md similarity index 92% rename from docs/capabilities/navigation/readme.md rename to docs/capabilities/navigation/index.md index eda061b41b..ec4246a7e6 100644 --- a/docs/capabilities/navigation/readme.md +++ b/docs/capabilities/navigation/index.md @@ -1,5 +1,6 @@ -# Navigation - +--- +title: "Navigation" +--- Note: in the future these will be merged into one system. ## Cmu Nav Stack diff --git a/docs/capabilities/navigation/native/index.md b/docs/capabilities/navigation/native/index.md index d0adaa5be6..edd71a716d 100644 --- a/docs/capabilities/navigation/native/index.md +++ b/docs/capabilities/navigation/native/index.md @@ -1,5 +1,6 @@ -# Go2 Non-ROS Navigation - +--- +title: "Go2 Non-ROS Navigation" +--- ![output](assets/noros_nav.gif) The Go2 navigation stack runs entirely without ROS. It uses a **column-carving voxel map** strategy: each new LiDAR frame replaces the corresponding region of the global map entirely, ensuring the map always reflects the latest observations. diff --git a/docs/capabilities/perception/index.md b/docs/capabilities/perception/index.md new file mode 100644 index 0000000000..f528f118c9 --- /dev/null +++ b/docs/capabilities/perception/index.md @@ -0,0 +1,5 @@ +--- +title: "Perception" +--- + +## Detections diff --git a/docs/capabilities/perception/readme.md b/docs/capabilities/perception/readme.md deleted file mode 100644 index 5d6e089dbf..0000000000 --- a/docs/capabilities/perception/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# Perception - -## Detections diff --git a/docs/capabilities/teleoperation/hosted.md b/docs/capabilities/teleoperation/hosted.md index 4d5cca754c..102a1b3a2f 100644 --- a/docs/capabilities/teleoperation/hosted.md +++ b/docs/capabilities/teleoperation/hosted.md @@ -1,4 +1,6 @@ -# Hosted Teleop +--- +title: "Hosted Teleop" +--- Operate a DimOS robot remotely from any browser or Quest headset over WebRTC. The robot dials out to a hosted Cloudflare Realtime SFU broker diff --git a/docs/coding-agents/code-quality-rules.md b/docs/coding-agents/code-quality-rules.md index 5b252fc968..01eb8f07bb 100644 --- a/docs/coding-agents/code-quality-rules.md +++ b/docs/coding-agents/code-quality-rules.md @@ -1,4 +1,6 @@ -# Code Quality Rules +--- +title: "Code Quality Rules" +--- Rules dimos code is expected to follow. They address recurring issues found in code review. The automated scan/fix prompts in `misc/auto-fixes/` are built from this file, but it's meant to be reused by any prompt that needs the project's code-quality criteria. diff --git a/docs/coding-agents/docs/codeblocks.md b/docs/coding-agents/docs/codeblocks.md index 241f83ca58..eb698eba2b 100644 --- a/docs/coding-agents/docs/codeblocks.md +++ b/docs/coding-agents/docs/codeblocks.md @@ -1,4 +1,6 @@ -# Executable Code Blocks +--- +title: "Executable Code Blocks" +--- We use [md-babel-py](https://github.com/leshy/md-babel-py/) to execute code blocks in markdown and insert results. diff --git a/docs/coding-agents/docs/index.md b/docs/coding-agents/docs/index.md index af8cefc125..ffe92bad9b 100644 --- a/docs/coding-agents/docs/index.md +++ b/docs/coding-agents/docs/index.md @@ -1,5 +1,6 @@ - -# Code Blocks +--- +title: "Code Blocks" +--- **All code blocks must be executable.** Never write illustrative/pseudo code blocks. diff --git a/docs/coding-agents/index.md b/docs/coding-agents/index.md index d888e67e52..f66717d99d 100644 --- a/docs/coding-agents/index.md +++ b/docs/coding-agents/index.md @@ -1,4 +1,6 @@ -# For Agents +--- +title: "For Agents" +--- ├── worktrees.md (creating provisioned worktrees with `bin/worktree`) ├── style.md (code style guidelines for dimos) diff --git a/docs/coding-agents/style.md b/docs/coding-agents/style.md index 3e13faae9b..6581fa60db 100644 --- a/docs/coding-agents/style.md +++ b/docs/coding-agents/style.md @@ -1,4 +1,6 @@ -# Code Style Guidelines +--- +title: "Code Style Guidelines" +--- Rules for writing code in dimos. These address recurring issues found in code review. diff --git a/docs/coding-agents/testing.md b/docs/coding-agents/testing.md index 4c556cfeca..d7840f9d88 100644 --- a/docs/coding-agents/testing.md +++ b/docs/coding-agents/testing.md @@ -1,4 +1,6 @@ -# Testing Guidelines +--- +title: "Testing Guidelines" +--- Rules for writing tests in dimos. These address recurring issues found in code review. diff --git a/docs/development/docker.md b/docs/development/docker.md index e2a4e31239..a566312155 100644 --- a/docs/development/docker.md +++ b/docs/development/docker.md @@ -1,4 +1,6 @@ -# Docker Images +--- +title: "Docker Images" +--- Dimos uses parallel Docker image hierarchies for ROS and non-ROS builds, allowing you to choose the environment that fits your use case. diff --git a/docs/development/grid_testing.md b/docs/development/grid_testing.md index 758eacc356..35f99d07ab 100644 --- a/docs/development/grid_testing.md +++ b/docs/development/grid_testing.md @@ -1,4 +1,6 @@ -# Grid Testing Strategy +--- +title: "Grid Testing Strategy" +--- Grid tests run the same test logic across multiple implementations or configurations using pytest's parametrize feature. diff --git a/docs/development/large_file_management.md b/docs/development/large_file_management.md index b497ac19fa..f9b5063926 100644 --- a/docs/development/large_file_management.md +++ b/docs/development/large_file_management.md @@ -1,4 +1,6 @@ -# Data Loading +--- +title: "Data Loading" +--- The [`get_data`](/dimos/utils/data.py) function provides access to test data and model files, handling Git LFS downloads automatically. diff --git a/docs/development/profiling_dimos.md b/docs/development/profiling_dimos.md index 2ff3082299..e8a0fa6a02 100644 --- a/docs/development/profiling_dimos.md +++ b/docs/development/profiling_dimos.md @@ -1,4 +1,6 @@ -# Profiling dimos +--- +title: "Profiling dimos" +--- You can use py-spy to profile a particular blueprint: diff --git a/docs/development/testing.md b/docs/development/testing.md index 40e429797c..d94e47c07e 100644 --- a/docs/development/testing.md +++ b/docs/development/testing.md @@ -1,4 +1,6 @@ -# Testing +--- +title: "Testing" +--- `uv run` syncs the project deps + `tests` group on demand, so the default test suite needs no upfront install — just `uv run pytest --numprocesses=auto dimos` (xdist parallelizes across cores). diff --git a/docs/development/writing_docs.md b/docs/development/writing_docs.md index 8b24dc620b..a039d129ae 100644 --- a/docs/development/writing_docs.md +++ b/docs/development/writing_docs.md @@ -1,4 +1,6 @@ -# Writing Docs +--- +title: "Writing Docs" +--- 1. Where to put your docs: - If it only matters to people who contribute to dimos (like this doc), put them in `docs/development` diff --git a/docs/docs.json b/docs/docs.json index 59142b59c0..e37a2430ac 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -35,6 +35,7 @@ { "group": "Usage", "pages": [ + "usage/index", "usage/modules", "usage/blueprints", "usage/configuration", @@ -49,6 +50,7 @@ { "group": "Data streams", "pages": [ + "usage/data_streams/index", "usage/data_streams/advanced_streams", "usage/data_streams/quality_filter", "usage/data_streams/reactivex", @@ -59,6 +61,7 @@ { "group": "Sensor streams", "pages": [ + "usage/sensor_streams/index", "usage/sensor_streams/advanced_streams", "usage/sensor_streams/quality_filter", "usage/sensor_streams/reactivex", @@ -78,16 +81,17 @@ { "group": "Agents", "pages": [ - "agents/index", - "agents/style", - "agents/code-quality-rules", - "agents/testing", + "coding-agents/index", + "coding-agents/style", + "coding-agents/code-quality-rules", + "coding-agents/testing", + "coding-agents/worktrees", { "group": "Authoring agent docs", "pages": [ - "agents/docs/index", - "agents/docs/codeblocks", - "agents/docs/doclinks" + "coding-agents/docs/index", + "coding-agents/docs/codeblocks", + "coding-agents/docs/doclinks" ] } ] @@ -95,11 +99,25 @@ { "group": "Capabilities", "pages": [ + { + "group": "Agents", + "pages": [ + "capabilities/agents/index" + ] + }, { "group": "Manipulation", "pages": [ + "capabilities/manipulation/index", "capabilities/manipulation/adding_a_custom_arm", - "capabilities/manipulation/openarm_integration" + "capabilities/manipulation/openarm_integration", + "capabilities/manipulation/a750" + ] + }, + { + "group": "Mapping", + "pages": [ + "capabilities/mapping/relocalization" ] }, { @@ -113,6 +131,7 @@ { "group": "Navigation", "pages": [ + "capabilities/navigation/index", "capabilities/navigation/cmu_nav", { "group": "Native", @@ -122,6 +141,12 @@ } ] }, + { + "group": "Perception", + "pages": [ + "capabilities/perception/index" + ] + }, { "group": "Teleoperation", "pages": [ @@ -156,6 +181,7 @@ "development/grid_testing", "development/large_file_management", "development/profiling_dimos", + "development/releasing", "development/writing_docs" ] } diff --git a/docs/platforms/humanoid/g1/index.md b/docs/platforms/humanoid/g1/index.md index f50cf0f2eb..5e2c259ff9 100644 --- a/docs/platforms/humanoid/g1/index.md +++ b/docs/platforms/humanoid/g1/index.md @@ -1,4 +1,6 @@ -# Unitree G1 +--- +title: "Unitree G1" +--- ## Requirements diff --git a/docs/platforms/quadruped/go2/index.md b/docs/platforms/quadruped/go2/index.md index 4e392f06ca..e80ac87a32 100644 --- a/docs/platforms/quadruped/go2/index.md +++ b/docs/platforms/quadruped/go2/index.md @@ -1,4 +1,6 @@ -# Unitree Go2 — Getting Started +--- +title: "Unitree Go2" +--- The Unitree Go2 is DimOS's primary reference platform. Full autonomous navigation, mapping, and agentic control — no ROS required. diff --git a/docs/requirements.md b/docs/requirements.md index 91d5b75b0e..ac6bed3988 100644 --- a/docs/requirements.md +++ b/docs/requirements.md @@ -1,4 +1,6 @@ -# System Requirements +--- +title: "System Requirements" +--- ## Hardware diff --git a/docs/usage/camera_calibration.md b/docs/usage/camera_calibration.md index 928f7d4218..0724704e11 100644 --- a/docs/usage/camera_calibration.md +++ b/docs/usage/camera_calibration.md @@ -1,4 +1,6 @@ -# Camera calibration +--- +title: "Camera calibration" +--- Operator workflow for chessboard targets and `dimos cameracalibrate` (ROS-style CameraInfo YAML). The square size you pass to the CLI must match the board you actually print and measure. diff --git a/docs/usage/cli.md b/docs/usage/cli.md index 7abd1fa7bb..b854879c7b 100644 --- a/docs/usage/cli.md +++ b/docs/usage/cli.md @@ -1,4 +1,6 @@ -# CLI Reference +--- +title: "CLI Reference" +--- The `dimos` CLI manages the full lifecycle of a DimOS robot stack — start, stop, inspect, and interact. diff --git a/docs/usage/configuration.md b/docs/usage/configuration.md index fec5ad3ead..36deba4bf5 100644 --- a/docs/usage/configuration.md +++ b/docs/usage/configuration.md @@ -1,4 +1,6 @@ -# Configuration +--- +title: "Configuration" +--- Dimos provides a `Configurable` base class. See [`service/spec.py`](/dimos/protocol/service/spec.py#L22). diff --git a/docs/usage/data_streams/advanced_streams.md b/docs/usage/data_streams/advanced_streams.md index 349725ea10..2aaa4ea69f 100644 --- a/docs/usage/data_streams/advanced_streams.md +++ b/docs/usage/data_streams/advanced_streams.md @@ -1,4 +1,6 @@ -# Advanced Stream Handling +--- +title: "Advanced Stream Handling" +--- > **Prerequisite:** Read [ReactiveX Fundamentals](/docs/usage/data_streams/reactivex.md) first for Observable basics. diff --git a/docs/usage/data_streams/README.md b/docs/usage/data_streams/index.md similarity index 98% rename from docs/usage/data_streams/README.md rename to docs/usage/data_streams/index.md index 014970a401..fcff250dee 100644 --- a/docs/usage/data_streams/README.md +++ b/docs/usage/data_streams/index.md @@ -1,4 +1,6 @@ -# Sensor Streams +--- +title: "Data Streams" +--- Dimos uses reactive streams (RxPY) to handle sensor data. This approach naturally fits robotics where multiple sensors emit data asynchronously at different rates, and downstream processors may be slower than the data sources. diff --git a/docs/usage/data_streams/quality_filter.md b/docs/usage/data_streams/quality_filter.md index 50d4ce1936..e6542fda97 100644 --- a/docs/usage/data_streams/quality_filter.md +++ b/docs/usage/data_streams/quality_filter.md @@ -1,4 +1,6 @@ -# Quality-Based Stream Filtering +--- +title: "Quality-Based Stream Filtering" +--- When processing sensor streams, you often want to reduce frequency while keeping the best quality data. For discrete data like images that can't be averaged or merged, instead of blindly dropping frames, `quality_barrier` selects the highest quality item within each time window. diff --git a/docs/usage/data_streams/reactivex.md b/docs/usage/data_streams/reactivex.md index 5ec5d26a16..e4b01442fb 100644 --- a/docs/usage/data_streams/reactivex.md +++ b/docs/usage/data_streams/reactivex.md @@ -1,4 +1,6 @@ -# ReactiveX (RxPY) Quick Reference +--- +title: "ReactiveX (RxPY) Quick Reference" +--- RxPY provides composable asynchronous data streams. This is a practical guide focused on common patterns in this codebase. diff --git a/docs/usage/data_streams/storage_replay.md b/docs/usage/data_streams/storage_replay.md index b8bb42fd76..0892090a27 100644 --- a/docs/usage/data_streams/storage_replay.md +++ b/docs/usage/data_streams/storage_replay.md @@ -1,4 +1,6 @@ -# Sensor Storage and Replay +--- +title: "Sensor Storage and Replay" +--- Record sensor streams to disk and replay them with original timing. Useful for testing, debugging, and creating reproducible datasets. diff --git a/docs/usage/data_streams/temporal_alignment.md b/docs/usage/data_streams/temporal_alignment.md index b57378e4db..5cee2c8602 100644 --- a/docs/usage/data_streams/temporal_alignment.md +++ b/docs/usage/data_streams/temporal_alignment.md @@ -1,4 +1,6 @@ -# Temporal Message Alignment +--- +title: "Temporal Message Alignment" +--- Robots have multiple sensors emitting data at different rates and latencies. A camera might run at 30fps, while lidar scans at 10Hz, and each has different processing delays. For perception tasks like projecting 2D detections into 3D pointclouds, we need to match data from these streams by timestamp. diff --git a/docs/usage/README.md b/docs/usage/index.md similarity index 85% rename from docs/usage/README.md rename to docs/usage/index.md index 071b6fc0b2..6930faf96a 100644 --- a/docs/usage/README.md +++ b/docs/usage/index.md @@ -1,11 +1,13 @@ -# Concepts +--- +title: "Concepts" +--- This page explains general concepts. ## Table of Contents - [Modules](/docs/usage/modules.md): The primary units of deployment in DimOS, modules run in parallel and are python classes. -- [Streams](/docs/usage/sensor_streams/README.md): How modules communicate, a Pub / Sub system. +- [Streams](/docs/usage/sensor_streams/index.md): How modules communicate, a Pub / Sub system. - [Blueprints](/docs/usage/blueprints.md): a way to group modules together and define their connections to each other. - [RPC](/docs/usage/blueprints.md#calling-the-methods-of-other-modules): how one module can call a method on another module (arguments get serialized to JSON-like binary data). - [Skills](/docs/usage/blueprints.md#defining-skills): An RPC function, except it can be called by an AI agent (a tool for an AI). diff --git a/docs/usage/lcm.md b/docs/usage/lcm.md index b93f2943c2..87097ee990 100644 --- a/docs/usage/lcm.md +++ b/docs/usage/lcm.md @@ -1,4 +1,6 @@ -# LCM Messages +--- +title: "LCM Messages" +--- DimOS uses [LCM (Lightweight Communications and Marshalling)](https://github.com/lcm-proj/lcm) for inter-process communication on a local machine (similar to how ROS uses DDS). LCM is a simple [UDP multicast](https://lcm-proj.github.io/lcm/content/udp-multicast-protocol.html#lcm-udp-multicast-protocol-description) pubsub protocol with a straightforward [message definition language](https://lcm-proj.github.io/lcm/content/lcm-type-ref.html#lcm-type-specification-language). diff --git a/docs/usage/modules.md b/docs/usage/modules.md index d4156ab93d..3b7a32a809 100644 --- a/docs/usage/modules.md +++ b/docs/usage/modules.md @@ -1,4 +1,6 @@ -# DimOS Modules +--- +title: "DimOS Modules" +--- Modules are subsystems on a robot that operate autonomously and communicate with other subsystems using standardized messages. diff --git a/docs/usage/native_modules.md b/docs/usage/native_modules.md index bb31cdd456..d5ad3813fc 100644 --- a/docs/usage/native_modules.md +++ b/docs/usage/native_modules.md @@ -1,4 +1,6 @@ -# Native Modules +--- +title: "Native Modules" +--- Prerequisite for this is to understand dimos [Modules](/docs/usage/modules.md) and [Blueprints](/docs/usage/blueprints.md). diff --git a/docs/usage/python-api.md b/docs/usage/python-api.md index 47edf9b603..be04f278b1 100644 --- a/docs/usage/python-api.md +++ b/docs/usage/python-api.md @@ -1,4 +1,6 @@ -# Python API +--- +title: "Python API" +--- The `Dimos` class is the main entry point for using DimOS from Python. There are two modes: diff --git a/docs/usage/sensor_streams/advanced_streams.md b/docs/usage/sensor_streams/advanced_streams.md index f3a3761816..1f1acc21f2 100644 --- a/docs/usage/sensor_streams/advanced_streams.md +++ b/docs/usage/sensor_streams/advanced_streams.md @@ -1,4 +1,6 @@ -# Advanced Stream Handling +--- +title: "Advanced Stream Handling" +--- > **Prerequisite:** Read [ReactiveX Fundamentals](/docs/usage/sensor_streams/reactivex.md) first for Observable basics. diff --git a/docs/usage/sensor_streams/README.md b/docs/usage/sensor_streams/index.md similarity index 98% rename from docs/usage/sensor_streams/README.md rename to docs/usage/sensor_streams/index.md index 1f32897768..6ac30783d9 100644 --- a/docs/usage/sensor_streams/README.md +++ b/docs/usage/sensor_streams/index.md @@ -1,4 +1,6 @@ -# Sensor Streams +--- +title: "Sensor Streams" +--- Dimos uses reactive streams (RxPY) to handle sensor data. This approach naturally fits robotics where multiple sensors emit data asynchronously at different rates, and downstream processors may be slower than the data sources. diff --git a/docs/usage/sensor_streams/quality_filter.md b/docs/usage/sensor_streams/quality_filter.md index 50d4ce1936..e6542fda97 100644 --- a/docs/usage/sensor_streams/quality_filter.md +++ b/docs/usage/sensor_streams/quality_filter.md @@ -1,4 +1,6 @@ -# Quality-Based Stream Filtering +--- +title: "Quality-Based Stream Filtering" +--- When processing sensor streams, you often want to reduce frequency while keeping the best quality data. For discrete data like images that can't be averaged or merged, instead of blindly dropping frames, `quality_barrier` selects the highest quality item within each time window. diff --git a/docs/usage/sensor_streams/reactivex.md b/docs/usage/sensor_streams/reactivex.md index f05dc05d99..874e9e7aca 100644 --- a/docs/usage/sensor_streams/reactivex.md +++ b/docs/usage/sensor_streams/reactivex.md @@ -1,4 +1,6 @@ -# ReactiveX (RxPY) Quick Reference +--- +title: "ReactiveX (RxPY) Quick Reference" +--- RxPY provides composable asynchronous data streams. This is a practical guide focused on common patterns in this codebase. diff --git a/docs/usage/sensor_streams/storage_replay.md b/docs/usage/sensor_streams/storage_replay.md index b8bb42fd76..0892090a27 100644 --- a/docs/usage/sensor_streams/storage_replay.md +++ b/docs/usage/sensor_streams/storage_replay.md @@ -1,4 +1,6 @@ -# Sensor Storage and Replay +--- +title: "Sensor Storage and Replay" +--- Record sensor streams to disk and replay them with original timing. Useful for testing, debugging, and creating reproducible datasets. diff --git a/docs/usage/sensor_streams/temporal_alignment.md b/docs/usage/sensor_streams/temporal_alignment.md index 21081518f4..41020b7af7 100644 --- a/docs/usage/sensor_streams/temporal_alignment.md +++ b/docs/usage/sensor_streams/temporal_alignment.md @@ -1,4 +1,6 @@ -# Temporal Message Alignment +--- +title: "Temporal Message Alignment" +--- Robots have multiple sensors emitting data at different rates and latencies. A camera might run at 30fps, while lidar scans at 10Hz, and each has different processing delays. For perception tasks like projecting 2D detections into 3D pointclouds, we need to match data from these streams by timestamp. diff --git a/docs/usage/tool_streams.md b/docs/usage/tool_streams.md index db28219dbd..4523a1c436 100644 --- a/docs/usage/tool_streams.md +++ b/docs/usage/tool_streams.md @@ -1,4 +1,6 @@ -# Tool Streams +--- +title: "Tool Streams" +--- Some tools return quickly but keep doing work in the background. For example, `look_out_for` starts a perception loop and waits minutes for a match; diff --git a/docs/usage/transforms.md b/docs/usage/transforms.md index df7f70274f..e7b878b86b 100644 --- a/docs/usage/transforms.md +++ b/docs/usage/transforms.md @@ -1,4 +1,6 @@ -# Transforms +--- +title: "Transforms" +--- ## The Problem: Everything Measures from Its Own Perspective diff --git a/docs/usage/transports/dds.md b/docs/usage/transports/dds.md index 7f08eedcac..71259407bd 100644 --- a/docs/usage/transports/dds.md +++ b/docs/usage/transports/dds.md @@ -1,4 +1,6 @@ -# Installing DDS Transport Libs on Ubuntu +--- +title: "Installing DDS Transport Libs on Ubuntu" +--- The `dds` extra provides DDS (Data Distribution Service) transport support via [Eclipse Cyclone DDS](https://cyclonedds.io/docs/cyclonedds-python/latest/). The Python package builds C extensions against the CycloneDDS C library, so the C library must be installed before the Python package. diff --git a/docs/usage/transports/index.md b/docs/usage/transports/index.md index 5415aab1d0..ace35b7ffd 100644 --- a/docs/usage/transports/index.md +++ b/docs/usage/transports/index.md @@ -1,4 +1,6 @@ -# Transports +--- +title: "Transports" +--- Transports connect **module streams** across **process boundaries** and/or **networks**. diff --git a/docs/usage/visualization.md b/docs/usage/visualization.md index 964069a06c..d3a147df21 100644 --- a/docs/usage/visualization.md +++ b/docs/usage/visualization.md @@ -1,4 +1,6 @@ -# Viewer Backends +--- +title: "Viewer Backends" +--- Dimos uses Rerun for visualizations. It can be disabled by using `dimos --viewer none ...`.