This guide assumes you’ve read the core concepts section. If you haven’t, we recommend doing so before continuing.

Create an Account

If you don’t already have an account, navigate to the sign up page and follow the instructions.

Clone the Starter Repository

Clone the getting-started repository.

git clone https://github.com/miruml/getting-started.git

You’ll find the following directories in the repository:

This is just an example structure - schemas and configs can be located anywhere.

Mobility Config

For the remainder of this guide, the Mobility config will be used as an example.

The /schemas/mobility.schema.yaml defines the config schema for the Mobility config. It includes key parameters such as:

  • Maximum linear and angular speeds
  • Obstacle avoidance settings
  • Navigation mode selection
  • Telemetry intervals
mobility.schema.yaml
$miru_config_slug: "mobility"
$schema: "https://json-schema.org/draft/2020-12/schema"
title: Mobility
type: object
properties:
  max_linear_speed_mps:
    type: number
    minimum: 0.1
    maximum: 5.0
    default: 1.2
  max_angular_speed_radps:
    type: number
    minimum: 0.1
    maximum: 3.0
    default: 1.0
  obstacle_avoidance_enabled:
    type: boolean
    default: true
  navigation_mode:
    type: string
    enum: [conservative, balanced, aggressive]
    default: balanced
  telemetry:
    type: object
    properties:
      upload_interval_sec:
        type: integer
        minimum: 10
        maximum: 300
        default: 60
      heartbeat_interval_sec:
        type: integer
        minimum: 1
        maximum: 60
        default: 10
    required:
      - upload_interval_sec
      - heartbeat_interval_sec
required:
  - max_linear_speed_mps
  - max_angular_speed_radps
  - obstacle_avoidance_enabled
  - navigation_mode
  - telemetry

The /configs/mobility.yaml defines a concrete config adhering to the Mobility config schema. This concrete config is for development purposes only. Concrete configs deployed to production robots are defined in the Miru dashboard, not in a git repository.

mobility.yaml
max_linear_speed_mps: 1.2
max_angular_speed_radps: 1.0
obstacle_avoidance_enabled: true
navigation_mode: balanced
telemetry:
  upload_interval_sec: 60
  heartbeat_interval_sec: 10