Specification Outline
Platform
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.
Sensors
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.
Actuators
Processing
MiRo is based around a Raspberry Pi 3B+ running a standard Raspbian distribution.
Simulation
The MiRo simulator runs on the popular Gazebo robot simulator.
Platform
Physical |
|
Mass |
3.3 kg (2.9 kg without battery pack) |
Wheel track |
164 mm |
Wheel diameter |
90 mm |
Maximum forward speed |
400 mm/sec |
Power |
|
Main Battery |
NiMH 4.8V 10Ah |
Main battery life |
Varies with usage: typically 6+ hours active, 12+ hours standby |
Sensors
Exteroceptive |
||
Microphones [1] |
4× |
16-bit @ 20kHz |
Cameras [2] |
2× |
1280×720 @ 15fps
|
Sonar [3] |
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 [4] |
2× |
Front edge of body skirt |
Interoceptive |
||
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 |
Voltage |
1× |
Battery voltage |
[1] 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.
[2] Other frame sizes and aspect ratios are available; frame rate can be adjusted freely between 1.0 fps and the listed maximum.
[3] Sonar reflections are more reliable at shorter ranges—sensor will report good reflectors at up to 1 metre.
[4] 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.
Actuators
Kinematic |
||
Main wheels |
2× |
Differential drive |
Body joints |
3× |
Lift, yaw, and pitch |
Cosmetic |
||
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 |
Supplementary |
||
Illumination |
6× |
RGB illumination LEDs shine through the body shell, three on each flank |
Sound output |
1× |
Streaming audio digitised at 8kHz |
Processing
Embedded Stack |
||
P1 |
3× STM32F030 |
ARM Cortex M0 @ 24MHz
|
P2 |
1× STM32H743 |
ARM Cortex M7 @ 400MHz
|
On-board Computer |
||
P3 |
1× Raspberry Pi 3B+ |
ARM Cortex A53 Quad Core @ 1.4GHz
|
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.
Simulation
The simulation of MiRo runs in the Gazebo robot simulator.