The MIRO Developer Kit includes support for simulating one or more MIRO robots inside the Gazebo robot simulator. You can develop your own controllers for these simulated robots and observe their behaviour inside the simulator. The workstation will run the simulator and, usually, also your robot controllers, though you can run your controllers on separate machines if desired.



In a shell, start the ROS core, as follows.

$ roscore ...

In a second shell, launch the Gazebo simulator, as follows.

$ cd ~/mdk/sim/gazebo $ ./launch_sim.sh ...

In a third shell, run the example client, as follows.

$ cd ~/mdk/bin/deb64 $ miro_ros_client robot=sim01 drive=push ...

If everything is working, MIRO will appear in a simple arena and start moving around. The MIRO simulator supports multiple robots at once, as shown below; you can drive each of them with a separate instance of miro_ros_client.

Alternatively, you can drive your simulated robot manually using the GUI client.

$ cd ~/mdk/bin/shared $ ./miro_ros_client_gui.py robot=sim01 ...


Gazebo has limited support for audio transduction and propagation, and we don't currently attempt to support audio (sensing or emitting) in simulation. Capacitive touch sensing is also not supported. All of the other sensors and actuators are present in the simulator.


Developing for the simulator is much the same as developing Off-board for the physical robot. You can get started by looking at the Examples provided. Note that a simulated MIRO will offer a ROS interface at /miro/sim01, or something similar.