At the University of Southampton we design, build, and fly high end unmanned aerial vehicles (UAVs) for civilian usage. For this we are developing DECODE (Decision Environment for COmplex Design Evaluation), a toolset that integrates the different codes needed to successfully design and build an efficient UAV: costing code, fluid simulation codes, operational simulation model, geometry engine, etc. The goal is to have a fully automated end-2-end UAV design system that can be used to rapidly design custom built UAVs that can be quickly and cheaply manufactured using techniques like 3D printing. Our main case study is the use of UAVs for search and rescue (to replace/augment expensive helicopters) and for this we are working together with the Solent coast guard. We are also exploring other case studies with the Met Office, BBC, and others.
13. The DECODE Project Looking at how complex aerospace systems are designed In particular, the decision making process related to the design How are decisions made? Who makes them? How final are the? How arbitrary are they? How important are they? Are they recorded? …
14. Design decisions Important to rationalize decisions Motivate them during design review meetings However, Design of something is never “finished” Time pressure leads to arbitrary detail decisions No immediate payoff for recording rationale
17. DECODE System A computer system to help understand the impact of a decision “Is it worth it?”
18. Case Study: UAVs UAV: Unmanned Aerial Vehicles Mostly for military use but many civilian applications Mapping/surveying, atmospheric measurements, search and rescue, wildlife management, …
19. UAVs: Why? Complex enough to be taken seriously ‘Simple’ enough to be tackled within a university research project We can go through the full lifecycle Design -> build -> fly -> crash! Necessary to appreciate the impact and constraints of decisions
28. Search and Resuce The RLNI has to come look for you Helicopter costs £21 million and £6000 per hour Lifeboat costs £150,000 and £8000 per hour
29. Search and Rescue: UAVs Design low cost UAVs for search and rescue UAV costs < £10,000, and< £100 per hour Deploy to RNLI stations Reduce load on helicopters and lifeboats
30. Designing a S&R UAV What does a Search and Resuce UAV look like? How big, how heavy, how fast, … Decisions guided by an operational simulation
31. DECODE System How many more lives can we save by reducing the wing span by 15% ? “Is it worth it?”
33. System Requirements Support wide range of analysis codes Aerodynamics, structures, weights, costing, opsim, … Very slow (CFD) -> very fast (costing) Flexibility to add new solvers/codes Provenance Multi-client Cluster/cloud capable Make different MDO models possible (sync & async)
34. System components Lightweight component for each building block Written in Python (using Kombu) Any client with a an AMQP implementation will work Minimal (shared) state Each component ‘talks’ protobuf over AMQP Input queue: shared with peers (failover) Direct queue: exclusive Respects reply-to header
35. Messaging Multiple control flows between components Farmer-worker, sync MDO, async MDO RabbitMQ as message broker Persistent messages/queues Acknowledgements Pubsub Virtual hosts Clustering
36.
37. Control Flow API Controller Balancer Analysis Manager API Message Broker Registry CFD Costing Value Opsim Balancing code
38. Message based system Strengths: De-coupled & asynchronous Flexible, easy to add new solver/components Fault tolerant Horizontally scalable Platform/language independent Weaknesses: Enforcing synchronous, sequential behaviour Detecting the fact that nobody replies vs “fire-and-forget” Recalling requests Shared state implies race conditions Broker model vs P2P model
39. Deployment Decode VM API Controller Balancer Analysis Manager API Message Broker Spitfire Jeroens PC Registry Marcs PC Costing FP Balancing Code CFD Opsim Value Iridis
40. Deployment Very easy to add/remove components at any time System should cope Side effect: difficult to force a job to run on your machine Proof of principle: PC joins the Decode system on screensaver start
41. Clients Client requirements: Able to send a protobuf message over AMQP Covers C++, Java, C#, Python, Ruby Clients API client (Python, Java, C#) Matlab client (uses Java API) Excel addin (uses C# API)
44. More Python: ANSYS Python also used in ANSYS workbench Automate geometry, meshing, CFD analysis
45. More Python: Sizing Balancing component implemented in Excel Well known, flexible, easy to work with Not a concept design tool, tied to Windows, a pain to distribute Use Python to compile a spreadsheet to standalone Python code
46. More Python: Sizing Exploring the sizing equations with NetworkX, Gephi & Neo4J
47. Open issues Deal with requests that never return & query cancelling Add web UI to components (Flask?) Deployment container? Analysis cache Explore possibilities of sizing graph Data management layer Archiving result data in digital repo (e.g., Fedora Commons) Link to manufacturing
48. Building UAVs Focus on rapid manufacturing, 3D printing cheap, fast complexity comes for ‘free’ cool
51. Project status Halfway through building the system & starting design on second DECODE UAV (20 kg) Special course on Unmanned Systems starting this year Students will use & extend the system Interest from the BBC, Police, Met Office, and US Navy