Overview

This page will take you through installing the MIRO Developer Kit (MDK) and installing ROS (and Gazebo, if required).

The supported software stack for MIRO is ROS Kinetic / Gazebo 7; however, other configurations may also be possible.

Install MDK

On your workstation, unzip the MDK (MIRO Developer Kit) to a directory of your choice. This directory will be denoted ~/mdk throughout the documentation.

It is strongly recommended that you keep the original name of the MDK directory, putting it somewhere such as ~/lib/mdk-170616-lite, and then make a symlink to this directory from ~/mdk; this will avoid version control problems if you update your MDK at a later date, and make it possible to copy-and-paste code direct from the documentation into your terminal.

Test

You should now be able to run any of the tools in the MDK by changing into the bin folder for your machine's system. For example, here we test the miro_maint tool on a 64-bit Debian system.

$ cd ~/mdk/bin/deb64 $ ./miro_maint ________________________________________________________________ MIRO tools [miro_maint] Copyright (C) 2019 Consequential Robotics ________________________________________________________________ ...

Install ROS

The Robot Operating System (ROS) is a communications layer (amongst other things) that is popular in robotics R&D. MIRO exposes its interface as a ROS node, so you will need to install ROS on your workstation in order to communicate with the robot.

There are many web resources that will help you to install ROS (you might want to look at this, for example). This page is a quick install recipe for Ubuntu Xenial (16.04 LTS) and similar Linux distributions with ROS "kinetic". The procedure will probably be similar for other systems and versions, but watch out for minor changes that might be needed to paths or tokens (such as the token "kinetic"!).

Base installation

Follow the instructions at ros.org to install ROS kinetic on your workstation.

Or, roughly, enter the commands below. This will take, like, a billion years to complete.

Ubuntu 16.04 LTS

We only directly support Ubuntu 16.04 LTS; the commands here are for this Linux distribution and version.
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' $ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116 $ sudo apt-get update $ sudo apt-get install ros-kinetic-desktop ros-kinetic-image-transport-plugins

Linux Mint 18

However, related Linux flavours ought to work fine, with a little tweak here and there—for example, if installing to Linux Mint 18, change the token $(lsb_release -sc) to the simpler token xenial, to give the following list of commands (i.e. install as if for Ubuntu Xenial).
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu xenial main" > /etc/apt/sources.list.d/ros-latest.list' $ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116 $ sudo apt-get update $ sudo apt-get install ros-kinetic-desktop ros-kinetic-image-transport-plugins

Configure installation for use with MIRO

If your robot or robots are to find the ROS master node on your workstation, they will need its IP address. To this end, you should now equip your workstation with a fixed IP.

Add the following lines to the file ~/.profile or ~/.bashrc, as preferred, on your workstation.

"~/.profile"
# configuration export MIRO_PATH_MDK=~/mdk export ROS_IP=[WORKSTATION_IP] export ROS_MASTER_URI=http://localhost:11311 # usual ROS setup source /opt/ros/kinetic/setup.bash # make our custom messages available to ROS/python export ROS_PACKAGE_PATH=$MIRO_PATH_MDK/share:$ROS_PACKAGE_PATH export PYTHONPATH=$MIRO_PATH_MDK/share:$PYTHONPATH

Replace the token [WORKSTATION_IP] with the fixed IP you have chosen for your workstation (and check that your MDK is indeed installed at ~/mdk, or else change that path as well).

Log out and back in (~/.profile) or just restart bash (~/.bashrc) to cause the above to take effect.

Test

You should now be able to run the ROS core as follows.

$ roscore ... Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB. started roslaunch server http://192.168.1.100:41666/ ros_comm version 1.12.2 SUMMARY ======== PARAMETERS * /rosdistro: kinetic * /rosversion: 1.12.2 NODES auto-starting new master process[master]: started with pid [21504] ROS_MASTER_URI=http://192.168.1.100:11311/ setting /run_id to a617fb4a-85d4-11e6-885b-74d02bce982a process[rosout-1]: started with pid [21517] started core service [/rosout]

Leave it running

You should leave the ROS master running on your workstation, because we'll be using it when we Commission MIRO.

Install Gazebo

On your workstation, install the robot simulator Gazebo only if you plan to work with a simulated MIRO robot. If you plan to work with physical MIRO, you do not need the simulator.

There are many web resources that will help you to install Gazebo. This page is a quick install recipe for Linux Ubuntu 16.04.1 (Xenial) using ROS "kinetic" and Gazebo 7. The procedure will probably be similar for other systems and versions, but watch out for minor changes that might be needed to path names.

Base installation

To install Gazebo, enter the commands below. Do not install "gazebo7" package, because this is not updated regularly. Instead, install "ros-kinetic-gazebo-dev" which provides the version that marries up with your ROS installation (at time of writing, Gazebo 7.14.0).

$ sudo apt-get install ros-kinetic-gazebo-dev

Configure installation for use with MIRO

Add the following lines to the file ~/.profile or ~/.bashrc, as preferred, on your workstation.

"~/.profile"
# usual Gazebo setup source /usr/share/gazebo/setup.sh # announce MIRO resources to Gazebo export GAZEBO_RESOURCE_PATH=$MIRO_PATH_MDK/share:${GAZEBO_RESOURCE_PATH}

Log out and back in (~/.profile) or just restart bash (~/.bashrc) to cause the above to take effect.

Test

You should now be able to invoke the simulator as follows.

$ gazebo ...
If the Gazebo window appears and then disappears immediately, you may have a problem with your graphics driver. You may find more information at the bottom of dmesg.
See also the FAQ entry Why does Gazebo halt with errors like OgreRenderSystem?