Welcome

Welcome! Miru is an application configuration management solution for robotics teams. We provide tools for engineers to define, deploy, and manage application configurations for their robots.

Configuration Sources

Robots rely on application configurations stemming from a variety of sources. Some common types include:
  • Calibrations: Each end effector, gripper, and sensor requires unique calibration settings.
  • Hardware Variability: Hardware variants use configurations to set the appropriate software dependencies and functionalities the hardware supports.
  • User Preferences: End users desire different settings or features.
  • Testing & Development: Test beds and beta robots need feature flagging and experimentation.

Configuration Users

Configurations then touch many different engineers on the team, each in their own way:
  • Software Engineers: Define valid configurations and tune parameters for performance of a given software version.
  • QA Engineers: Validate configurations for new software releases.
  • Deployment Engineers: Safely provision robots with appropriate configurations and deploy updates to resolve issues.
  • End Users: Tweak parameters during acceptance testing and adjust desired settings during normal operation.

Difficulties

Configurations quickly become difficult to manage on a variety of dimensions.

Complex Groupings

Robots have various characteristics that influence their configurations—hardware versions, customers, release channels, etc. These characteristics often overlap in complex ways: a single customer may have multiple hardware variants, some customers may choose to beta test early releases, and others may want to stick with the latest stable release for as long as possible. These overlapping relationships make it difficult to define configurations and safely update them across a fleet of robots.

Versioning

A single robot requires hundreds, if not thousands, of configurations. A fleet of robots can run n versions of software, each version requiring slightly (or sometimes entirely) different configuration schemas. With configurations for current releases being updated while new configurations are defined for the next release, maintaining sanity for n software releases across a fleet of robots quickly becomes a nightmare.

Editing via SSH

Managing this complexity is often left to ad‑hoc tools. Deployment Engineers are asked to SSH into robots and edit text files directly with Vim, which is problematic for a number of reasons:
  • Typos and other simple errors lead to unecessary downtime and slow fixes
  • SSH requires an opened inbound port, greatly increasing the surface area for security breaches
  • Teams must hire software‑savvy Deployment Engineers, despite the preferred background being Mechanical or Electrical Engineering
  • Auditing configuration changes (who, when, what, why, etc.) is completely lost

Where to start?

Miru is a purpose-built solution for managing the complexities of application configurations in robotics. We put the developer first, prioritizing simplicity and developer experience. To begin using Miru, continue onto the getting-started guide.