Create an Account
To create an account, navigate to the sign up page and follow the instructions.
Terminology
Before we begin, let’s define some key configuration terminology to differentiate between configuration schemas, instances, and types.Config Instances
A config instance is a set of parameters used to alter the behavior of code. Config instances are typically stored as JSON or YAML files (or potentially in a database somewhere), which applications parse into a structured format for consumption. The following YAML file defines a config instance for controlling a robot’s motion.Config Schemas
A config schema defines the constraints for a config instance. Miru uses JSON Schema, a popular open-source configuration language, for defining the valid fields, types, and values in a config instance. Below is an example JSON Schema.While config schemas are recommended, they are not required to begin using Miru.
Config Types
A config type represents the parameters that configure an aspect of a robot’s software, regardless of the version of that software. For instance, a robot may have aMobility
config type that configures its motion. The Mobility
config type goes through many iterations—parameters are added or deprecated (creating new config schemas) and given different values (creating new config instances).
The Mobility
config type is not a particular config instance nor a particular config schema. It simply refers to the motion-related parameters for the robot in general.
Clone the Repository
To make things easy, we’ve created a starter repository with some sample schemas and instances. Clone the getting-started repository.schemas/
: Contains example config schemasinstances/
: Contains example config instances
Mobility Config Type
For the remainder of this guide, theMobility
config type is used as an example.
The /schemas/mobility.schema.yaml
defines the config schema for the Mobility
config type.
It includes key parameters such as:
- Maximum linear and angular speeds
- Obstacle avoidance settings
- Navigation mode selection
- Telemetry intervals
mobility.schema.yaml
/instances/mobility.instance.yaml
defines a config instance adhering to the Mobility
config schema.
mobility.instance.yaml
Starting Schemaless
While this guide uses a well-defined schema for the mobility config type, you may find it simpler to begin using Miru without a schema. To do this, follow along with the/schemas/empty-mobility.schema.yaml
file instead of /schemas/mobility.schema.yaml
. This file defines an empty schema that regards all config instances as valid.
empty-mobility.schema.yaml