The Framework

Eve

Background

Eve is the direct descendent of MAGNA. Up to a point, I realised MAGNA was nothing else than a network of coworking nodes, although its specific application derived its implementation as Ground (Ground Station) and Aerial (drones) Segments. Those nodes can work alone or accomplish cooperative missions by a decentralised, dynamic hierarchy of commands. Besides, each node can support any kind of internal or external algorithm computation as well as interactions with resources out of the MAGNA network, such as sensors or autopilots. That was the main philosophy because I wanted MAGNA to support the development of any kind of Artificial General Intelligence application. However, it was constrained to the ROS environment and the specific development of changes required for the projects I employed it for.

Eve was born inheriting the core philosophy and purpose of MAGNA and, which is more important, applying all the knowledge acquired on its development, which in cases led me to undertake very different decisions.

Description

Eve is a decentralised network of open-purpose nodes written in Python. To manage the capabilities available in its machine, each node may contain as many resources as required. Those resources can be dedicated to any purpose, such as computation or the control of software or hardware.
Those resources interact with other resources of the same or other nodes inside the framework of an activity: a management tool that contextualizes the sequence of decentralised actions accomplished in different points of the network. The development of the activity is dynamically decided by the resources that participate in it.

The software architecture designed for this purpose is based on threads. Each resource may have a constant thread for the management of its associated external resource. Another thread is activated every time an activity requires it to make computation and lasts until the activity action is accomplished. Furthermore, one last thread is required in the communications layer to constantly listen for incoming connections. Currently, communications only support TCP/IP sockets but the structure is designed to be transparent to the means of transport, so more means are planned to be added in near future.

Activity example

RaspBerry node has an audio input resource which receives a voice command and transforms it into text. That raw text is sent to a manager resource in PC node which decides to send the raw message to an NLP resource in the same node for decodification, which sends the meaningful information back to the manager resource. Now, the manager maps that information into any use of the capabilities of the Eve network, such as updating a parameter of a Reinforcement Learning agent. Hence, a command with that update is sent to the RL agent resource of the Robot node.