CCRL, Collaborative Controls and Robotics LabMaryland Robotics Center

Case study

Multi-Robot Coordination Research

Undergraduate Research Assistant · CCRL, University of Maryland · Aug 2025 to Present

  • ROS2
  • Gazebo
  • Python
  • Decentralized Control
  • Task Allocation
  • Robot Hardware Debugging
  • Data Logging and Analysis
Six small robots spread across a table displaying a colored coverage heatmap of the surveyed area
Six robots sweeping a shared field, each guided by its own sense of where attention is needed

The problem

The lab works on multi-robot swarms that split jobs among themselves rather than relying on one central computer to assign everything. This piece is a testbed of six Khepera IV differential-drive robots that have to cover and survey a bounded arena as a team.

At the start, the testbed was not producing usable data. Wi-Fi dropouts between the robots and the base station and flaky wheel-encoder readings kept killing runs partway through, so nothing was comparable to anything else.

What I did

Rebuilt and rewired two of the six robots and traced the dropouts to a shared network channel and loose motor connectors. That stopped the mid-trial crashes and got the testbed to the point where a run would finish.

With the hardware stable, implemented the decentralized task-allocation nodes in Gazebo. Instead of a central planner handing out assignments, each robot bids on the nearest unclaimed survey cell using a simple auction rule and commits locally.

Also wrote a Python pipeline that logs task-completion time, total distance traveled, and area coverage percentage to CSV on every trial, so runs could be compared directly instead of timed by hand.

Result

Across 40 simulated trials with six robots on the coverage task, the decentralized auction approach finished 15% faster than the centralized baseline the lab had been using. The logging pipeline replaced a manual stopwatch-and-spreadsheet step and made all 40 trials repeatable and directly comparable. It is now the default logging setup for that testbed.