Hey everyone,
I was recently reading a book on ROS 2 and went looking for ros2_java. After finding out that project essentially died, I discovered jros2 and decided to just build an app to test its limits.
The result is the jros2 Cellphone Sensor Bridge. It is an Android (Jetpack Compose) application that exports live phone sensor telemetry to ROS 2 using standard sensor_msgs, std_msgs message types, and custom mobile_sensor_msgs definitions over the IHMC jros2-android stack (Fast DDS + JavaCPP JNI).
How it works:
-
It initializes a fully compliant ROS 2 Node (
phone_sensor_node) directly on your physical Android smartphone. -
It streams real-time, high-frequency telemetry from 11+ hardware/software sensors and input devices (IMU, Magnetometer, GPS, Touch Screen, Dual Cameras, etc.).
-
It employs an Android multicast Wi-Fi lock to ensure robust, real-time discovery of DDS participants directly on the local network without intermediary servers.
Here is a quick demo showing the phone acting as a dual-joystick controller and streaming data: https://www.youtube.com/watch?v=skNQdbO8yrw
Repo, architecture details, and the v1.1.0 APK are available here: https://github.com/SinfonIAUniandes/jros2_cellphone_interface/tree/main