You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SITL: optional shared-memory transport for ride-along JSON
When a ride-along master (--slave N) and its JSON slaves are all
started with --cluster, the fdm/servo exchange runs over the cluster
shared-memory segment instead of the UDP sockets; without --cluster
the UDP transport remains exactly as before. The wire content is
unchanged in both directions - the master's JSON line and the slave's
binary servo packet are byte-identical over either transport - so the
two paths are directly comparable.
Each instance's 4096-byte payload slot is partitioned: SwarmInfo keeps
offset 0, and bytes 512+ become a seq-numbered one-way channel (the
master publishes fdm in its own slot, each slave publishes servos in
its own slot; readers poll seq for change, and the per-slot robust
mutex makes every read internally consistent). write_payload() and
read_payload() gain a default-0 offset argument to address the
partition.
The master now also reports its achieved exchange rate every 2s of
wall time over either transport, so the two can be A/B compared:
measured master+1-slave on one host, UDP averaged 11.6k frames/s
(peak 13.9k) and shared memory 15.0k frames/s (peak 20.6k), ~30%
faster on average with ~50% higher peaks.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
0 commit comments