caatingarobotics
February 11, 2026 · View on GitHub
ROS 2 workspace for precision agriculture robotics, combining simulation, navigation, computer vision inference, and field traceability analytics.
Project Pitch
This project addresses a practical agriculture challenge: inspect large crop areas, detect infestation signals, and support targeted intervention with fewer inputs.
The solution integrates:
- a ROS 2 simulation stack for robot operation and mission flow,
- a YOLO-based vision pipeline for on-board detection,
- analytics and traceability outputs to support agronomic decisions.
Architecture Overview
The workspace is organized in two main ROS 2 packages:
agro_robot_sim: robot model, Gazebo worlds, SLAM/navigation launch flows, mission scripts.caatinga_vision: camera source, YOLO inference, infestation analytics, photo capture pipeline.
High-level data flow:
- Sensor/camera data is published.
- Vision nodes run inference and publish detections.
- Analytics nodes aggregate detections and generate status/recommendations.
- Navigation and mission layers consume maps/localization for route execution.
Tech Stack
- ROS 2 Humble
- Gazebo + Nav2 + SLAM Toolbox
- YOLO (Ultralytics), OpenCV,
cv_bridge - Python (
rclpy) and CMake (ament_cmake) - PyQt5 operational panel tooling
Repository Structure
.
├── datasets/
│ └── agro_v1/
│ └── data.yaml
├── src/
│ ├── agro_robot_sim/
│ │ ├── launch/
│ │ ├── config/
│ │ ├── maps/
│ │ ├── urdf/
│ │ └── worlds/
│ └── caatinga_vision/
│ ├── caatinga_vision/
│ ├── launch/
│ ├── config/
│ └── models/
└── README.md
Quick Start
1. Prerequisites
- Ubuntu 22.04
- ROS 2 Humble
colconrosdep
2. Build
cd /home/joaodemoura/agro_robot_ws
source /opt/ros/humble/setup.bash
rosdep update
rosdep install --from-paths src --ignore-src -r -y
colcon build --symlink-install
source install/setup.bash
3. Run agro_robot_sim (simulation and navigation)
Start full farm simulation/navigation launch:
source /opt/ros/humble/setup.bash
source /home/joaodemoura/agro_robot_ws/install/setup.bash
ros2 launch agro_robot_sim fazenda_completa.launch.py
Optional SLAM mode:
ros2 launch agro_robot_sim fazenda_completa.launch.py slam:=True
4. Run caatinga_vision (inference and analytics)
Start the IA pipeline:
source /opt/ros/humble/setup.bash
source /home/joaodemoura/agro_robot_ws/install/setup.bash
ros2 launch caatinga_vision ia_pipeline.launch.py model_path:=~/models/best.pt
Photo capture pipeline:
ros2 launch caatinga_vision photo_capture.launch.py session_id:=sess_demo
Required External Assets
This repository intentionally excludes large artifacts from version control.
You must provide locally:
- Dataset metadata path:
datasets/agro_v1/data.yaml(already included) - Dataset images/labels in local storage when training
- YOLO model weights, for example:
~/models/best.pt
Demo and Results
Use this section to attach media when showcasing the project:
- Simulation + navigation demo GIF placeholder:
docs/media/sim_navigation.gif - Vision inference overlay screenshot placeholder:
docs/media/inference_overlay.png - Analytics/traceability output screenshot placeholder:
docs/media/traceability_status.png
How to generate media:
- Run simulation and IA pipelines together.
- Record screen using OBS or GNOME Screen Recorder.
- Export short GIFs/screenshots and save them under
docs/media/. - Update this README with embedded markdown images.
Limitations
- Full field validation with physical hardware is not part of this repository.
- Runtime quality depends on camera conditions and YOLO model quality.
- Some launch files are tailored to ROS 2 Humble and current package versions.
Next Steps
- Add repeatable benchmark scenarios for navigation and detection quality.
- Add automated unit/integration tests for critical nodes.
- Publish curated demo media and performance metrics per release.
Contact
- GitHub:
joaodemouragy-hash - Email:
joaodemouragy@gmail.com