Politecnico di Torino (logo)

Robotics and agriculture: design of the control system for an autonomous robot for grape harvesting.

Nicola Laviola

Robotics and agriculture: design of the control system for an autonomous robot for grape harvesting.

Rel. Marco Vacca, Massimo Ruo Roch. Politecnico di Torino, Corso di laurea magistrale in Mechatronic Engineering (Ingegneria Meccatronica), 2022


The scope of the thesis is to develop an autonomous robotic arm for grape harvesting. The robotic arm must have the ability to reach a grape detected in the robot workspace, catch it and, in the end, release the grape at a collecting point after a cutting operation. Moreover, the robot must be able to iterate this process continuously. Firstly, to control the robot's movements, a motion system design is performed. The robotic arm's degrees of freedom are given by three stepper motors, with the addition of another one for the end-effector movement. The management of the motors' motion is accomplished through motor drivers which are equipped with a microprocessor. This is in communication with the driver registers used for setting in a user-defined way several motor parameters (such as the stepping mode, the maximum and minimum speeds, the acceleration and deceleration, or the driving current) and for the realization of several motion commands (such as the motor movement of a certain number of steps, the rotation of the motor with a defined speed, or the stopping mode). The four drivers are connected in a daisy chain configuration with a master board through the Serial Peripheral Interface (SPI) communication protocol. The master board contains a programmable microprocessor used for the elaboration of the robot control algorithm. The master board and the motor drivers used for the implementation are respectively the VirtLab designed at the Polytechnic University of Turin and the EVLPOWERSTEP01 produced by STMicroelectronics. At the beginning of the control design, an interface is created to let the master board and the drivers communicate with each other: in this way, the master board can command the motor driver to perform a suitable motor action according to the control algorithm and, on the other hand, to read some useful motor parameters from the drivers' registers. Then, a program is created for the development of an algorithm for robot positioning. The robot is also equipped with a webcam connected to a computer, the Raspberry Pi, for recognizing and mapping in the visual plane the grapes through Artificial Intelligence (AI). The Raspberry Pi is moreover connected with another board, the STM32NUCLEO-F401RE combined with a sensor shield, the VL6180X expansion board, in charge of measuring the distance in the perpendicular direction to the visual plane. The Raspberry Pi transmits the information of the target location via the Universal Serial Bus (USB) protocol to the VirtLab, which elaborates this information controlling the robot's movement. The communication between the Raspberry Pi and the VirtLab, the data elaboration, and the consequent robot positioning are realized using the FreeRTOS real-time operating system: in this way, closed-loop control is implemented to guide the robot positioning. In the end, several threads are developed to simulate a state machine with the capability to perform the harvest of grapes task in a continuous way. The tests executed during the complete duration of the thesis demonstrate great accuracy in the robot positioning and good speed of execution. Nevertheless, due to the robot’s structure, the working space covered by the robot’s movement is very limited.

Relators: Marco Vacca, Massimo Ruo Roch
Academic year: 2022/23
Publication type: Electronic
Number of Pages: 109
Additional Information: Tesi secretata. Fulltext non presente
Corso di laurea: Corso di laurea magistrale in Mechatronic Engineering (Ingegneria Meccatronica)
Classe di laurea: New organization > Master science > LM-25 - AUTOMATION ENGINEERING
Aziende collaboratrici: UNSPECIFIED
URI: http://webthesis.biblio.polito.it/id/eprint/25429
Modify record (reserved for operators) Modify record (reserved for operators)