Skip to content
This repository was archived by the owner on Oct 16, 2018. It is now read-only.

Project Roadmap

Davide Faconti edited this page Jul 5, 2018 · 2 revisions

Core C++ library

Link to repository.

The purpose of this library is to:

  • Provide a middleware independent way to create TreeNodes, in particular user defined Actions, Conditions and Decorators.
  • Provide a ready to use BR Executor that includes some extra features such as logging, profiling and file import/export.

The code has been merged with the Michele Colledanchise's one with 10 pull requests peer reviewed by Michele (about 100+ commits).

Current Status and roadmap

The code library already has these features implemented:

  • Main TreeNode abstract interface is currently stable and "unit tested".
  • All the main ControlNodes have been tested on real-world use cases.
  • NodeParameters added as main configuration mechanism.
  • Trees can be loaded at run-time using an XMl format. An allocated Tree can be exported to XML too.
  • A composable logger framework allows the monitoring/logging of the Tree execution.

TODO (version 2.0):

  • ParallelNode needs much more testing with real-world applications.
  • Blackboard needs to be integrated into the TreeNode and the NodeParameters.
  • Add Lua as supported mechanism to write simple TreeNodes.
  • Provide the ability to deploy user defined nodes as [Plugins + manifest].

GUI interface (Groot)

Link to repository.

Extensive refactoring of the code written before the beginning of the ITP. The current GUI allows:

  • An Editor Mode where TreeNodes can be "drag and dropped", connected, morphed and visually arranged in a either vertical or horizontal layout.
  • A real-time Monitor Mode that subscribes to one of the ZMQPublisher (one of the implemented loggers in the core library) to show the current status of the Tree.
  • An off-line Replay Mode similar to the Monitor one, but showing the transitions saved on a log file, instead of those published in real-time.

TODO (version 1.0):

  • The creation, from scratch, of a SubTree is not currently supported.
  • It must be decided how to expose the role of the Blackboard in the GUI.
  • Visualization of the XML representation in a separate window?
  • Add a compact representation of PreConditions/Decorators similar to Unreal Engine.

Overall Project

TODO:

  • Much work is needed in terms of documentation, tutorials, learning material.
  • The BT approach must be battle-tested in many scenarios to find weak points in the usability/workflow.

Clone this wiki locally