Aseba is a set of tools which allow novices to program robots easily and efficiently. For these reasons, Aseba is well-suited for robotic education and research. Aseba is an open-source software created by Dr. Stéphane Magnenat with contributions from the community.
More Specifically, Aseba is an event-based architecture for real-time distributed control of mobile robots.It targets integrated multi-processor robots or groups of single-processor units, real or simulated.
The core of Aseba is a lightweight virtual machine tiny enough to run even on microcontrollers. With Aseba, we program robots in a user-friendly programming language using a cozy integrated development environment.
In Aseba, there can be several robots or a robot with multiple processors running in the same network. This network can be software (TCP), hardware (CAN), or a mix of both. Each processor within a network runs a small virtual machine and is called a node.
Each node has its own tab in Aseba Studio, allowing you to program them independently, but with possible interactions through events.
Aseba is an event-based architecture, which means that events trigger code execution asynchronously. Events have an identifier and optional payload data.
Aseba nodes can exchange events, and these can be of two types.
- The events that Aseba nodes exchange within an Aseba network are called global events.
- The events that are internal to a node are called local events. An example of a local event is the one emitted by a sensor that provides updated data.
If the code for receiving an event is defined, then the corresponding block of code is executed when the event is received. Code can also emit events, which can trigger the execution of code on another node or enable communication with an external program.
To start the execution of related code upon receiving new events, programs must not block and thus must not contain any infinite loops.
For instance, in the context of robotics, where a traditional robot control program would do some processing inside an infinite loop, an Aseba program would just do the processing inside a sensor-related event.