The software system is divided into two main subsystems: Weeder and Navigator.
Weeder: The weeder subsystem identifies weeds in camera frames and uses the weeder arm to remove them. The weed_detector is part of the Phoenixbot Weed ID package and is responsible for sending real-life coordinates of weeds to the weeder arm. weeder_planner, joystick_teleop, and motor_controller are part of the Phoenixbot Weeding package and is responsible for moving the weeder arm to the correct coordinates and removing the weed.
Navigator: The navigator subsystem handles everything regarding the robot's movement. The amiga_ros2_control node is part of the Amiga Ros2 Control package and it communicates with the robot to set its velocity. The remaining nodes are all part of the Phoenixbot Navigation packages and is responsible for processes user input and sensor readings to determine which state the robot should be in.