-
Notifications
You must be signed in to change notification settings - Fork 0
Robobo Developer ROS2 Android
In the robobo_ros2 ecosystem, an Android smartphone acts as the robot's sensory and interaction head, providing the camera, display, microphones, speakers, orientation sensors, and touch interface.
Rather than running an embedded ROS 2 DDS middleware stack directly on the smartphone, the smartphone runs the standard Robobo mobile app. The ROS 2 virtual nodes in robobo_ros2 run natively on your workstation or robot computer and communicate with the smartphone over the local Wi-Fi network using the Robobo communication protocol.
- Robobo robotic base (charged and powered on).
- Android smartphone running Android 7.0 or higher.
- Wi-Fi network to which both your computer and smartphone are connected (the network must allow direct communication between devices).
-
Workstation or SBC running ROS 2 with
robobo_ros2installed.
Download and install the Robobo mobile app from Google Play:
When launched for the first time, grant all requested permissions (Camera, Microphone, Storage, and Location / Nearby Devices for Bluetooth).
- Turn on the Robobo robotic base by pressing the power button on its back. The LEDs on the front will light up red.
- On your Android smartphone, open Settings > Bluetooth.
- Enable Bluetooth and scan for nearby devices.
- Select your Robobo base from the list (it will appear with a name corresponding to your base ID).
- When prompted for a pairing PIN, enter
1234.
Insert the smartphone gently into the Robobo base holder. Separate the holder arms with your fingers if necessary and slide the phone down until it is firmly seated in the dock.
- Ensure the smartphone is connected to the same Wi-Fi network as the computer running ROS 2.
- Launch the Robobo app on the smartphone.
- On the startup screen, select your paired Robobo base from the dropdown.
- Note the Device IP address shown on the screen (for example:
192.168.1.50).
- Tap START to start the Robobo service on the phone.
On your ROS 2 workstation, start the robobo_ros2 container node using the IP address from the previous step:
# Using ros2 launch
ros2 launch robobo_ros2 robobo.launch.py ip:=192.168.1.50 robot_name:=0
# Or using ros2 run
ros2 run robobo_ros2 robobo_container --ros-args -p ip:=192.168.1.50 -p robot_name:=0Once connected, all base and smartphone topics, services, and actions will be available under /robobo/robot_0/....
If you do not have physical robot hardware or an Android phone available, you can use the Unity Robobo Simulator (RoboboSim), which simulates the base and all smartphone modules.
The virtual ROS 2 nodes can connect to the simulator using its IP address:
-
Host Machine (Native): Use
127.0.0.1orlocalhost:ros2 launch robobo_ros2 robobo.launch.py ip:=127.0.0.1 robot_name:=0 robot_id:=0
-
Docker Container: When running ROS 2 nodes from inside Docker, use
host.docker.internalto reach the simulator on the host:ros2 launch robobo_ros2 robobo.launch.py ip:=host.docker.internal robot_name:=0 robot_id:=0
-
Connection Refused / Timeout:
- Verify that both devices are on the same Wi-Fi subnet.
- Test connectivity from your computer terminal:
ping 192.168.1.50
- Ensure that your Wi-Fi router does not have AP Isolation / Client Isolation enabled, which prevents devices on the same Wi-Fi from talking to each other.
- Check that your computer's firewall is not blocking incoming/outgoing connections.
-
Base Not Responding:
- Verify that the base is powered on and paired via Bluetooth.
- Restart the Robobo app on the smartphone and press START again.
-
Camera Stream Not Starting:
- Verify that
robobopy_videostreamis installed in your Python environment:pip install robobopy_videostream
- Call the camera start service:
ros2 service call /robobo/robot_0/smartphone/camera/start_camera robobo_ros2_interfaces/srv/StartCamera "{}"
- Verify that
