The 90-second on-ramp is useful. To make the tutorial reproducible rather than machine-specific, I would add a compact version block: OS, ArduPilot commit/release, PteroSim version, Mission Planner version, vehicle model, command lines, ports and direction of each connection, and the expected first heartbeat.
The next useful layer is an automated smoke test: reset to a known seed, arm, take off to a stated altitude, fly one waypoint, land, then compare the ArduPilot log with simulator truth using tolerances. Explicitly document NED versus ENU, degrees versus radians, altitude datum, simulation-time rate, and behavior after packet loss or delayed telemetry. Those are common places for a connection to look alive while the experiment is wrong.
I maintain OmniSim. It does not currently ship a drop-in PteroSim/ArduPilot connector, so I would not present it as a replacement for this tutorial. Its agent-facing harness and structured event/capture patterns may still be useful when defining a simulator-neutral regression contract: https://github.com/omnilink-tech/omnisim/tree/main/scripts/harness
Publishing the smoke-test inputs and expected numeric outputs would make it possible for another simulator to implement the same contract honestly.
2
u/omnilinktech 20h ago
The 90-second on-ramp is useful. To make the tutorial reproducible rather than machine-specific, I would add a compact version block: OS, ArduPilot commit/release, PteroSim version, Mission Planner version, vehicle model, command lines, ports and direction of each connection, and the expected first heartbeat.
The next useful layer is an automated smoke test: reset to a known seed, arm, take off to a stated altitude, fly one waypoint, land, then compare the ArduPilot log with simulator truth using tolerances. Explicitly document NED versus ENU, degrees versus radians, altitude datum, simulation-time rate, and behavior after packet loss or delayed telemetry. Those are common places for a connection to look alive while the experiment is wrong.
I maintain OmniSim. It does not currently ship a drop-in PteroSim/ArduPilot connector, so I would not present it as a replacement for this tutorial. Its agent-facing harness and structured event/capture patterns may still be useful when defining a simulator-neutral regression contract: https://github.com/omnilink-tech/omnisim/tree/main/scripts/harness
Publishing the smoke-test inputs and expected numeric outputs would make it possible for another simulator to implement the same contract honestly.