Skip to content

Simulation softwareTumbleweed Mars

Simulating a wind-driven rover in Unity

Developed a Unity simulator in C# to study rover motion and generate data for localisation development.

Source code is private.

Result

A configurable Unity/C# testbed with virtual sensors and reference trajectories.

The challenge

A wind-driven rover rolls over uneven terrain while its inner payload moves within the shell. Navigation development needs repeatable motion scenarios and a reference path against which to compare position estimates.

My contribution

  • Developed the simulator's C# software for the rolling shell and inner payload, with configurable terrain, gravity and wind inputs.
  • Implemented virtual sensor outputs and image capture alongside reference trajectories, with CSV exports for Python analysis.
  • Connected simulation outputs to navigation-development workflows so motion, sensor readings and position estimates can be examined together.
  • Added automated motion and collision checks for defined configurations and supported Linux batch builds and execution.

Results and validation

Created a repeatable software testbed for rover motion and localisation, with reference trajectories for evaluating estimation error. Configurable scenarios and recorded outputs support investigation of navigation behaviour before physical testing. The navigation work features in the IAC 2026 interactive programme. A talk at iSpaRo 2026 is scheduled for 4 November 2026.

Technical details

Software simulation with virtual sensors. It is not a field-calibrated model of the rover. The separate PESTO evaluation used controlled trajectories and offline preprocessing; its measured error reduction is reported in the localisation case study.