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]

16-bit @ 20kHz

Cameras [2]

1280×720 @ 15fps
640×360 @ 25fps
320×240 @ 35fps

Sonar [3]

Proximity sensor in nose (3cm up to 1m)

Touch

28×

14× in body, 14× in head; capacitive

Light

Spread around body skirt

Cliff [4]

Front edge of body skirt

Interoceptive

Motion

1× opto sensor in each wheel (also back EMF)

Position

1× position sensor in each body joint

Accelerometer

1× in body, 1× in head

Voltage

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

Differential drive

Body joints

Lift, yaw, and pitch

Cosmetic

Tail (wag/droop)

Wagging (side-to-side) and droop (up-and-down) motions

Ears (rotate)

Left and right ear rotate independently

Eyelids (open/close)

Two eyelids open and close independently

Supplementary

Illumination

RGB illumination LEDs shine through the body shell, three on each flank

Sound output

Streaming audio digitised at 8kHz

 

Processing

 

Embedded Stack

P1

3× STM32F030

ARM Cortex M0 @ 24MHz
8kB SRAM
64kB FLASH ROM

P2

1× STM32H743

ARM Cortex M7 @ 400MHz
1MB SRAM
2MB FLASH ROM

On-board Computer

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.


Simulation

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.