# Konzepte

Nachstehende Konzepte sind hilfreich, um Aseba besser zu verstehen.

# Knoten

In Aseba können mehrere Roboter oder ein einzelner Roboter mit mehreren Prozessoren in demselben Netzwerk laufen. Dieses Netzwerk kann in Software (TCP), Hardware (CAN), oder durch einen Mix aus Software und Hardware aufgebaut sein. Jeder Prozessor im Netzwerk stellt einen sogenannten "Knoten" dar; auf jedem solchen Knoten läuft eine kleine virtuelle Maschine. Jeder Knoten hat seinen eigenen Tab in Aseba Studio, welcher es erlaubt, die verschiedenen Knoten unabhängig voneinander zu programmieren. Interaktionen zwischen den einzelnen Knoten bleiben aber durch Ereignisse möglich.

# Ereignisse

Aseba ist eine ereignisgesteuerte Architektur. Das bedeutet, dass Programme durch Ereignisse ausgelöst werden und unregelmässig (asynchron) ablaufen. Ereignisse haben einen Bezeichner (Identifier) und optionale Nutzdaten. Es gibt 2 Arten von Ereignissen: Ereignisse, die Aseba-Knoten innerhalb eines Aseba-Netzwerkes austauschen, heissen "globale" Ereignisse. "Lokale" Ereignisse hingegen sind intern und werden im Innern eines einzelnen Knotens ausgetauscht. Ein Beispiel für ein lokales Ereignis ist ein Ereignis, das von einem Sensor ausgelöst wird, wenn neue Daten bereit stehen. Ist der Programmcode zum Empfangen von einem Ereignis einmal definiert, wird der entsprechende Block im Programmcode ausgeführt, sobald das Ereignis empfangen wurde. Programmcode kann auch mit dem Befehl "emit" Ereignisse erzeugen, welche dann ihrerseits zur Ausführung von Code auf anderen Knoten führen oder die Kommunikation mit einem externen Programm ermöglichen. Damit der Programmcode auch ausgeführt wird, sobald neue Ereignisse empfangen wurden, dürfen Skripte nicht blockieren und müssen daher frei von Endlosschleifen sein. Mit Bezug zu Anwendungen in der Robotik, wo herkömmliche Steuerungsprogramme von Robotern Prozesse in Endlosschleifen abarbeiten, führt ein Aseba-Skript dieselben Prozessschritte auf Grund von einem Sensor-basierten Ereignis aus.

# Wo erhält man sonst noch Informationen?

Diese Dokumenten sind empfehlenswert:

- Programmierumgebung Aseba Studio
- Programmiersprache Aseba
- Vorgegebene Funktionen