This section describes the interfaces exposed by your robot (or simulator) to allow upstream receipt of data from on-board sensors and downstream transmission of command signals for the on-board mechanical actuators and supplementary output and control systems.


There is more than one way to work with a MIRO robot (or simulation), as described under Profiles, which leads to different methods for connecting to these interfaces. Briefly, the ways you can connect to your robot are as follows.

  1. Using the Simulation, talking through the ROS interface exposed by libmiro_gazebo.
  2. On-board, in P3, talking through the ROS interface exposed by miro_bridge.
  3. Off-board, using the ROS interface exposed to the network by miro_bridge.

In all these cases, the interfaces exposed are nearly identical (the simulator, for example, provides some /world signals that are not available on physical robots; physical robots, meanwhile, provide meaningful audio data whilst the simulator is not equipped to compute sound propagation). The likely starting point for most developers will be off-board using ROS packaging, as shown in the image below, so we will use this configuration as the basis for the descriptions in this section. Nonetheless, the information in this section applies to all of these cases, packaging details aside.

Using the simulator looks, to your software, much the same as using the physical robot (though not all faculties of the physical robot are present in the simulator).


The interfaces exposed by MIRO are four, each offering access to a subset of MIRO's faculties. For some applications, just one of these interfaces may provide sufficient access (for instance, using MIRO as a simple robot platform will require only the Platform Interface or the Standard Interface). For some other applications, elements of more than one or even all of these interfaces may be usefully used in concert—conversely, not all elements of all interfaces can usefully be used together.

Standard Interface

The Standard Interface provides access to MIRO's input and output signals through an interface that is intended to be compliant with standards used by the ROS community. For many applications, this may be the only interface that is needed.

This interface is under development—features not yet available on this interface may be accessed through one of the other interfaces.

Platform Interface

The Platform Interface interface provides direct access to the physical (or simulated) robot, its various sensors and actuators, and its supplementary output systems (sound and light emitters). Using this interface you will find MIRO to be a familiar robotic system with familiar inputs and outputs.

Core Interface

The Core Interface provides access to MIRO's Biomimetic Core, which offers control elements based on research into the operation of the mammalian brain. Importantly, the Biomimetic Core controls the platform through the same Platform Interface discussed above. Therefore, when a particular element of the Biomimetic Core is enabled, a particular subset of the control signals available on the Platform Interface will become unavailable for control.

For instance, enabling affective expression through the ears will overwrite any control signal sent to the ears over the Platform Interface; enabling biomimetic body control will render direct control of joint angles through the Platform Interface ineffective. The particulars of these relationships are described in detail in the documentation for the Biomimetic Core.

Bridge Interface

The Bridge Interface provides access to the bridge in P3, if it is running. This allows changes to the bridge configuration and also access to the audio streaming function of the bridge.


Access to MIRO's faculties is grouped into a number of interfaces