Our current framework includes the Behavior Tree (BT) Executor and a system architecture builds on SmartMDSD. Environment and robot are simulated using Webots (https://github.com/cyberbotics/AROSYS).
The first step was to close a complete loop where the BT Executor
drives the course of action sending skills to the ComponentSkillInterface
on the SmartMDSD environment. The received skill
will be updated on the knowledge base (ComponentKB
), allowing the ComponentSequencer
to manage its execution. The skill_result
follows the reverse path, being noted in the ComponentKB
by the ComponentSequencer
and sent by the ComponentSkillInterface
, through a ZMQ server, to the BT Executor
.
The BT Executor
employs the version 3.x of the BT library (https://github.com/BehaviorTree/BehaviorTree.CPP). In this new version of the BT, the implementation follows the guidelines of Model Driven Development, separating the role of the Component Developer from the Behavior Designer. Thus, working as Behavior Designer, we do not need to read nor modify the source code of a given TreeNode.
This system is built with Components from the Servicerobotics-Ulm repository (https://github.com/Servicerobotics-Ulm/ComponentRepository) and the AROSYS ITP project (https://github.com/cyberbotics/AROSYS). It is based on the SystemTiagoNavigation
system, but incorporates significant changes for managing the skill within the architecture.
ComponentSkillInterface
: TheSkillExecutionTask.cc
module has been modified for capturing the skill from the ZMQ server and annotate it on theComponentKB
. After updating a skill, the component will poll theComponentKB
for obtaining the associated response (i.e.skill_result
).BehaviorNavigationScenario.smartTcl
: Minor changes for updating a NILskill
andskill_result
on theComponentKB
.startUp.smartTcl
: Relevant changes for polling theComponentKB
and capturing the new skills and manage them, writing on theComponentKB
the resultingskill_results
. Currently, only three skills are considered:ACTIVATELOCALIZATION
,APPROACHLOCATION
, andDEACTIVATELOCALIZATION
.
ComponentTCLSequencer
ComponentKB
SmartCdlServer
SmartMapperGridMap
SmartPlannerBreadthFirstSearch
SmartAmcl
ComponentWebots
ComponentWebotsLidar
ComponentWebotsTIAGo
ABR_test.xml
: Example of Behavior treeSystemTiagoNavigation.skills.json
: File with the whole collection of skills from theSystemTiagoNavigation
environment on SmartMDSD
Note : Remember that only three skills are currently managed!
mkdir build
cd build
cmake ..
make