Chicory root pick and place



Rijkzwaan is a company that develops new varieties of vegetables and is a supplier of seeds. The head office is located at De Lier, but because of their local approach there are 30 subsidiaries in other countries. Continuous innovation is important for the company. Therefor they are trying to improve the current processes to make the products they create even better.


Rijkzwaan asked us to create a demo module which can demonstrate the possibilities of robots and machine vision to inspect the harvest. The goal of the machine is to determine the volume, the pointiness and weight of a chicory root. It exports this data to a CSV file and cuts out and saves separate pictures of the roots.


Supply system
To supply the chicory roots under the vision system and to the robot, we use a conveyor belt. This conveyor is connected to a Siemens drive and encoder. This combination controls the speed, direction and the timing for starting and stopping the conveyer. With this hardware it’s possible to move the chicory roots with a high accuracy to the robot so that the robot can pick them up and run its program.

To pick up the chicory roots we use a Robotiq gripper. This gripper allows the system to pick up the roots with a smooth motion. The compatibility of the gripper allows us to adjust the gripping force so the roots aren’t damaged in the process.

Example of processing a chicory root
For machine vision, we used the software HALCON. Vision is an important part of the project. With machine vision, we are able to get the location of the chicory roots on the conveyer. Beside the location we can extract other information about the roots such as the length, pointiness and area. With this information, we can get an approximation of the volume of the roots The visual information and the weight of the roots, we can categorize the roots in the 4 different categories. We also make individual pictures of the roots and export these for later inspection.


The PLC (programmable logic controller) is the heart of the installation. It makes sure all the elements of the machine do their thing. The main goal is that the object gets picked up from the conveyor, weighed on a scale and then are place on the right tray. To make the PLC do this ,there are seven steps in de PLC program:

  • trigger the vision system to take a photo
  • get the number of objects found in the picture
  • if there are no objects found move the conveyor
  • place the object on the scale
  • determine the weight
  • get the tray number and move the object to the right tray

All steps are checked on error and if one occurs the program is paused and an error is shown on the panel. The complete system, including communication, can be simulated.

HMIExample of status on HMI
The customer can control the machine with the HMI (human machine interface). The customer can see via the status screen in which step the PLC is, find the most import information the PLC got from the vision system, start/pause/stop the program and see if there has an error occurred in the PLC. The operator can change all settings, run the start-up cycle and manually control the complete machine. The language of the HMI can be changed between English and Dutch.

The robot is mounted in a steel cage with plastic windows on the side for safety. It hangs upside down so we can use it for picking up and placing objects somewhere else. The robot has a dedicated program running for communicating with the PLC. The main communication consists of sending move commands and checking the location of the robot. It is also possible to change the speed of the robot.

For weighing the object, we made our own “Ethernet scale”. This is a normal scale which we have changed so it can be read out via Ethernet. First, we changed the build-in controller to a HX711 chip. This chip enabled us to read out the load cells from the scale. The reading is done by an Arduino. The Arduino send this value to the Raspberry Pi via a USB serial connection if the Raspberry Pi request it. On the Raspberry Pi runs a TCP server on which the PLC or the vision system can connect and request the value.

Vision system
For the vision system, we created a TCP interface in HALCON on which the PLC can connect. The vison system makes all the import decisions. It tells the PLC where the robot must go to get the object from the conveyor, it starts weighing and tells which tray the object has to be transferred. After getting all the information, it makes sure the data is stored in a CSV file

Data aggregation
The goal is to improve chicory quality by cross breeding the best individual chicories. However, the process of defining what the “best chicory” is, is a complex question. It is determined by variables such as weight, size, density, pointiness and many more. It also depends on the market they will be used for. To be able to make the right conclusions on different batches of chicories, they need to be visually inspected. Therefore, our system will create a database of pictures of chicories that have been singulated through HALCON vision software. After that, the statistics of all processed chicories will be visualized in the data aggregator. The input of this aggregator is formed by exporting vision and weighing data to a csv-file, which is linked to the data aggregator. This way the data aggregator has a live feed output.

Example of data aggrigator

The machine works as expected. The chicory roots are lay down on a conveyor. The machine vision will detect the location of the root and calculates the volume and pointiness. The robot transfers the root to a scale to determine the weight. After that the root is places in one of the 4 trays: 10% most pointy, 10% most heavy, 10% lowest density and the rest. The 10% is based on a predefined value which is determined before.

Final machine