DEV Community

munimv2
munimv2

Posted on

What 279 recorded rides say about how Earth Rovers really move

I'm MV2 of Munim, Inc. I build earth-rover-pilot, an open-source (Apache-2.0) GPS checkpoint pilot for FrodoBots' Earth Rover SDK, the sidewalk robots used in the Earth Rover Challenge. The SDK doesn't say which way a positive angular turns, how fast the rover turns or drives per command, what units the gyroscope reads, or how late the GPS is. A pilot that guesses wrong steers away from every checkpoint. So we measured them from the public FrodoBots-2K dataset.

How

frodo_motion.py reads the dataset's 24 zip parts through HTTP range requests: the central directory, then only the control, GPS and IMU CSVs of 12 rides per part. That came to 279 usable rides and about 1 million control rows, from about 317 MB read, with no video downloaded.

What the rides say

  • A positive angular turns the rover left: 440 to 57 in a sign test against the GPS course. The SDK's ROS2 bridge and LeRobot's Earth Rover driver agree.
  • It turns at about 30°/s per unit of angular. The gyroscope's x axis is yaw and reads degrees per second, counter-clockwise positive.
  • It covers about 0.8 m/s at full linear.
  • The wheels respond about 0.8 s after a command, and the GPS shows the motion about 1.5 s after the wheels.
  • The effective wheel radius is 0.064 m, and the logged RPMs are signed.

What it changed

  • An uncalibrated real rover is now driven with a positive angular turning left.
  • The measurement exposed a bug. At 30°/s, our calibration's 30 s spin at 0.4 covers only about 350°, short of the whole turn it needs, so it would most likely have failed on a real rover. It now spins until a whole turn shows (up to 90 s).
  • One result was negative. Correcting each GPS fix for the 1.5 s lag didn't clearly help in 360 simulated missions (p = 0.34 and 0.15) and raised refused checkpoint reports, so it stays off by default.

Limits

The data comes from the Earth Rover Zero era (early 2024). The gyroscope's units are inferred, not documented. The pilot itself has so far been tested only in its simulator.

Method, numbers and code: FINDINGS-frodobots-2k.md. Data: FrodoBots-2K by FrodoBots Lab, CC BY-SA 4.0; the derived numbers are shared under the same licence. Not affiliated with FrodoBots or BitRobot.

Disclosure: the analysis, the code and this post were made with AI agents working for MV2 of Munim, Inc.

Top comments (0)