Releases: rapyuta-robotics/alica
v0.9.3
Release Notes
Changes
Data flow
The engine now supports a data flow model between plans(behaviours) through blackboards (key-value store) & key mapping. Plans(behaviours) can define their own blackboard or inherit one from their parent, setup input, output or internal keys on the blackboard & specify key mappings from parent to child (input mapping) or child to parent (output mapping) via the designer
Dynamic creation of plans/behaviours
Plan(behaviour) runtime objects are now dynamically created & destroyed on the fly just before(after) the initialization(termination) of the plan(behaviour) instead of being kept in memory throughout the lifetime of the engine improving thread safety & code simplification
Integral agent id
The identifier class used to represent the agent id is replaced by a simple integral (int) agent id significantly reducing code bloat in both the engine & applications using the engine
Disable failure handling
The failure handing rules like plan (behaviour) redo, abort etc. can be disabled through a configuration parameter
Single repository
Unlike previous releases which involved 3 repositories, the current release is done from a single repository since the supplementary & essentials repository are merged into the engine repository
Release v0.9.2
Release Notes
Version v0.9.2 of the ALICA Framework is an orchestrated release that includes three repositories:
- alica (this repo)
- alica-essentials v0.9.2
- alica-supplementary v0.9.2
Changes
Web Based Plan Designer
The engine now supports the web based plan designer (https://github.com/rapyuta-robotics/alica-supplementary/tree/v0.9.2/alica_designer_runtime) which completely replaces the desktop based plan designer & includes considerable improvements with inbuilt debugging support.
Plan Init/Run/Terminate
Plans can now have init/run/terminate functions just like behaviours.
Plan/Behaviour Thread Pool
The plans/behaviours are now executed by a thread pool of configurable size instead of having 1 thread per behaviour.
Ordered Execution of Plans/Behaviours
The engine now enforces a strict order for the execution of init/run/terminate functions of the behaviours & plans. When the engine transitions from one state to the other it is now guaranteed that the plans/behaviours in the outgoing state are terminated before the plans/behaviours in the incoming state are initialized. Further, the parent plan is initialized before its children & terminated after.
Tracing
The engine supports tracing the execution of the plans & behaviours via a pluggable interface & a default open tracing compliant jaeger tracing implementation is provided in alica-supplementary.
Bug-Fixes
- There was a possibility that a behaviour could access a deleted plan context which is now fixed.
Release v0.9.1
Release Notes
Version v0.9.1 of the ALICA Framework is an orchestrated release that includes four repositories:
- alica (this repo)
- alica-essentials v0.9.1
- alica-supplementary v0.9.1
- alica-plan-designer-fx v0.1.1.1315
The most recent paper about the ALICA Framwork is the following. Please cite it when you are utilising the ALICA Framework in your work or compare your work with it.
Opfer, S., Jakob, S., Jahl, A., & Geihs, K. (2019, September). ALICA 2.0 - Domain-Independent Teamwork. In Joint German/Austrian Conference on Artificial Intelligence (Künstliche Intelligenz) (pp. 264-272). Springer, Cham.
Changes
ALICA Program Serialisation Format
This release includes a major revamp of the data format for serialised ALICA programs. While in Version v0.9.0, the ALICA Framework utilised an XML format generated by an antiquated desktop version of the Plan Designer. In Version v0.9.1, the ALICA Framework utilises JSON for serialised ALICA programs and includes a revamped version of the Plan Designer.
Behaviour Execution/Thread Synchronisation
Another major change is the introduction of general configurations. Before, configurations where only available for behaviours. Now, plans and plantypes can be configured as well.
Configuring the ALICA Engine
In Version v0.9.0 the ALICA Engine depended on an antiquated and custom configuration-management library called SystemConfig. This was removed from the engine and replaced by a simple, yet more effective and versatile YAML-based configuration handling that is now part of the engine itself. Therefore, we could drop the dependency towards SystemConfig completely, which is one less Singleton we have in our framework.
Bug-Fixes
-
In Version v0.9.0 there were no guarantees that the Init, Run, and Terminate functions of a behaviour are called in the mentioned order, in case the same behaviour is stopped and started repeatedly. This has been fixed by improving the thread synchronisation and execution.
-
The desktop version of the Plan Designer had a different quantifier type than the engine was expecting. This is adapted to be consistent as well.