MiRo is based on a differential drive platform with a 3-degrees-of-freedom jointed neck. Weighing in at around 3kg, and sized similarly to a small mammal such as a cat or a rabbit, MiRo will typically run for several hours before needing recharging.
Stereo cameras in the eyes and stereo microphones in the ears are complemented by two additional microphones (one inside the head and one in the tail) and by a sonar ranger in the nose. In the body, four light level sensors and two 'cliff sensors' are arrayed around the skirt, and many capacitive sensors are distributed across the inside of the body shell and upper head shell to sense direct human contact. Interoceptive sensors include twin accelerometers and battery state sensing.
Apart from the wheels and the neck, additional servos drive rotation of each ear, tail droop and wag, and closure of each eyelid. The wheel and neck movements are equipped with feedback sensors (potentiometers for neck joint positions and optical shaft encoders for wheel speed). An on-board speaker is also available to generate sound output.
MiRo is based around a Raspberry Pi 3B+ running a standard Raspbian distribution.
The MiRo simulator runs on the popular Gazebo robot simulator.
|Mass||3.3 kg (2.9 kg without battery pack)|
|Wheel track||164 mm|
|Wheel diameter||90 mm|
|Maximum forward speed||400 mm/sec|
|Main battery||NiMH 4.8V 10Ah|
|Main battery life||Varies with usage: typically 6+ hours active, 12+ hours standby.|
|Charge time||Full charge 5 hours.|
|Microphones||4×||16-bit @ 20kHz|
|Cameras||2×||1280×720 @ 15fps|
640×360 @ 25fps
320×240 @ 35fps
|Sonar||1×||Proximity sensor in nose (3cm up to 1m)|
|Touch||28×||14× in body, 14× in head; capacitive|
|Light||4×||Spread around body skirt|
|Cliff||2×||Front edge of body skirt|
|Motion||2×||1× opto sensor in each wheel (also back EMF)|
|Position||3×||1× position sensor in each body joint|
|Accelerometer||2×||1× in body, 1× in head|
 Two primary microphones in the base of the ears are supplemented by a noise-rejection microphone inside the head and an additional external microphone in the tail.
 Other frame sizes and aspect ratios are available; frame rate can be adjusted freely between 1.0 fps and the listed maximum.
 Sonar reflections are more reliable at shorter ranges—sensor will report good reflectors at up to 1 metre.
 Cliff sensors can be fooled by varying lighting conditions and/or presence of unrelated objects and by backwards motion; users should not assume they will be sufficient to prevent the robot driving off edges.
|Main wheels||2×||Differential drive|
|Body joints||3×||Lift, yaw, and pitch|
|Tail (wag/droop)||2×||Wagging (side-to-side) and droop (up-and-down) motions|
|Ears (rotate)||2×||Left and right ear rotate independently|
|Eyelids (open/close)||2×||Two eyelids open and close independently|
|Illumination||6×||RGB illumination LEDs shine through the body shell, three on each flank|
|Sound output||1×||Streaming audio digitised at 8kHz|
|P1||3× STM32F030||ARM Cortex M0 @ 24MHz|
64kB FLASH ROM
|P2||1× STM32H743||ARM Cortex M7 @ 400MHz|
2MB FLASH ROM
|P3||1× Raspberry Pi 3B+||ARM Cortex A53 Quad Core @ 1.4GHz|
1GB LPDDR2 RAM
16GB uSD FLASH ROM
Bluetooth, WiFi, USB expansion ports
The factory-supplied SD card (or disk image) carries a standard Linux distribution (Raspbian) with a minimal set of tools (including ROS) and the MDK installed. Users are free to install their own software, as required, for example by using the Raspbian package manager.
The simulation of MiRo runs in the Gazebo robot simulator.
 Owing to limitations of simulation, the simulated robot lacks some of the faculties of the physical robot: at time of writing, touch and audio sensors, audio output, and illumination output are not implemented.