13
Aurora Flight Sciences Proprietary UAV Implementation of Software Reuse Martin L. Gomez [email protected] Aurora Flight Sciences Corporation 9950 Wakeman Drive Manassas, VA (703) 369-3633

Aurora Flight Sciences Proprietary UAV Implementation of Software Reuse Martin L. Gomez [email protected] Aurora Flight Sciences Corporation 9950 Wakeman

Embed Size (px)

Citation preview

Page 1: Aurora Flight Sciences Proprietary UAV Implementation of Software Reuse Martin L. Gomez mgomez@aurora.aero Aurora Flight Sciences Corporation 9950 Wakeman

Aurora Flight Sciences Proprietary

UAV Implementation of Software Reuse Martin L. Gomez

[email protected] Aurora Flight Sciences Corporation

9950 Wakeman Drive

Manassas, VA

(703) 369-3633

Page 2: Aurora Flight Sciences Proprietary UAV Implementation of Software Reuse Martin L. Gomez mgomez@aurora.aero Aurora Flight Sciences Corporation 9950 Wakeman

2Aurora Flight Sciences Proprietary

Program Name

Overview

Why software reuse?

How we did it

What it cost us

How we benefit

Page 3: Aurora Flight Sciences Proprietary UAV Implementation of Software Reuse Martin L. Gomez mgomez@aurora.aero Aurora Flight Sciences Corporation 9950 Wakeman

3Aurora Flight Sciences Proprietary

Program Name

Why Reuse?

The traditional answer: lower the DOLLAR cost of software development

Other reasons: More test opportunities means less risk of a crash Lower the opportunity costs…nobody has enough

software engineers Faster turnaround time

Page 4: Aurora Flight Sciences Proprietary UAV Implementation of Software Reuse Martin L. Gomez mgomez@aurora.aero Aurora Flight Sciences Corporation 9950 Wakeman

4Aurora Flight Sciences Proprietary

Program Name

Why Reuse (2)

Aurora never had more than 6 or so software engineers at a time

The first time we had to develop two UAVs at the same time, we looked for ways to do it more efficiently

Over the years, this infrastructure was used to control Theseus, a 140’, 7000 lbs twin-engine HALE AU-009, a 8’, 140 lbs jet UCAV prototype Perseus B, a 70’, 2000 lbs single-engine HALE Chiron, a Cessna 337 converted to a UAV testbed A hardware-in-the-loop simulator A ground control station

Page 5: Aurora Flight Sciences Proprietary UAV Implementation of Software Reuse Martin L. Gomez mgomez@aurora.aero Aurora Flight Sciences Corporation 9950 Wakeman

5Aurora Flight Sciences Proprietary

Program Name

How We Did It

All UAVs have some common core of functionality Uplink: turn buttons in GCS into actions on the A/V Downlink: turn numbers in A/V into displays in GCS Lost uplink handling Autonavigation: follow a route through space Autopilot: wiggle the control surfaces in response to

sensors Turn things on or off in response to commands or

automatically

Page 6: Aurora Flight Sciences Proprietary UAV Implementation of Software Reuse Martin L. Gomez mgomez@aurora.aero Aurora Flight Sciences Corporation 9950 Wakeman

6Aurora Flight Sciences Proprietary

Program Name

How We Did It (2)

With our traditional approach, achieving that functionality took ~10 staff-months per UAV

It consisted largely of software “wiring”, e.g. Read airspeed (say, an A/D reading): $3EA Convert binary to floating point engineering value: 23.2

m/s Send it to the downlink (again turned into an integer) Send it to the autopilot (as floating point) Convert back to FP Send it to displays Archive it

Page 7: Aurora Flight Sciences Proprietary UAV Implementation of Software Reuse Martin L. Gomez mgomez@aurora.aero Aurora Flight Sciences Corporation 9950 Wakeman

7Aurora Flight Sciences Proprietary

Program Name

How We Did It (3)

The functionality was abstracted into a few primitives (common to all UAVs): Interprocess Communication and Synchronization Reading and writing I/O devices Parsing and generating telemetry frames Autonavigation

A few higher-level functions, slightly different for each UAV: Mapping autopilot outputs to control surfaces Lost uplink handling Autopilot control law infrastructure

…and the rest is UAV-specific

Page 8: Aurora Flight Sciences Proprietary UAV Implementation of Software Reuse Martin L. Gomez mgomez@aurora.aero Aurora Flight Sciences Corporation 9950 Wakeman

8Aurora Flight Sciences Proprietary

Program Name

How We Did It (4)

Hardware

A/D Reader

Device Driver

D/A Writer

Device Driver

Downlinkprocess

Device Driver

Uplink process

Device Driver

Autopilot

Sensor MgmtControl Mixing

Autonavigation

Lost Uplink

Page 9: Aurora Flight Sciences Proprietary UAV Implementation of Software Reuse Martin L. Gomez mgomez@aurora.aero Aurora Flight Sciences Corporation 9950 Wakeman

9Aurora Flight Sciences Proprietary

Program Name

How We Did It (5)

The key was open-ended IPC

We chose a RAM database to share signals between processes

Generic processes, like the A/D and D/A handlers, or the uplink/downlink processes, are personalized at startup

A big ROM’d file called “The Very Big List” (VBL) tells each processes what do to on this airplane

Each process scans the VBL when it boots

Page 10: Aurora Flight Sciences Proprietary UAV Implementation of Software Reuse Martin L. Gomez mgomez@aurora.aero Aurora Flight Sciences Corporation 9950 Wakeman

10Aurora Flight Sciences Proprietary

Program Name

Contents of VBL

Logical name of process

Signal name (“OilPressure”, “PitchRate”, etc.)

Voltage-to-physical units calibration

Does it get downlinked? In which frame? Field size, position, etc.

Thus, each process “knows” what it has to do in this specific instantiation

There may be many instantatiation of a process

Page 11: Aurora Flight Sciences Proprietary UAV Implementation of Software Reuse Martin L. Gomez mgomez@aurora.aero Aurora Flight Sciences Corporation 9950 Wakeman

11Aurora Flight Sciences Proprietary

Program Name

Autopilot and Control Mixing

Autopilots are pretty generic It’s the gains that vary dramatically from airplane to

airplane The structure is pretty simple:

Surface deflection = gaini * (valuei - commandi)

The gains are physically separate from the structure

The output of an autopilot is a “virtual control surface”

Mapping the virtual control surface to a real one is a UAV-specific job

Page 12: Aurora Flight Sciences Proprietary UAV Implementation of Software Reuse Martin L. Gomez mgomez@aurora.aero Aurora Flight Sciences Corporation 9950 Wakeman

12Aurora Flight Sciences Proprietary

Program Name

What It Cost Us

The cost to “genericize” our existing software was this: Two staff-months to design the architecture and plan the

project One consultant writing tools and database code for ~3

months One in-house software engineer for ~3 months adapting

existing code

Total of eight staff-months

Page 13: Aurora Flight Sciences Proprietary UAV Implementation of Software Reuse Martin L. Gomez mgomez@aurora.aero Aurora Flight Sciences Corporation 9950 Wakeman

13Aurora Flight Sciences Proprietary

Program Name

How We Benefit

Being able to get basic functionality up and running in a few days

Spending the time we save concentrating on the unique features of the UAV

Being able to do this in 4 months with two s/w engineers: