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).
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:
- You need to allow installation of apps from unknown sources (i.e. other than from the Play Store): visit Settings, Security (or similar) and enable "Unknown Sources".
- APK (app installation package) files may not open direct from your browser, for some configurations; use a File Manager app (download a free one from Play Store) to browse to the Device Downloads folder and open the downloaded APK file for MIROapp from there.
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:
- You are using different versions of the MDK on your robot and on your workstation; update both to the latest MDK.
- 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 atROS_PACKAGE_PATH
andPYTHONPATH
and check that they do not point at any directories from other MDK versions.
~/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.
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.
CONSERVATIVE
mode.