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.

Difficulties of Configurations

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.
These configurations quickly become difficult to manage on a variety of dimensions.

Complex Groupings

Different groups of robots in a fleet share varying subsets of configurations. For example, robots may be grouped by hardware variant, customer, or test environment. These groups 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. Because of these overlapping relationships, it can be difficult to define a robot’s configuration and safely update it across the fleet.

Configuration Volume

Robots often require unique configurations for each unit, such as end effector calibrations or camera exposure settings. Given the volume of configurations, associating robots with their correct configurations is quite error-prone. These errors compound when wanting to track which configurations are in use, monitor changes over time, and compare configurations across robots—even in fleets of just 10 or 20 robots.

Robot as the Source of Truth

Robots are the source of truth for configurations, not the cloud. While configurations may be defined in the cloud and deployed to the fleet, many configurations are locally edited on a robot and later backed up to the cloud. For example, when a LIDAR sensor is recalibrated, its new configuration is saved on the robot first and only backed up to the cloud if necessary. However, since robots are expected to lose network connectivity or power, locally edited configurations cannot always be immediately synced to the cloud. This bidirectional flow of data—where configurations can come from either the cloud or the robot—makes tracking their history and origin more challenging.

User-Facing Configurations

The last layer of complexity is exposing configurations to end-users. While the specifics of the interaction depend on the use case, it’s common for technicians or customers to modify configurations that impact the robot’s behavior. This raises critical questions surrounding permissions and who can modify configurations. At the same time, tracking the history of configuration changes and identifying who made them becomes more challenging as third parties (i.e., users) are involved. Maintaining an audit trail—who modified what, when, and why—is essential.

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.