# dummy.rs — Development Simulator

<span style="white-space: pre-wrap;">The simulator generates realistic fake rover data so the UI can be developed and tested without physical hardware. It is started via the </span>`<span class="editor-theme-code">start_dummy_streams</span>`<span style="white-space: pre-wrap;"> or </span>`<span class="editor-theme-code">start_detection_sim</span>`<span style="white-space: pre-wrap;"> commands from </span>`<span class="editor-theme-code">network.rs</span>`<span style="white-space: pre-wrap;"> and stopped with </span>`<span class="editor-theme-code">stop_dummy_streams</span>`.

### Stream table

Each stream has an independent send interval and a generator function that produces time-varying data:

<table id="bkmrk-streamintervalnotesi"><colgroup><col></col><col></col><col></col></colgroup><tbody><tr><th>**Stream**

</th><th>**Interval**

</th><th>**Notes**

</th></tr><tr><td>IMU

</td><td>20ms (50Hz)

</td><td>Sinusoidal accelerometer, gyro, magnetometer

</td></tr><tr><td>GPS

</td><td>200ms

</td><td>Slow position drift around a fixed coordinate (52.2297°N, 6.8978°E)

</td></tr><tr><td>pH

</td><td>500ms

</td><td>pH value oscillating around 7.0

</td></tr><tr><td>Arm control signals

</td><td>50ms

</td><td>Simulated joint control inputs

</td></tr><tr><td>Arm diagnostics

</td><td>500ms

</td><td>6 motors with dummy RPM/voltage

</td></tr><tr><td>Arm feedback

</td><td>100ms

</td><td>Occasionally simulates an obstruction error

</td></tr><tr><td>Arm positions

</td><td>50ms

</td><td>All joint angles oscillating

</td></tr><tr><td>Arm target

</td><td>200ms

</td><td>Target XYZ + jaw state

</td></tr><tr><td>Arm obstructions

</td><td>300ms

</td><td></td></tr><tr><td>Drive diagnostics

</td><td>500ms

</td><td>6 drive + 4 steering motors

</td></tr><tr><td>Drive motor

</td><td>50ms

</td><td>Distance to go, turning radius

</td></tr><tr><td>Drive progress

</td><td>100ms

</td><td>Countdown from 10m

</td></tr><tr><td>Sensor board diagnostics

</td><td>500ms

</td><td>Composite board health snapshot

</td></tr><tr><td>Detected objects

</td><td>50ms

</td><td>Generates up to 12 bounding boxes for objects

</td></tr></tbody></table>

### Network simulation

<span style="white-space: pre-wrap;">The simulator can optionally apply </span>**jitter**<span style="white-space: pre-wrap;"> (random delay up to </span>`<span class="editor-theme-code">jitter_ms</span>`<span style="white-space: pre-wrap;">) and </span>**packet loss**<span style="white-space: pre-wrap;"> (random drop with probability </span>`<span class="editor-theme-code">packet_loss</span>`) to simulate real wireless conditions. The full simulator uses 30ms jitter and 2% packet loss; the IMU-only simulator uses no jitter or loss.

###   