Introduction

Aseba

Aseba is an event-based architecture for distributed control of mobile robots. It targets integrated multi-processors robots or groups of single-microcontroller units, real or simulated. The core of Aseba is a lightweight virtual machine tiny enough to run even on microcontrollers. With Aseba, we program the robot low-level software in a user-friendly scripting language using a cosy integrated development environment.

asebaros

asebaros is a bridge between Aseba and ROS. It allows to load Aseba scripts, inspect the network structure, read and write variables, and send and receive events from ROS. It maps the Aseba named events to ROS topics in a dynamic way, when loading source code.

Installation

The following commands will fetch and compile the asebaros package. The latter will fetch all required dependencies automatically.

Usage

Node: asebaros

asebaros [options] [additional targets]
Options:
-l, --loop : makes the switch transmit messages back
to the sender, not only forward them
-p port : listens to incoming connections on
this port
-h, --help : shows this help
ROS_OPTIONS : see ROS documentation
Additional targets are any valid Dashel targets.

When started with no option, asebaros will listen to incoming Aseba connections and respond to ROS requests. You can specify additional Aseba targets that asebaros will try to connect on startup. Aseba targets follow the Dashel target naming scheme. For example, to connect Aseba to a serial port on a UNIX, setting hardware flow control and a speed of 921.6 kbps, write:

Developing for Aseba

Once the ethzasl_asebaros stack is compiled, you will find aseba/build/studio/asebastudio in this stack. asebastudio is the Integrated Development Environment that you will use to write programs for Aseba nodes. Inside studio, you can find help on the Aseba language from Help -> Language and on asebastudio itself from Help -> Studio.