Overview

This page is something like an FAQ about problems you may encounter with your robot for which the solutions would otherwise be difficult to intuit. If your query does not appear on this page, please have a look at Testing to see if anything is wrong with the hardware of your robot before getting in touch.

If you don't find what you need on any of these pages, you can contact support.

Robot

Why does my MIRO not boot or never finish booting or not shutdown properly?

Low battery? If your MIRO fails to boot completely, or starts booting but does not complete, or boots well but does not shutdown properly, first try recharging the batteries. Think this sounds stupid? Well, you'd not be the first... (yes, it was me, several times).

Usually, you will notice the low battery alarm before this becomes a problem; however, if your speaker is disabled or otherwise not functioning, the resulting state can be difficult to spot, so always make sure the batteries are freshly charged before pursuing any kind of problem, intermittent or otherwise.

Why is the blue light stuck on? Why does my MIRO not boot?

Generally, we should give MIRO about a minute to boot up or shut down when we turn the power switch one way or the other, just as we would for any computer. Sometimes we forget about this and turn MIRO on again when shutdown has not completed, which can cause the power controller to lock up.

If this has happened to your MIRO, the symptoms are as follows. The blue light on its left flank will remain lit, no matter what you do with the power switch. MIRO will go through the usual calibration procedure (the neck, head and eyelids move a little) each time you power on. MIRO's system will not boot, no matter what you do with the power switch.

To reset the power controller and clear the fault, just pop the batteries out and then back in. You might check that the batteries are fully charged, at the same time, since this problem occurs more frequently if the batteries are low.

Why do I get warning messages such as "partial frame not assembled" when running miro_bridge?

Releases 170606 and earlier allowed two copies of the bridge to be run at once. Check that you are not already running a copy of the bridge on this MIRO (particularly easy to miss if one copy is started using the autostart facility). Try running ps aux | grep bridge on MIRO.

MIROapp

Why can I not install MIROapp?

Usually, you'll install MIROapp by visiting this page, downloading to your Android device, and install will begin automatically. If it doesn't, consider the following solutions:

Why can I not connect using MIROapp?

In order to connect using MIROapp your Android device must support Bluetooth "Low Energy" (BLE), which was merged into the standard as of Bluetooth 4.0, circa 2010; any fairly new device, then, is very likely to be equipped.

One of the things BLE is used for is as a clue to your device location; therefore, unless location services are enabled, your device will not be able to use BLE. You may see a symbol like that pictured, left. Make sure location services are enabled in your device settings and try again.

ROS

Why can my robot not contact the ROS master?

If ROS_MASTER_IP is set incorrectly, the bridge will fail to start with an error message "could not contact ROS master". If trying to start the bridge using MIROapp, this will manifest as the bridge appearing to start, and then being "not running" a few seconds later, when refresh is pressed. In this case, make sure ROS_MASTER_IP is set correctly in ~/.profile on-board MIRO, to the IP address of the computer running the ROS master, and try pinging that address from MIRO.

Why is nothing published from my robot?

In this case, it may be that ROS_IP is not set correctly as miro_bridge starts—it must carry the IP address that MIRO has been assigned, if ROS comms is to work correctly. If it is not, outgoing messages are dropped silently, even if the topics MIRO publishes are visible on a remote host. Usually, ROS_IP is obtained automatically by the script ~/bin/run_bridge_ros.sh on-board MIRO. Check if this is working correctly: if not, you can always assign your MIRO a static IP address and set ROS_IP in ~/.profile equal to this static address.

Why does "rostopic echo" produce nothing?

Similarly, when logged in to MIRO, rostopic list may list a remote topic, but nothing appears when rostopic hz or rostopic echo is run on the same topic. If MIRO is to receive messages from a topic publisher on a remote host, the topic publisher must share its contact details correctly. On a network without proper name lookup, this may not happen automatically. On the remote host, set ROS_IP equal to the remote host IP, then restart the publisher. See this page for more.

Why is communication with my robot intermittent?

One of the most trying problems in the research laboratory environment is that there may be too many wireless networks in your area. These can interfere with one another such that none of them achieves particularly good service. There is, unfortunately, no general fix for this problem, other than finding a less busy location or time of day to work with your robot.

You can try using a wifi sniffer app to move your own wireless network to a channel in a less crowded part of the spectrum, but your mileage may vary. If appropriate, you can ease the load on the network by reducing the video frame size and frame rate. You can do this through the Python GUI or use the arguments frame_size and frame_rate to miro_bridge to more permanently effect the same changes. Using this latter fix can be very effective, at least, in confirming that there are no other problems; thereby you can confirm that a busy radio environment is causing your symptoms.

Why do I get error "wants topic ... to have datatype ..."?

ROS topic data types change at some revisions of the MDK. The other symptom of this error is simply that the robot does not respond to commands or the ROS client (e.g. the Python GUI) does not appear to receive upstream data from the robot.

If you encounter this error, then with overwhelming likelihood one of two things is wrong:

  1. You are using different versions of the MDK on your robot and on your workstation; update both to the latest MDK.
  2. You have multiple versions of the MDK installed on your workstation, and you have not updated your environment variables (in .bashrc or .profile) to point at the version you are currently using. Confirm everything is set according to the instructions at Prepare workstation. Most importantly look at ROS_PACKAGE_PATH and PYTHONPATH and check that they do not point at any directories from other MDK versions.
To avoid encountering this problem, we recommend that you make a symbolic link somewhere sensible (such as ~/mdk) to your current MDK version, and point your environment variables at this link; you then just need to update this link when you update your MDK.

Gazebo

Why does Gazebo halt with errors like OgreRenderSystem?

Perhaps you are running Gazebo under a Virtual Machine (VM Linux, hosted on Windows, say)?

Gazebo, along with other 3D software, may not run well under a Virtual Host. Install Linux native (e.g. as a dual-boot) and you should get along better.

Unsolicited sounds

Why does my robot sound like a satellite?

This sound indicates the main battery voltage is low (below 4.4V). You should recharge MIRO's batteries.

Do not ignore the low battery alarm—the NiMH batteries may be damaged if they are drained beyond this point.

Why does my robot sound like a telephone?

This sound indicates a fault on the I2C bus. Faults can be caused by loose cabling, or by faulty peripheral boards—follow the instructions at I2C bus fault to diagnose.

Why does my robot sound like a pirate?

Sounds like this indicates a problem with one of MIRO's cameras. If only one of MIRO's cameras is delivering data to the P2 board, MIRO will indicate that one of the eyes is "shut" by randomly making pirate noises.

Thanks to occasional voice artist Brenton Strine (brentonstrine.com) for his kind permission to use these sound samples.

The pirate warning sounds are silenced in CONSERVATIVE mode.