AgroBot: a robot arm for greenhouse work
A 4-axis arm on a rail trolley that harvests strawberries, transplants seedlings, inspects plants and pulls weeds.
- When
- Since 2020
- Origin
- M.Sc. thesis, extended to a full ROS 2 stack
- Built with
- ROS 2 Humble
- Gazebo Fortress
- ros2_control
- C++17
- Python
- RGB-D perception
- RRT planning
AgroBot is a 4-axis arm on a greenhouse rail trolley, with a single-jaw gripper and an RGB-D camera. It detects crops, decides which ones to handle, plans collision-free motions and executes them. The same software runs in Gazebo and on the real robot.
The arm and its analysis come from my master’s thesis and the journal paper that followed. The repository covers the whole chain: kinematic analysis, a physically realistic model built from the CAD of the prototype, ROS 2 control and perception, four applications, and a hardware driver with firmware and a commissioning guide.
Four tasks, scored against ground truth
| Task | The problem it addresses | Result in simulation |
|---|---|---|
| Strawberry harvesting | Labour shortage for selective picking | 12 of 12 ripe fruit picked, no unripe fruit |
| Plant inspection | Manual yield counting | 12/12 ripe and 10/10 unripe fruit counted |
| Seedling transplanting | Repetitive nursery handwork | 8 of 8 seedlings planted |
| Precision weeding | Herbicide-free weed control | 8 of 8 weeds pulled, lettuce protected |

How it works
The robot surveys the row, then handles each crop in three steps. It moves the trolley so the crop lands where the arm reaches it well. It looks again to refine the crop’s position. Then it approaches along a straight line, grips and places. Crops blocked by a neighbour are retried after the rest of the row is done.
Limits
Crop detection uses colour thresholds tuned on simulated crops, so real fields need a trained detector. Grasping in simulation is emulated with joints. The hardware driver has been tested against its emulator; commissioning on the physical robot follows the guide in the repository.

