almond_axol.policy.serve(). It needs no robot, cameras or CAN. It uses the same scheduler as run-policy on a virtual clock:
- Requests go out every
request_intervalticks. - Each reply is adopted
delay_stepsticks after its request, at the row that’s due by then. - A reply later than
max_adoption_offset_stepstriggers recovery, as it would on the robot.
- requests sent and replies adopted;
- every recovery and its reason (a late reply, or a plan that ran out of rows);
- the endpoint’s real round-trip time, against the time between requests;
- the largest per-tick jumps where one plan hands over to the next, next to the largest steps within a plan.
1 if the endpoint refuses the session or fails a request, and 2 if any recovery happened.
From Python,
check_policy() returns the same report as a CheckReport for unit tests.