Back to Projects

rUNSWift Autonomous Behaviours

Decision-making system for 5× World Champion robot soccer team

PythonROS2C++Behaviour Trees

Demo coming soon

Overview

rUNSWift is UNSW's entry in the RoboCup Standard Platform League — one of the most prestigious international autonomous robotics competitions, with a 5× World Champion history. As Team Lead for Behaviours, I designed the high-level decision-making and tactical behaviour architecture that drives how robots perceive game situations, coordinate with teammates, and select actions in real time.

Architecture

Behaviour logic is implemented in Python on top of the ROS2 framework, which handles inter-process messaging between perception, localisation, locomotion, and strategy subsystems. The behaviour layer receives world model updates (ball position, teammate locations, game state) and outputs role assignments and action targets to the motion layer. Coordination across robots is achieved through shared game state broadcasted over the field network.

Key Challenges

  • Designing behaviours that are robust to noisy sensor data and localisation uncertainty
  • Coordinating multi-robot strategy without explicit real-time communication guarantees
  • Balancing reactive low-level behaviours with higher-level tactical decision-making
  • Iterating rapidly during competition under time pressure

What I Learned

  • Real-world robotics engineering under tight competition constraints
  • ROS2 architecture and distributed pub/sub messaging patterns
  • How to design behaviour trees that degrade gracefully under uncertainty
  • Leading a technical sub-team and communicating across disciplines (vision, localisation, motion)

Future Improvements

  • Implement machine learning for opponent behaviour prediction
  • Develop a simulation environment for rapid behaviour iteration
  • Add dynamic role switching based on game state classification
  • Integrate learned locomotion policies with tactical decision-making