Hi @rozner88,
Some context first. On VOXL 2 the estimator, controllers, sensor drivers, and ESC driver run on the DSP, not the apps processor. The CPU usage you see for voxl-px4 is only the apps processor side of PX4 (MUORB bridge, MAVLink, logging), so a heavy apps-side process is not expected to throttle the rate controller directly. The DSP has its own load figure, which is recorded in the PX4 log as the cpuload topic. See https://docs.modalai.com/voxl-px4-system-architecture/#cpu-load. The MAVLink "drops" in the log are not real drops; as Eric notes below, they come from the DSP and the apps processor keeping separate event numbering sequences. The logger does run on the apps processor, so it is still worth checking whether the "throttle drops to zero" are real actuator output gaps or gaps in the log itself.
That said, I do not have a confident explanation for the control degradation yet, and I would like our PX4 and ESC folks to look at the log. To help with that, please upload the ulog to https://logs.px4.io and post the link, and answer a few questions:
Does the stack publish anything into PX4 at all, even in altitude mode, such as odometry through voxl-vision-hub, setpoints, or parameter changes? VIO is disabled in your service list, so if the stack brings its own odometry source that matters.
Does the stack open any cameras or change camera-server streams when it starts? camera-server is already the heaviest service before the stack runs.
Does the same behavior happen on the bench with props off, and does it change if you run voxl-set-cpu-mode perf before starting the stack?
Is the stack in a Docker container, and does it pin cores or set real-time priority?
Once we have the log we can check DSP load, actuator outputs, and ESC status together.