To build any sort of autonomous vehicle, you need a controller. This has to handle all sorts of jobs – reading sensor outputs, controlling motors and actuators, managing power sources – controlling a vehicle of even moderate complexity requires significant resources. Modern cars are a great example of this – even non-autonomous vehicles can have separate computers to control the engine, interior electronics, and safety systems. In this vein, [E.N. Hering] is developing a modular autonomous vehicle controller, known as YAUVC.
The acronym stands for Yet Another Unmanned Vehicle Controller, though its former name – Fly Hard With A Vengeance – was not without its charms. The project is built around the concept of modularity and redundancy. The controller, designed primarily for flying vehicles, has an ATMega328P as its primary processor, into which various modules can be plugged in to handle different tasks.
This design choice has several benefits – having separate processors to handle individual jobs can make sense in real-time systems. You’d hardly want your quadcopter to crash because the battery management routines were stealing CPU time from the flight dynamics calculations. Instead, by offloading tasks to individual modules, each can run without interfering with the others. Modularity does come with drawbacks however — the problem of maintaining efficient communication between modules is one of them. [Hering] also plans to make sure the system can be set up to use multiples of the same module for redundancy – similar to modern flight systems in passenger aircraft that weigh the results of several computers to make decisions.
Much work has already been done – with the YAUVC platform already fleshed out with a backbone design as well as modules for WiFi, accelerometers and GPS navigation. We look forward to seeing YAUVC reaching flight-ready status soon!