ROBOTICS FIELD NOTESENGLISH EDITION / 19 October 2026
Research / 2024

Robo-Platform: What a Phone-Based Sensor Recorder and Robot Controller Measures

What the Robo-Platform paper records from an Android phone, how fast its USB, Wi-Fi and Bluetooth links are, how SLAM tools handled its data, and what it does not do yet.

Three parts and two modes

Robo-Platform is described in an arXiv preprint by Masoud Dayani Najafabadi and Khoshnam Shojaei of the Department of Electrical Engineering, Islamic Azad University, Najafabad Branch. It was first submitted on 25 September 2024 and revised to version 3 on 17 July 2025. No conference or journal venue is listed, so it has not been presented here as peer-reviewed work. [1] [2]

Components as described in the paper and repository
PartWhat it isRole
Android appJava app for API 35, minimum API 21Records sensors, or relays commands to the robot
Microcontroller board over USBArduino Uno, Due or Mega 2560, or a custom ATmega8 or ATmega32 board using the V-USB libraryGPIO, PWM and analogue-to-digital readings the phone does not have
ControllerDesktop app in Java with a JavaFX interface, or a second phoneSends commands over Wi-Fi or Bluetooth

[2] [3]

In data acquisition mode, only the phone is needed, plus the board if an external sensor is read. In robot control mode, all three parts are used: commands travel wirelessly from the controller to the phone, and over USB from the phone to the board that drives the motors. The code, schematics and PCB designs are in an MIT-licensed repository that links to a sample dataset. [2] [3]

What it records, and in what form

Recorded data as described in the paper
DataStored asDetail that matters later
Accelerometer, gyroscope, magnetometerOne file per sensor type, with optional bias columns and a sensor IDRaw, uncalibrated readings are available
GPS fixTimestamp, latitude, longitude, altitude, velocity, bearingAbout one fix every 4 s in the recorded data
Raw GNSSNavigation messages and measurement messages in separate filesUsable for post-processing positioning
CamerasTimestamped JPEG images and a text index, one index per physical cameraFocus, white balance and exposure locked at the start; lens distortion correction off; 640 × 480 in the published dataset
External sensor on the boardTimestamp, ADC reading, optional channel IDMeaning depends on the attached sensor
CalibrationSeparate files for camera parameters and ADC settingsChannel count, bit resolution and sample rate recorded

[2]

Each value is stamped with nanosecond resolution when it becomes available to the app. The paper does not describe hardware synchronization between sensors. Locking focus and exposure keeps the camera model constant through a recording, which visual SLAM relies on; the missing synchronization means time offsets between camera and IMU must be estimated afterwards. The paper itself notes that, unlike MARS Logger, it does not calibrate time offsets offline. [2]

Why timestamps and synchronization decide whether recorded data can be trained on is explained in how robotics teams collect training data.

Measured rates: a fast IMU and a slow camera

Table IV of the paper, with the rate column computed here from the mean period
SensorMean periodPeriod standard deviationRate (our calculation)
Gyroscope0.01 s0.002 sAbout 100 Hz
Accelerometer0.01 s0.002 sAbout 100 Hz
Magnetometer0.01 s0.003 sAbout 100 Hz
External ADC0.01 s0.003 sAbout 100 Hz
Camera0.32 s0.038 sAbout 3 images per second
GPS4.06 s0.378 sAbout one fix every 4 s

[2]

Two figures deserve attention. The IMU period varies by 2 ms around 10 ms, so consecutive samples are not evenly spaced and must be integrated with their own timestamps rather than an assumed 100 Hz. The camera delivers about three images per second. For comparison, the EuRoC drone dataset that the paper also evaluates lists 20 images per second per camera and a 200 Hz IMU. At three images per second, a phone carried at walking pace moves roughly 40 cm between images, which leaves visual tracking little overlap to work with. That distance is our arithmetic at an assumed 1.3 m/s, not a figure from the paper. [2] [4]

What SLAM tools made of the recordings

Table V of the paper: percentage of each sequence tracked. A dash means the method failed on that sequence. Median of five runs.
Robo-Platform sequenceORB-SLAM3, visualORB-SLAM3, visual-inertialVINS-Fusion, visual-inertialEKF, inertial
iaun-cvr-lab286897100
iaun-library10–90100
iaun-corridor11256–100
iaun-corridor26–17100
koohestan-park–––100

[2]

Visual-only ORB-SLAM3 tracked between 6 % and 28 % of the indoor sequences and none of the park sequence. Adding the IMU helped where it worked: VINS-Fusion tracked 97 % of the lab sequence and 90 % of the library. The inertial EKF tracked everything, but the authors note that it drifts, because the IMU-only runs had no magnetic or GPS correction. A 100 % tracking time therefore says the filter kept producing an estimate, not that the estimate stayed correct. [2]

