There are many ways to use your robot, but we define three "profiles" by way of illustrating the ecosystem. This page describes these profiles.
What are the profiles?
The three profiles are "on-board", "off-board", and "simulator".
If you want to write control software for the physical robot, you can either write it to run "on-board" the robot, or to run "off-board" on your workstation, communicating with the robot over wifi.
If you want to develop control software but don't have a physical robot available, or you feel you will be able to work faster in simulation, you should follow the "simulator" profile. This is more demanding of your workstation.
Don't worry—software written for one profile is suitable for use with the others, subject to the various performance caveats listed below. What you learn working in one profile will be applicable to the others.
In each profile, there is the idea of the "robot" (MiRo, the performer) and the "controller" (the software that receives signals from the robot, decides what to do, and sends signals back to control it).
|No reliance on the network once controller is running, can be useful for multiple robots or field robotics. Control is at low latency and with no bandwidth concerns. Development cycle is slower and compile-times, if using, are long. Overall compute power is limited.
|Requires network at run-time, which can introduce variable latency and limited bandwidth. Development is convenient and rapid and compiling is fast. Compute power can be scaled.
|No requirement for physical robot, so no effort on maintenance and repair. Imperfect match with the real world, some faculties missing (see limitations of the simulator). Compute power can be scaled, sub-real-time can be used to scale also.
Prepare your profile
Each profile requires a different set of preparatory steps. All profiles require an off-board computer (see Requirements), but the computer plays different roles in each profile. For your chosen profile, follow the instructions in the appropriate section below to get up and running.