The scan sweeps a classifier beam up through the cluster. For each fruit it reads two cues a ripeness model actually uses β hue (green β red) and size β and turns them into a single ripeness score. Any fruit scoring at or above the threshold is queued for picking; the rest are left to keep ripening.
In selective mode the arm solves a two-link reach (shoulder + elbow, law of cosines) toward each queued fruit only, then bends its path upward and sideways around the nearest leaf so it never drags the gripper through foliage β a visible detour, not a straight line. Each fruit is placed gently in the bin.
In shaker mode there is no camera and no threshold check: the whole plant is violently shaken, so every fruit β ripe or not β is knocked loose at once, some are bruised on the way down, and whatever lands in the net counts as "collected", unsorted.
score = 0.7Β·hue_ripeness + 0.3Β·size_ripeness
pick if score β₯ threshold (selective only)
quality = ripe_collected / total_collected
- Ripeness threshold β how strict the classifier is before it commits the arm to a pick; raise it to leave borderline fruit on the plant longer.
- Selective arm β every reach is planned and obstacle-aware; unripe fruit and stems are never touched.
- Shaker β one blunt mechanical action, full yield fast, but no ripeness discrimination and some collateral damage.
Real-world relevance: this is exactly the trade-off precision-agriculture harvesting robots are built to fix β trading the shaker's raw throughput for the arm's selective, damage-free yield quality.