3 ms·
Because it's easy to work with. Even low end processors support it as long as they have an mmu.
by farseer 2y ago
Because it's easy to work with. Even low end processors support it as long as they have an mmu.
- amelius 2y agoBut why not a real-time OS? What if Linux schedules some unimportant job just as the helicopter is about to perform an important manoeuvre?
- vbezhenar 2y agoI don't know specifics of this helicopter, but: 1. You can apply patches which turn Linux into RTOS. 2. You can offload RTOS-specific tasks into separate simpler MCUs and use ordinary OS to communicate with them in a more relaxed way.
- NoahKAndrews 2y agoLinux can do real-time scheduling. Most of the patches for that have been merged into mainline at this point, but they've existed out of tree (with real use) for a long time.
- RobotToaster 2y agoDoesn't GNU/linux have optional real time extensions?
- sillywalk 2y agoIt looks like Linux is doing higher-level stuff, and the real-time is done by a pair of redundant MCUs and a FPGA.[0] It's running F´ (F Prime) flight control software,[1] which can run under Linux, as well as on MCUs with no OS. I'm not sure on which processors it's running. "The two redundant TI Hercules safety processors serve as the low-level flight controller (FC); each has dual-core lockstep ARM Cortex-R5F and ECC protected Flash and RAM. The two processors run in sync and are provided with the same clock and data by the FPGA, which handles all the sensors and actuators interface. The lockstep mechanism does cycle by cycle error detection. If a fault is detected, it signals the error to the FPGA; the FPGA switches to the other processor and power cycles the faulty one, so the flight control software continues to run without disruption. .. At the heart of the helicopter avionics is a Field-Programmable Gate Array (FPGA). The FPGA implements the custom digital functions not implemented in software due to resource limitations of the processors (e.g. I/O or bandwidth limits), timing requirements, power considerations, or fault tolerance considerations. The FPGA device is a military-grade version of MicroSemi’s ProASIC3L, which uses the same silicon as the radiation-tolerant device from the same family. The FPGA perform all critical I/O to the sensors and actuators, and fault managment functions including detecting error flags from the MCU and hot-swapping to the functioning MCU in case of an error. The FPGA performs vehicle flight control including an attitude control loop operating at 500 Hz, an outer motor control loop, waypoint guidance, sensor I/O from the IMU, altimeter and inclinometer, and analog telemetry for current and temperature sensing. It is responsible for system time management, interfaces to the IMU, altimeter and inclinometer sensors. It implements the “inner” motor control loop used for the two brushless rotor motors and the six brushed motor servos (three at each rotor swashplate), as well as power management and thermal control functions."[0] [0] https://rotorcraft.arc.nasa.gov/Publications/files/Balaram_AIAA2018_0023.pdf https://rotorcraft.arc.nasa.gov/Publications/files/Balaram_A... [1] https://nasa.github.io/fprime/ https://nasa.github.io/fprime/