Only released in EOL distros:
Package Summary
Bridge to access an ASEBA network from ROS. For more information about aseba, see: http://mobots.epfl.ch/aseba.html
- Author: Stéphane Magnenat
- License: BSD
- Repository: ethz-asl
- Source: git https://github.com/ethz-asl/ros-aseba.git
Package Summary
Bridge to access an Aseba network from ROS. For more information about Aseba, see: http://aseba.wikidot.com
- Author: Stéphane Magnenat
- License: BSD
- Source: git https://github.com/ethz-asl/ros-aseba.git (branch: master)
Package Summary
Bridge to access an Aseba network from ROS. For more information about Aseba, see: http://aseba.wikidot.com
- Author: Stéphane Magnenat
- License: BSD
- Source: git https://github.com/ethz-asl/ros-aseba.git (branch: master)
Package Summary
Bridge to access an Aseba network from ROS. For more information about Aseba, see: http://aseba.wikidot.com
- Author: Stéphane Magnenat
- License: BSD
- Source: git https://github.com/ethz-asl/ros-aseba.git (branch: master)
Contents
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.
You can learn more about Aseba in the following papers:
For multi-microcontrollers robots IEEE Tr. Mech. 2010 paper
For collective robotics SIMPAR 2008 paper
In educational robots FNG 2008 paper
You can also access documentation at aseba's homepage.
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.
# Fetch ethzasl_aseba stack git clone --recursive git://github.com/ethz-asl/ros-aseba.git ethzasl_aseba # Update ROS_PACKAGE_PATH (if necessary) export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/ethzasl_aseba # Install dependencies rosdep install asebaros # Build rosmake
Usage
Node: asebaros
The bridge with Aseba is called 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:
asebaros "ser:device=/dev/ttyUSB0;fc=hard;baud=921600"
Subscribed Topics
~/anonymous_events (asebaros/AsebaAnonymousEvent)- Topic on which events without a name are received and forwarded to Aseba. When sending Aseba events through ROS, use a source value of 0.
- Topic on which events named NAME are received and forwarded to Aseba. When sending Aseba events through ROS, use a source value of 0.
Published Topics
~/anonymous_events (asebaros/AsebaAnonymousEvent)- Topic on which Aseba events without a name are published.
- Topic on which Aseba events named NAME are published.
Services
load_script (asebaros/LoadScripts)- Loads an Aseba script from an .aesl file. It creates the topics corresponding to the named events in the script, under the namespaces ~/events/NAME where NAME is the name of each topic.
- Get the names of the nodes.
- Get the identifier of a node given by its name.
- Get the name of a node given by its identifier.
- Get the names of the variables of a given node.
- Set the value of a variable of a given node.
- Get the value of a variable of a given node.
- Get the identifier of an event given by its name.
- Get the name of an event given by its identifier.
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.