Skip to content

ras-ros2/ras_bt_framework

Repository files navigation

Open Source Behavior Tree Framework

Overview

Real Robot Trajectories

Real robots execute planned trajectories. While the robot itself doesn’t differentiate between types of motion, humans identify patterns in these trajectories, such as "approaching an object" or "rotating an object." These reusable motion patterns are defined in our framework as Primitives.

  • Primitive Example: MoveToPose, Rotate
  • Functionality: Each primitive generates a trajectory that the robot can directly execute. This is implemented using MoveIt.

Task Decomposition

Any task can be broken down into primitives connected in a sequence.

For example:

Task: Fill a beaker with liquid from a test tube
Primitives: MoveTo(TestTube) -> Grasp() -> MoveTo(Beaker) -> Rotate(TestTube)

This chain of primitives is called ModuleCollections in our framework. Behavior Trees (BT) handle the chaining of these primitives.

Developer Contributions

Developers can contribute by adding new primitives and modules through a defined process. Once primitives and modules are available, a Behavior Tree is generated using our utility program.

  1. Include Directory:

    • Primitives: Defines primitives as Behavior Tree nodes.
  2. RAS_BT_Framework: Core of the Behavior Tree generation utility.

    • Behavior: Contributors add modules and primitives here.
    • Managers: Handles the generation of the final XML file for the Behavior Tree.
  3. Scripts:

    • batman.py: Coordinates with BTExecutor.cpp to run behaviors built using BehaviorTreeGenerator.
    • TrajectoryRecordsService.py: Records trajectories generated by primitives for use on real robots.
  4. Src:

    • BTExecutor.cpp: Manages and executes Behavior Trees in a ROS 2 environment using the BehaviorTree.CPP library.
  5. XML Directory:

    • Stores generated Behavior Trees for simulation and real-world execution.

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages