Measurement Sequence
The outer measurement sequence is implemented in server/zmq_orchestrator.py.
Per cycle:
orchestrator -> MOVE to rover <- MOVE_DONE -> capture one Qualisys position sample -> START_MEAS to acoustic client <- MEAS_DONE -> START_MEAS to RF orchestrator <- MEAS_DONEImportant interpretation details:
- the position sample is taken after the rover has reached the commanded waypoint
- the acoustic and RF measurements are then performed while the rig remains at that location
- the RF cycle contains its own internal synchronization with the tile workers
Per START_MEAS to server/record/RF-orchestrator.py:
- wait for
rf_sync.num_subscribersALIVE messages - wait
rf_sync.pre_sync_delay_s - publish one
SYNCmessage with payload<cycle_id> <experiment_id> - wait for
rf_sync.num_subscribersDONE messages - append a measurement entry to
server/record/data/exp-<experiment_id>.yml
This is the core meaning of one orchestrator cycle_id: one rover pose followed by one acoustic and one RF acquisition pair.