Agriculture Robot: RFGYC 2025-2026
Autonomous agricultural robot built for the Robotics for Good Youth Challenge 2025-2026. ROS2 Jazzy codebase with computer vision for crop detection, autonomous navigation, and precision manipulation. Designed for cultivation, irrigation, harvesting, and sorting missions on a competition field.
- Client
- Robotics for Good Youth Challenge
- Year
- 2025-2026
ROS2 Jazzy · Python 3 · OpenCV · YOLO · Gazebo · Ubuntu 24.04 · C++
GitHub Repository01 Product overview
What the product does
A ROS2 Jazzy Jalisco codebase implementing an autonomous agricultural robot for the RFGYC 2025-2026 Agriculture Edition. The robot is designed to perform four mission types on a 2362mm x 1143mm competition field: cultivation, irrigation, harvesting, and sorting. The system uses computer vision powered by OpenCV and YOLO for crop and plot detection, with a state machine for match-level mission control. The codebase runs on a HP ZBook 15 G6 (64GB RAM, Quadro T2000 GPU) and is architected for both Gazebo simulation and deployment on physical robotic hardware.
02 Problem and context
What it needed to solve
The competition robot must complete cultivation, irrigation, harvesting, and sorting missions under time pressure without manual intervention. Each mission needs its own sensing and actuation pipeline, while one state machine coordinates the match. Individual subsystems also need to be testable in simulation.
03 My contribution
What I worked on
- Designed the ROS2 package structure with clear separation between sensing, navigation, manipulation, mission control, and simulation
- Implemented the computer vision pipeline using OpenCV for fruit and plot detection with YOLO for inference on the Quadro T2000 GPU
- Built the mission control state machine for match-level sequencing of all four mission types
- Developed Gazebo simulation world for testing autonomous behaviors without physical hardware
- Authored hardware deployment guides for cameras, ultrasonic sensors, encoders, and actuator systems
05 Engineering and outcomes
Implementation details
System
- ROS2 Jazzy Jalisco as the middleware layer for node communication, message passing, and lifecycle management
- Five ROS2 packages: sensing (computer vision), navigation (odometry and motion), manipulation (seed planting and picking), mission_control (state machine), simulation (Gazebo world)
- OpenCV and YOLO for real-time fruit detection and plot identification, leveraging the Quadro T2000 GPU for inference
- State machine in mission_control coordinating the full match sequence across cultivation, irrigation, harvesting, and sorting phases
- Gazebo simulation environment for development and testing without physical hardware dependency
- Designed for adaptability: real hardware deployment via cameras, ultrasonic sensors, encoders, and mechanical actuators
Verified results
- Full Mission CoverageState machine implementing cultivation, irrigation, harvesting, and sorting with autonomous sequencing.
- GPU-Accelerated VisionYOLO inference on the Quadro T2000 GPU enables real-time crop detection at the speed required for competition operation.
- Simulation-First ArchitectureFull Gazebo simulation environment allowing each subsystem to be developed, tested, and debugged independently before integration on physical hardware.
Lessons
- ROS2 package boundaries matter enormously for debuggability. Keeping sensing, navigation, and manipulation as independent packages means any one can be run in isolation against a bag file or simulator without pulling in the whole system.
- Computer vision performance on robotics hardware is highly environment-dependent. Models that work perfectly in controlled lab lighting can fail in competition lighting conditions. Test in the actual environment as early as possible.
- State machine design for robotics requires explicit handling of failure modes. A robot that freezes when a mission step fails is worse than one that gracefully transitions to a safe fallback state.