sea-bass/turtlebot3_behavior_demos

Example repository for autonomous behaviors using TurtleBot robots and behavior trees, as well as Docker workflows in ROS based projects.

What it solves

This project provides a set of demonstrations for implementing autonomous robot behaviors using behavior trees. It specifically solves the problem of coordinating complex tasks—such as navigating to multiple locations to find a specific colored object—for simulated TurtleBot3 and TurtleBot 4 robots.

How it works

The project uses behavior trees to manage the robot's decision-making process. It implements these trees in two different ways:

  • Python: Utilizing the py_trees library.
  • C++: Utilizing the BehaviorTree.CPP library.

To detect objects, the system uses simple thresholding in the HSV color space. The entire environment is simulated using Gazebo, ROS 2 Jazzy, and Ubuntu 24.04, with Docker Compose used to simplify the setup and deployment of the simulation and behavior nodes.

Who it’s for

This is primarily for robotics developers and students who want to learn how to implement behavior trees for autonomous navigation and object detection in a ROS 2 environment.

Highlights

  • Dual Implementation: Provides examples in both Python and C++.
  • Visualization Support: Integrates with py_trees_ros_viewer and Groot2 for real-time behavior tree visualization.
  • Containerized Workflow: Uses Docker Compose to provide a consistent development environment and ROS 2 workspace.
  • Hardware Compatibility: Supports both TurtleBot3 and TurtleBot 4 simulations.

Related

  • Project
  • Project
  • Project
  • Project
  • Project