Off-board

In this profile, the controller runs on a workstation attached to the same (usually wireless) network. This allows the use of more computationally-demanding controllers than the on-board computer can handle. Other than that the controller runs on a different computer (rather than the built-in Raspberry Pi) this profile is used in the same way as "on-board".

Getting Started

To get started with this profile, you need first to connect your robot to a network. Use MiRoapp to note down the network address ("IP address") at which MiRo has connected.

Now, on a workstation on the same network, install ROS, then install the MDK (the MDK version you install must match the version of the MDK on your robot, which you can view using MiRoapp).

To connect to the robot, set the value of MIRO_ROBOT_IP before you source ~/mdk/setup.bash in your .bashrc, as follows.

$ export MIRO_ROBOT_IP=x.x.x.x $ source ~/mdk/setup.bash ________________________________________________________________ Sourcing mdk/setup.bash... ... Local network address: 192.168.1.100 (set from miro_get_dynamic_address()) Robot network address: x.x.x.x (set explicitly) ROS master address: http://x.x.x.x:11311 (set from MIRO_ROBOT_IP) ... ________________________________________________________________

You can see above that the network address provided in MIRO_ROBOT_IP has been used to determine the address of the ROS master. You should replace the token x.x.x.x with the network address of your robot recovered from MiRoapp.

You can set up your ROS network manually, or in a more sophisticated way, if you need to—you can use a networked ROS master rather than the one on the robot, for instance.
See ROS Network to configure the network interfaces of the robot.
See Configure Network to configure your workstation and the MDK.

Examples

You can now control MiRo as follows—the robot will swing its head from side to side. Press CTRL+C to stop the controller.

$ cd ~/mdk/bin/shared $ ./client_test.py yaw ...

There are various example clients provided—see Examples for more details.

GUI client

The provided GUI client is a great way to familiarize yourself with your robot's sensors and actuators. Proceed as follows to start it.

$ cd ~/mdk/bin/shared $ ./client_gui.py ...