Martin Peniak, Anthony Morse and Angelo Cangelosi
Aquila 2.0
Software Architecture for Cognitive Robotics
Application Code
+
GPU CPU
Use GPU to Parallelise
Compute-Intensive Functions
Rest of Sequential
CPU Code
Heterogeneous co...
Heterogeneous computing
in cognitive robotics
Heterogeneous software architecture for the development of
modules loosely coupled to their graphical user interfaces
Prov...
Developed in C++ and CUDA
Cross-platform
Linux
OSX
Windows
Dependencies
Qt
YARP
CUDA
What is Aquila?
YARP
messages
YARP Interface
Interface.cpp
GPU
Kernels
kernels.cu
Main Thread
moduleName.cpp
GPUCPU
YARP Interface
moduleN...
Classes
Visualtisation of image data (e.g from iCub)
2D and 3D plots
Node graph
Libraries
liqaquila-nnet
Self-organising m...
Existing Aquila Ecosystem
SOM
Self-organising Map
ERA
Epigenetic Robotics Architecture
Tracker
Object tracking
MTRNN
Multi...
i3
i5
i7
CPUGPU
Thank
You
Upcoming SlideShare
Loading in …5
×

What is Aquila Software Architecture for Cognitive Robotics?

1,230 views

Published on

Aquila 2.0, an open-source cross-platform software architecture for cognitive robotics that makes use of independent heterogeneous CPU-GPU modules with loosely coupled dynamically generated graphical user interfaces.

Published in: Technology, Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,230
On SlideShare
0
From Embeds
0
Number of Embeds
30
Actions
Shares
0
Downloads
11
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

What is Aquila Software Architecture for Cognitive Robotics?

  1. 1. Martin Peniak, Anthony Morse and Angelo Cangelosi Aquila 2.0 Software Architecture for Cognitive Robotics
  2. 2. Application Code + GPU CPU Use GPU to Parallelise Compute-Intensive Functions Rest of Sequential CPU Code Heterogeneous computing Host Device
  3. 3. Heterogeneous computing in cognitive robotics
  4. 4. Heterogeneous software architecture for the development of modules loosely coupled to their graphical user interfaces Provides simple and user friendly GUI client Distribute, control and visualise existing modules Generate new modules Monitor connected server Tools Modules Run heterogeneous CPU-GPU code doing the actual work What is Aquila?
  5. 5. Developed in C++ and CUDA Cross-platform Linux OSX Windows Dependencies Qt YARP CUDA What is Aquila?
  6. 6. YARP messages YARP Interface Interface.cpp GPU Kernels kernels.cu Main Thread moduleName.cpp GPUCPU YARP Interface moduleNameInterface.cpp Module Settings GUI Implementation moduleNameSettings.cpp Module GUI Implementation modulename.cpp Module GUI Design moduleName.ui Module Settings GUI Design moduleNameSettings.ui Tab 1 Name: moduleName Instance: instanceID Server: serverID Tab 2 Tab N AquilaGUIAquilaModuleGUIinTab1AquilaModule YARP messages YARP messages Othermodules
  7. 7. Classes Visualtisation of image data (e.g from iCub) 2D and 3D plots Node graph Libraries liqaquila-nnet Self-organising maps Echo-state networks Multiple time-scales recurrent neural network libaquila-image Segmentation and object tracking libaquila-utility GPU handling, maths, message passing libaquila-icub iCub motor control (currently implements head-eye movement to pixel position) Existing Aquila Ecosystem
  8. 8. Existing Aquila Ecosystem SOM Self-organising Map ERA Epigenetic Robotics Architecture Tracker Object tracking MTRNN Multiple Time-scales Recurrent Neural Network 0.0 20.0 40.0 60.0 264 1032 2056 4104 Speed-up Neurons MTRNN Benchmark Example 2xGTX580(P2P) vs 8 core Intel Xeon ESN Echo State Networks
  9. 9. i3 i5 i7 CPUGPU Thank You

×