Only released in EOL distros:
Package Summary
Alica
- Author: Maintained by hendrik
- License: BSD
- Source: git https://code.google.com/p/cn-alica-ros-pkg/ (branch: release_electric)
Package Summary
Alica
- Author: Maintained by hendrik
- License: BSD
- Source: git https://code.google.com/p/cn-alica-ros-pkg/ (branch: release_fuerte)
Documentation
Alica is a framework for modelling and controlling the behaviour of multiple robots. The stack consists of:
An Eclipse based graphical UI for designing behaviour, the Planmodeller.
An execution layer running on each individual robot, the AlicaEngine, written in C# and running under mono.
A simple graphical monitoring tool, the AlicaClient.
An example and tutorial package, alica_turtle, which interacts with turtlesim.
Alica is a completely distributed framework featuring:
- Hierarchies of finite-state machines,
- Parallel execution of multiple state-machines per robot,
- Task allocation based on utility functions, which weigh different options against each other,
- Non-linear continuous constraint satisfaction and optimisation problems can be used to concisely formulate complex spatial interactions.
- An anytime solver for these problems which is able to coordinate solutions within the team and utilises the distributed computing power of the team for solving.
For communication between the robots we suggest a multi-master solution to avoid central components. The udp_proxy_generator constitutes a simple solution.
Alica is used and actively developed by the RoboCup MSL team Carpe Noctem. A comprehensive publication will be available soon.
Setup
Environment Variable
Alica assumes the following environment variables to be set:
ES_ROOT defines the root directory for all needed files. It could, for instance, point to your ros workspace. It should at least hold the subdirectories etc for configuration files according to Castor and a library folder, e.g., lib, which is part of the MONO_PATH.
MONO_PATH should include the library path within ES_ROOT (see roscs).
- ROBOT can optionally be set to define the local name of a robot. If it is not set, the system's hostname is used.
Configuration Files
The runtime uses two configuration files. Examples can be found in AlicaEngine/configuration. These are meant to be placed in ES_ROOT/etc.
- Alica.conf holds runtime parameters, such as communication frequency, solving time for the anytime solver, etc.
- Globals.conf defines the possible team composition, as well as a preferred role composition.
Usage
A tutorial package will be available soon.
Since Alica is a domain independent framework, it does not make any assumptions about your system or your representation of the environment. In order to employ Alica run robots in a concrete scenario the following components need to be developed:
Plans -- These are containers for team behaviours, and are designed using the Planmodeller
Roles -- These are used to map robots onto tasks within plans. Also designed within the Planmodeller
Behaviours -- These are atomic action programs, such as DriveTo(x) or GrabCup. Each behaviour inherits from BasicBehaviour. More on this can be found in the tutorial.
- Expressions -- Expressions are code fragments that guard transitions, enable plans or constraint variables. The Planmodeller generates corresponding code skeleton, which must be filled with content.
- A Worldmodel. While this is optional, it is typically a good idea to define a globally accessible representation of the environment.
A main program that instantiates an AlicaEngine.
Report a Bug
<<TracLink(REPO COMPONENT)>>