I am curious about how the task scheduling is handled by Emlid Raspberry Pi OS and it’s impact on the autopilot performance. As far as I know and can find on internet Emlid Raspberry Pi OS (https://files.emlid.com/images/emlid-raspbian-20220608.img.xz) is not real time. For autopilot functions I would assume that the Emlid Raspberry Pi OS running the Ardupilot must guarantee that the tasks are taking place within the time deadline constraints. I see that Ardupilot sets various thread priorities using pthread_setschedparam and SCHED_FIFO ( ardupilot/Scheduler.cpp at master · ArduPilot/ardupilot · GitHub) is that good enough for a quadrotor which is dynamically unstable? Are there not timing overruns on Emlid Raspberry Pi OS while running Ardupilot since it is not real time? Or there is some other magic happening which makes the Ardupilot run with almost near real time performance on Emlid Raspberry Pi OS. I would appreciate if someone can shed some light on this.
Thanks,
N