i would like to run an Ardurover on a linux based platform. However, i read about latency/event problems on linux solution and that Ardupilot doesn’t work properly on standard linux and that RT linux is required. Does Ardupilot/Ardurover really consume so much computing power? Is there a difference between Ardupilot and Ardurover in term of events and/or computing power requirements?
It would be great if somebody could explain me what kind of events causes problems on linux.
It’s not so much computing power, but scheduling certainty. You can run ArduPilot on a standard Linux kernel if you want to, but the guys supporting the Linux based autopilots (emlid, mirko, etc) have put a fair bit of effort into tweaking things to get the best results.
Could you please more explain the scheduling problems?
I didn’t say scheduling problems. I said scheduling certainty.
This gives a little background on rt on Linux: https://www.linuxfoundation.org/blog/intro-to-real-time-linux-for-embedded-developers/
Yes i understand, but what kind of task for example need to be executed in RT and why? What would be the consequence if the ArduPilot would run on standard (no RT) linux?
Without the RT kernel, it is possible for some tasks in Linux to grab the processor and not release it for an uncertain amount of time. For stable flight, the sensors, control loop and outputs all need to run reasonably fast (400Hz for copter loops but sensor reads at 1khz). If the ArduPilot code can’t achieve this because something else in Linux is blocking it, you’ll either appear unstable or crash. The RT patch pretty much removes that risk.
What about ArduRover? Requires it 400hz for loops as well?
I honestly haven’t looked but at a guess it’s probably only 50Hz.
Rover should be fine without RT. I remember a discussion over this on the Emlid forum.
I think, I ran Ardurover on a normal Raspbian once, with my Navio or Navio+ board, because there were issues with the Emlid image
The hard part is keeping a copter in the air and that needs the RT kernel.