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.
Actuators
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.
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. |
Charge time | Full charge 5 hours. |
Sensors
Exteroceptive | ||
---|---|---|
Microphones[1] | 4× | 16-bit @ 20kHz |
Cameras[2] | 2× | 1280×720 @ 15fps 640×360 @ 25fps 320×240 @ 35fps |
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 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[5] of MiRo runs in the Gazebo robot simulator.
[5] 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.