Broccoli Separating and Picking System

Students: Thijs Bril, Sander van Gemmert, Stijn Paardekooper, Martijn Peterse (Fall 2017)

Project Description

The team - Stijn, Sander, Thijs, Martijn
The team – Stijn, Sander, Thijs, Martijn

Employees are currently separating and handpicking broccoli onto a conveyor. This cost valuable time and money. Therefore Lacquey asked us to create a system that can separate and pick up broccoli without any human interference with the broccoli. This system was required to use vision to detect broccoli and a robot to pick up a nd move the broccoli.

Separating / Singulation

When the broccoli arrives on the vibrating conveyor they can be entangled with other broccoli. This problem is tackled by a door that is opened and closed with a cylinder controller by the PLC. The door ensures that some of the broccoli makes a swift transfer to another lane of the vibrating conveyor. With this transfer broccoli will get untangled from each other.

Separation door and cylinder
Separation door and cylinder

After this part of the process the broccoli moves along the narrowing plates onto the conveyor belt. The conveyor belt is running at an high speed to create space be tween the broccoli for finishing the singulation.

All the components of the separating system are controlled by a PLC. An operator can use the HMI to turn the whole system or single components of the system on or off.

Conveyor and lightbox


Pick and place

After the entangled broccoli is separated it has to get picked up and moved to another position, in our case a crate and in to future probably a conveyor belt.  

When the broccoli arrives at the conveyor belt, it will move past a camera. The camera detects the broccoli and determines the position and the angle of the stomp. The camera will send this information to the robot. The robot will then move to the calculated new position of the moving broccoli, grab it, and move it away from the conveyor. There was no conveyor tracking available for the ABB deltarobot. So to calculate the position of the broccoli a program was written to calculate the new position of the moving broccoli.

Detected broccoli
Detected broccoli

Because of a lack of space and resources the gripper will place a broccoli into a box to collect it. This will in the factory probably be replaced with a conveyor. This will be a simple adjustment in the code and will not impact the rest of the program.

The gripper is made and provided by Lacquey. There have been made some slight adjustments to the gripper to improve the way the broccoli gets picked up. The adjustments increase the pick up rate and decrease the damage dealt to the broccoli.


The system meets the requirements of one broccoli per two seconds if the system is running smoothly. However the system still has some flaws, such as the heavy gripper limiting the robot speed and the lack of the build-in conveyor tracking. Our own conveyor tracking works, but it doesn’t always work correctly, so it still has some bugs in it.

The separating system works good, although sometimes an entangled broccoli gets through so the robot can’t pick it up. To follow our advice and implement a return flow system this problem is solved.

The setup
The setup