Unitree A1 · Oct 2024 - Apr 2025

Multi-Robot Task Planning

ROSPythonBehavior TreesgRPCCartographer
Project Overview

Overview & Mission Context

This project focuses on automating civil infrastructure inspections using a Multi-Robot System (MRS) to overcome the limitations of single-robot deployments, such as limited battery life, restricted range, and the risk of complete mission failure. The primary objective was to develop a modular and scalable Multi-Robot Task Planning (MRTP) framework using Behavior Trees (BTs) to coordinate multiple quadruped robots ("IDOGs") autonomously in a shared environment.

System Architecture & Methodology

To manage complex and concurrent inspection missions, the system architecture transitioned from traditional Finite State Machines (FSMs), which scale poorly, to a flexible Behavior Tree architecture.

  • Skill Subtrees: Core robot capabilities, including autonomous navigation and visual inspection, were designed as modular, reusable BT subtrees.
  • Task Assignment GUI: A custom graphical user interface was developed using PyQt5 to allow operators to easily assign specific tasks to individual robots dynamically.
  • Shared Localization: Implemented a centralized communication system using a gRPC protocol (Cartographer gRPC) to enable real-time localization and shared mapping across the multi-robot fleet.

ROS Integration & Validation

The software stack heavily utilized ROS and the ros_bt_py library for execution, which was then validated on physical hardware.

  • Namespace Isolation: Achieved scalable and isolated task execution by running independent BTs within specific ROS namespaces for each robot.
  • Programmatic Execution: Engineered custom Python functions that utilized ROS services to programmatically load, add, and execute BT nodes and subtrees based on instructions from the GUI.
  • Real-World Testing: Successfully validated the framework using Unitree IDOG quadruped robots in an indoor office environment, proving the system's ability to navigate and perform visual inspections, such as detecting electrical sockets.

Challenges & Implementation

Deploying the multi-robot system on physical hardware revealed several technical hurdles that required targeted engineering solutions.

  • Network Latency: Running multi-robot localization via Cartographer gRPC introduced latency and timing conflicts, which negatively impacted the effectiveness of real-time collision avoidance between the robots.
  • State Management Limits: Because the ros_bt_py library lacked a native "blackboard" feature for sharing variables between nodes, we had to engineer a workaround utilizing the ROS parameter server.
  • Topic Collisions: Running multiple autonomous agents simultaneously required incredibly strict namespace management to prevent ROS topic collisions.