Precision Agriculture · Mission Planning
UC Merced Robotics Lab
From a sentence like "Sample leaves from tree number 5" to a robot autonomously approaching the canopy and grasping a leaf for hyperspectral sensing.
The mission is planned once, off-board. After that the robot needs no network connection.
The ROS2 Humble stack keeps mission orchestration separate from hardware execution. Compute-heavy perception runs in its own nodes so it can't starve navigation or manipulation.
A field-deployable mobile manipulator for close-range leaf sensing. All autonomy runs on board.
Compute: NVIDIA Jetson AGX Orin (64 GB, ROS2 Humble). A separate NUC hosts the LiDAR sensor tower.
The mission gives an abstract plan, the orchard layer grounds it in the field, and perception handles the final approach.
Earlier versions passed the LLM a full list of GPS points. That doesn't scale and can overflow the context window. Now the user provides one polygon and the grid size (rows × columns). The system then interpolates every tree position and its adjacent row waypoints.
The LLM can then plan with relative references like "the third tree down the row", and the robot resolves them into concrete waypoints on board.
Experiments used hmin = 1.0 m, hmax = 1.5 m, and d = 1 m. The goal comes from the canopy as the LiDAR sees it, so tree and robot GPS estimates don't have to be exact.
We ran lab trials, then field trials in commercial pistachio and citrus orchards.
Approach from multiple robot orientations
| Orientation | Trials | Recoveries | Success | Lighting |
|---|---|---|---|---|
| 0° | 5 | 2/2 | 5/5 | Sunny |
| +90° | 5 | 2/2 | 5/5 | |
| −90° | 5 | 1/1 | 5/5 | |
| 180° | 5 | 3/3 | 5/5 | |
| +90° | 5 | 0/0 | 5/5 | Cloudy |
| −90° | 5 | 0/0 | 5/5 | |
| Overall | 30 | 8/8 | 30/30 |
Prompt: "Sample leaves from tree number X"
| Tree # | Trials | Recoveries | Success | Lighting |
|---|---|---|---|---|
| 2 | 2 | 2/2 | 2/2 | Dusk |
| 3 | 1 | 0/1 | 0/1 | |
| 5 | 2 | 0/0 | 2/2 | |
| 7 | 1 | 0/0 | 1/1 | |
| 11 | 2 | 2/2 | 2/2 | |
| Overall | 8 | 4/5 | 7/8 |
Prompt: "Sample leaves from tree numbers X, Y, and/or Z"
| Tree # | Trials | Recoveries | Success | Lighting |
|---|---|---|---|---|
| 11, 13 | 1 | 0/0 | 1/1 | Sunny |
| 11, 14 | 1 | 0/0 | 1/1 | |
| 11, 53 | 1 | 0/0 | 1/1 | |
| 11, 13, 14 | 1 | 0/0 | 1/1 | |
| 11, 13, 29 | 1 | 0/0 | 1/1 | |
| Pistachio* | 5 | 0/0 | 5/5 | |
| 4, 9 | 5 | 2/4 | 3/5 | Dawn |
| 4, 9 | 5 | 0/5 | 0/5 | Sunny |
| Citrus | 10 | 2/9 | 3/10 |
* Pistachio trees had no leaves during winter testing, so success means successful navigation and approach only. A recovery counts a BT retry sequence that eventually succeeded. Success means the hyperspectral sensor was triggered through motion planning and the mission completed.
When a leaf was grasped, the gripper-mounted spectrometer recorded VIS–NIR signatures usable for water stress, nutrient, disease, and pest assessment.
The sensing payload is decoupled from navigation and approach, so the platform is sensor-agnostic. The payload can be swapped for thermal or chemical sensing without touching the BT or mission planner.
What broke in the field, and what we'd change.
The third-party leaf segmentation struggled in direct sun. Six of the seven multi-tree citrus failures were lighting-related. The module sits behind a pose interface, so it can be swapped out.
Protruding branches ("suckers") can dominate the closest-point estimate. The robot then stops safely but out of arm reach. Sparse canopies can also invite Nav2 to cut between trees.
Wind, small curved citrus leaves, and dense clusters lead to partial or multi-leaf grasps. These degrade how consistent the spectra are.