The authors attribute the visual failures to low frame rate, fast motion and lighting changes, and their reference sequences from EuRoC and TUM-VI generally scored higher. That matches the rate table above. Anyone recording with this app for visual SLAM should expect to raise the image rate or slow the motion before blaming the algorithm. [2]

The two robot experiments

The toy car uses a Samsung Galaxy J5 attached to an ATmega8 V-USB board. Two digital outputs drive a DC motor through a motor driver, one switching it on or off and the other setting its direction, and commands come wirelessly from the desktop app. The quadcopter uses an Arduino to generate PWM. The phone reads the four current PWM values, the wireless commands and its own IMU to estimate orientation, then computes new PWM outputs. [2]

The paper reports no flight measurements for the quadcopter. An attitude loop that passes through Android scheduling and a USB round trip of several milliseconds is a demanding arrangement, so the experiment shows that the architecture can be wired together, not how well it flies. [2]

A phone that does run a walking robot’s control is examined in what UCLA’s PhoneBot runs on the phone.

What the authors say it does not do

  • Android only; no iOS version and no barometer recording.
  • In data acquisition mode, the board is read over USB only, and live data is shown only as the camera preview.
  • No monitoring in control mode: camera feeds are not sent to the controller, and sensor data is not used for control in server mode.
  • Recorded data is uncalibrated and noisy and needs post-processing, such as timestamp alignment and format conversion, before SLAM tools accept it.
  • The code is not optimized for performance, and communication logic is not separated from sensor logic.
  • V-USB buffers are capped at 64 bytes; encrypted communication is mentioned only as future work.

[2]

When it fits a project

Our reading of the measurements against common uses
UseFitReason
Logging IMU, raw GNSS and multiple phone cameras for offline experimentsGoodPer-sensor files, raw values and calibration files are the paper’s main contribution
Visual or visual-inertial SLAM benchmark at normal motion speedsWeakAbout 3 images per second and no hardware synchronization
Driving a hobby car or a slow platform from a laptopGoodArduino USB and Wi-Fi latencies are in the 6 to 14 ms range
Closed-loop control over BluetoothPoor87.1 ms latency and the lowest throughput
Anything that needs safety-rated stoppingNot intendedNo safety function is claimed or tested

[2]

The useful lesson extends beyond this app: before recording a dataset with any phone logger, measure the actual period and jitter of each stream, as Table IV does, and check that the camera rate suits the motion you intend to record. [2]

Sources and verification

  1. Robo-Platform: A Robotic System for Recording Sensors and Controlling Robots (arXiv:2409.16595) ↗arXiv · Read 19 October 2026

    Listing for version 3, revised 17 July 2025; first submitted 25 September 2024. Authors Masoud Dayani Najafabadi and Khoshnam Shojaei. Subjects cs.RO, cs.SY, eess.SY. No conference or journal venue listed.

  2. Robo-Platform, HTML full text, version 3 ↗arXiv · Read 19 October 2026

    Tables IV (acquisition statistics), V (SLAM tracking time), VI (USB, Wi-Fi and Bluetooth latency and throughput), file formats, supported boards, experiments and stated limitations. Affiliation: Department of Electrical Engineering, Islamic Azad University, Najafabad Branch.

  3. m-dayani/robo-platform repository ↗GitHub · Read 19 October 2026

    MIT licence. Android, AVR and desktop modules as Git submodules, scripts folder, link to a sample dataset on Google Drive and a video walkthrough.

  4. The EuRoC MAV Dataset ↗ETH Zurich Autonomous Systems Lab · Read 19 October 2026

    Lists stereo WVGA monochrome images at 2 × 20 FPS and a MEMS IMU at 200 Hz. Used only as a reference point for rates.

Evidence limits

  • The paper measures latency by echoing timestamped packets. This note repeats its latency figures without deciding whether they are a round trip or a one-way estimate.
  • Phone models used for the authors’ recordings are not named; only the Galaxy A20 (link tests) and Galaxy J5 (toy car) are.
  • The SLAM table reports the share of each sequence that was tracked, not trajectory error. Tracked is not the same as accurate.
  • The quadcopter experiment has no published flight measurements.
  • The text mentions iaun-corridor4 in one place while Table V lists iaun-corridor1.

Article history

Research note added after the paper title appeared in reader searches. arXiv listing, HTML full text, repository and EuRoC dataset page checked on 19 October 2026.

Report a correction