Designing the software for our drone (AP-3) started with a clean sheet design. The AP-3 software had to be fully deterministic: it had to respond in a totally predictable and verifiable way, not only in terms of functionality but also in terms of time. This has forced the software team to adopt radically different software architectures than what is commonly done in embedded software outside of the safety-critical and aviation world. Initially the team focused on whiteboard architecture and prototyping, then when those were validated the 5 headed team moved on to building the invisible parts of the software iceberg: the foundations libraries, drivers, code generation tools, etc. Today the team is releasing the visible parts, and getting them integrated on the hardware boards.
An increasing number of software packages have reached or are currently reaching a pre-integration level of readiness. Bruno Santos, Software Engineer: “One of the packages we are working on is the software driving the actuators spread around the aircraft and their sensors. The next milestone is the system integration: getting all the items to work as a whole, which has been happening already at small scale and is ramping up quickly as more and more items achieve the required level of completeness.”