This wiki moved
Please use the new location: https://github.com/mintforpeople/robobo-programming/wiki
The Robobo Developer app
The main element that makes a Robobo a robot compatible with ROS is the application Robobo Developer.
This application implements a proxy over the Robobo framework that makes it compatible with the ROS communications system.
Robobo publishes all their sensors, in raw format, using a set of ROS topics, one for each sensor. The detailed explanation of each topic can be found at Documentation of Robobo Sensor Topics.
Regarding robot actuation, Robobo provides a set of ROS service to command its movement and other actions. The detailed explanation can be found at Documentation of Robobo Services.
Installation of the Robobo Developer application must be done directly from the Google Play app store on any Android 5.1 or higher compatible device:
When you first run the application, it will ask for permissions to take photos, record videos, record audio and access multimedia content.
The smartphone and the robobo base must be paired by bluetooth in order to be able to communicate between them. If the bluetooth is not activated, the application will shown an error a guide you to the bluetooth configuration screen to enable it. If the desired Robobo base does not appear in the devices list, it may not be paired. Turn on the Robobo base without being connected to the battery charger and go to the bluetooth configuration screen of the phone, activate the discovery of nearby devices and, when it appears, select it to connect.
To run the application select the robobo robotic base and press the START button. If everything went well the robobo face should appear on the screen. After this all modules must be running, including the Robobo module which publishes the topics and starts all available services.
By the default, the application creates its own a ROS master in the smartphone. If you want to use it, the ROS nodes must use the smartphone's IP address as ROS Master URI. By example, if the smartphone's IP address is 192.168.0.101, the enviroment variable ROS_MASTER_URI must be set with the value http://192.168.0.101:11311. The applicaton uses the port 11311, the same port used by ROS by default.
On the contrary, if you prefer to use your own computer or other device as a ROS Master, press the 'Settings' button and then press 'ROS Options', disable the 'Local ROS Master' option, enter the remote master URL (do not forget to include the port) and finally press 'Save'. After this, each time the application starts, it will search the specified ROS Master to publish its services and topics.
In addition, it is possible to connect several Robobo robots to a single ROS Master to work in multi-robot applications. This is achieved by assigning a name to each of the robots, so that you can distinguish the different topic and services. To activate the multi-robot feature go to the 'ROS Options' screen, select 'Multirobot' and enter a multi-robot name. This is used to create a prefix that is added to all topic names and services; for example, if you call your Robobo 'robot1' then the taps topic identifier will be /robot/robot1/tap. The same happens with services, for example the MoveWheels service will be /robot/robot1/moveWheels.