In this thesis work an anthropomorphic 3D printed robotic arm is designed, a software is generated for providing the virtual model of the robot, tools for motion planning are used in order to design a pick and place task and a dynamic simulation environment is prepared. This product is addressed to non-industrial applications where limited payload and low precision are sufficient. Some field of application can be the educational one for learning robotics on the field, interactive display applications such as in museums and in shop windows. Hence an affordable solution was designed. Moreover, this product can be possibly brought into the "collaborative" robotics field, unlocking a deeper interaction between man and machine remaining in the non-industrial field. In fact, real Cobots have very high price tags, and this preclude their use in didactic field. Some characteristics for the robot have been enumerated and a review of existing commercial products and open source projects is done. Pre-sizing of the robot is done considering former tentative and related work. The starting point is the aesthetics of a previous design of a robotic arm, a strain wave gear (also known as harmonic drive) speed reducer and already provided stepper motors from the Italian firm R.T.A. Robot links length, maximum speed and acceleration are set in this phase. A simplified 2D model of the arm was considered. Afterwards the actual design of the robot is done considering a 3D printing-oriented mindset. This allowed to design features that cannot be realized with traditional manufacturing processes. Some considerations on the available tools and 3D printing are done. A preliminary theoretical assessment of the robot limits is done to have a starting point for the actual testing phase. To actuate the robot some electronic devices are studied. A micro-controller is required to move the robot motors and hence programming of the micro-controller is needed. Arduino MEGA is used as micro-controller and Arduino IDE coding development environment is used. An initial low level control of the arm is assessed implementing a mock PID controller running on the Arduino MEGA itself. For the high level control with ROS the Arduino firmware is developed. Then, an overview of different programming approaches is performed so the reader is able to understand why an offline approach, using ROS as framework to generate the software, can be a good choice to perform the high level control. Consequently, the focus is on the generation of the virtual model of the robot. Two models have been realized: one which represents the real robot and the other with the addition of a gripper. Since an end effector was not developed in the actual robot, an OnRobot gripper is added to the virtual model to program with more completeness. Motion planning is done with the MoveIt! package and, in particular, a task of pick and place is planned to move a box using the model with the gripper. Furthermore, it is also described how to generate the files to launch Gazebo (dynamic simulator) and how to control the multibody model using ROS control. Also an integration of Gazebo into MoveIt! is performed which allow to plan a movement in MoveIt! and directly make the multibody model execute it. So, a task can be tested in the dynamic simulator to verify that it is feasible before making the real robot execute it. Finally, a critical evaluation of the proposed solution is done, together with the identification of some possible future related work.

In questa tesi è stato sviluppato un braccio robotico a sei assi che viene costruito mediante stampa 3D a filamento. Inoltre, si espone come generare un software per fornire il modello virtuale del manipolatore, come pianificare i movimenti in modo tale da progettare una task di pick and place e come preparare un ambiente di simulazione dinamica. Questo prodotto è destinato ad applicazioni non industrial dove sono sufficienti payload limitati e bassa precisione. Alcuni contesti in cui questo robot può trovare utilizzo sono l'istruzione, per poter insegnare ed apprendere la robotica sul campo, oppure in musei per mostre interattive e nei negozi per esporre dinamicamente in vetrina dei prodotti. Perciò, è stato necessario sviluppare una soluzione relativamente economica. Questo braccio robotico può essere con alcuni accorgimenti convertito in un robot "collaborativo", per una più profonda interazione tra l'operatore e la macchina, sempre rimanendo nel campo non industriale, dove esistono i veri Cobot che però, dato l'elevato costo, precludono in molti casi il loro utilizzo in ambiente didattico. Le caratteristiche desiderabili per questo robot sono state delineante e una panoramica su prodotti commerciali e progetti open source già esistenti è stata fatta per inquadrare meglio il robot. Il predimensionamento del robot è stato condotto tenendo in considerazione le precedenti esperienze e progetti correlati. Il punto di partenza è l'estetica di un progetto precedente di un robot a sei assi, un riduttore armonico e i motori passo-passo gentilmente forniti dall'impresa italiana R.T.A. Le lunghezze dei bracci del robot, velocità e accelerazione massime sono state definite. In questa fase è stato utilizzato un modello bidimensionale semplificato del braccio. Successivamente le parti del robot sono stare modellate al CAD tenendo un approccio orientato alla stampa 3D. In questo modo sono state realizzate geometrie che le convenzionali tecniche di produzione non sono in grado di realizzare. Sono state fatte alcune considerazioni sugli strumenti a disposizione e sulla stampa 3D in generale. Una verifica teorica dei limiti del braccio robotico è stata fatta come punto di partenza per la fase sperimentale di test del robot. L'azionamento del robot richiede l'utilizzo di alcuni componenti elettronici, tra cui un microcontrollore che richiede di essere programmato; dunque, del codice è stato scritto per permettere al microcontrollore di azionare le schede dei motori passo-passo. Il microcontrollore scelto è un Arduino MEGA che è stato programmato usando l'ambiente di sviluppo Arduino IDE. Inizialmente, un controllo di basso livello è stato sviluppato implementando una sorta di controllo di tipo PID. Successivamente, è stato sviluppato il firmware per l'intereazione con ROS e da caricare su Arduino. In seguito, è presente una panoramica dei vari approcci di programmazione. Il lettore è così in grado di capire perchè un approccio offline, utilizzando ROS come struttura per generare il software, può essere una buona scelta per eseguire il controllo ad alto livello. Di conseguenza, viene generato il modello virtuale del robot. Sono stati realizzati due modelli virtuali: uno rappresenta il robot fisico mentre l'altro ha in aggiunta un gripper. Siccome un gripper non è stato sviluppato sul robot fisico, un gripper di OnRobot è stato aggiunto al modello virtuale per programmare in modo più completo. La pianificazione dei movimenti è realizzata con il pacchetto MoveIt!, in particolare una task di pick and place viene pianificata per muovere una scatola utillizando il modello dotato di gripper. Inoltre, viene descritto come generare i file per eseguire Gazebo (simulatore dinamo) e come controllare il modello multibody usando ROS control. Viene effettuata anche l'integrazione di Gazebo in MoveIt! che permette di pianificare movimenti in MoveIt! e farli eseguire direttamente dal modello multibody. Così, una task può essere testata nel simulatore dinamico per verificare che sia realizzabile prima di farla eseguire dal robot fisico. In conclusione, sono state fatte alcune considerazioni critiche sulla soluzione ottenuta. Alcuni possibili aspetti da sviluppare in futuro sono stati individuati.

Realization and control of a 3D printed anthropomorphic robotic arm

Berton, Luca;Ferrari, Lorenzo
2020/2021

Abstract

In this thesis work an anthropomorphic 3D printed robotic arm is designed, a software is generated for providing the virtual model of the robot, tools for motion planning are used in order to design a pick and place task and a dynamic simulation environment is prepared. This product is addressed to non-industrial applications where limited payload and low precision are sufficient. Some field of application can be the educational one for learning robotics on the field, interactive display applications such as in museums and in shop windows. Hence an affordable solution was designed. Moreover, this product can be possibly brought into the "collaborative" robotics field, unlocking a deeper interaction between man and machine remaining in the non-industrial field. In fact, real Cobots have very high price tags, and this preclude their use in didactic field. Some characteristics for the robot have been enumerated and a review of existing commercial products and open source projects is done. Pre-sizing of the robot is done considering former tentative and related work. The starting point is the aesthetics of a previous design of a robotic arm, a strain wave gear (also known as harmonic drive) speed reducer and already provided stepper motors from the Italian firm R.T.A. Robot links length, maximum speed and acceleration are set in this phase. A simplified 2D model of the arm was considered. Afterwards the actual design of the robot is done considering a 3D printing-oriented mindset. This allowed to design features that cannot be realized with traditional manufacturing processes. Some considerations on the available tools and 3D printing are done. A preliminary theoretical assessment of the robot limits is done to have a starting point for the actual testing phase. To actuate the robot some electronic devices are studied. A micro-controller is required to move the robot motors and hence programming of the micro-controller is needed. Arduino MEGA is used as micro-controller and Arduino IDE coding development environment is used. An initial low level control of the arm is assessed implementing a mock PID controller running on the Arduino MEGA itself. For the high level control with ROS the Arduino firmware is developed. Then, an overview of different programming approaches is performed so the reader is able to understand why an offline approach, using ROS as framework to generate the software, can be a good choice to perform the high level control. Consequently, the focus is on the generation of the virtual model of the robot. Two models have been realized: one which represents the real robot and the other with the addition of a gripper. Since an end effector was not developed in the actual robot, an OnRobot gripper is added to the virtual model to program with more completeness. Motion planning is done with the MoveIt! package and, in particular, a task of pick and place is planned to move a box using the model with the gripper. Furthermore, it is also described how to generate the files to launch Gazebo (dynamic simulator) and how to control the multibody model using ROS control. Also an integration of Gazebo into MoveIt! is performed which allow to plan a movement in MoveIt! and directly make the multibody model execute it. So, a task can be tested in the dynamic simulator to verify that it is feasible before making the real robot execute it. Finally, a critical evaluation of the proposed solution is done, together with the identification of some possible future related work.
CARNEVALE, MARCO
INSERO, FEDERICO
ING - Scuola di Ingegneria Industriale e dell'Informazione
21-dic-2021
2020/2021
In questa tesi è stato sviluppato un braccio robotico a sei assi che viene costruito mediante stampa 3D a filamento. Inoltre, si espone come generare un software per fornire il modello virtuale del manipolatore, come pianificare i movimenti in modo tale da progettare una task di pick and place e come preparare un ambiente di simulazione dinamica. Questo prodotto è destinato ad applicazioni non industrial dove sono sufficienti payload limitati e bassa precisione. Alcuni contesti in cui questo robot può trovare utilizzo sono l'istruzione, per poter insegnare ed apprendere la robotica sul campo, oppure in musei per mostre interattive e nei negozi per esporre dinamicamente in vetrina dei prodotti. Perciò, è stato necessario sviluppare una soluzione relativamente economica. Questo braccio robotico può essere con alcuni accorgimenti convertito in un robot "collaborativo", per una più profonda interazione tra l'operatore e la macchina, sempre rimanendo nel campo non industriale, dove esistono i veri Cobot che però, dato l'elevato costo, precludono in molti casi il loro utilizzo in ambiente didattico. Le caratteristiche desiderabili per questo robot sono state delineante e una panoramica su prodotti commerciali e progetti open source già esistenti è stata fatta per inquadrare meglio il robot. Il predimensionamento del robot è stato condotto tenendo in considerazione le precedenti esperienze e progetti correlati. Il punto di partenza è l'estetica di un progetto precedente di un robot a sei assi, un riduttore armonico e i motori passo-passo gentilmente forniti dall'impresa italiana R.T.A. Le lunghezze dei bracci del robot, velocità e accelerazione massime sono state definite. In questa fase è stato utilizzato un modello bidimensionale semplificato del braccio. Successivamente le parti del robot sono stare modellate al CAD tenendo un approccio orientato alla stampa 3D. In questo modo sono state realizzate geometrie che le convenzionali tecniche di produzione non sono in grado di realizzare. Sono state fatte alcune considerazioni sugli strumenti a disposizione e sulla stampa 3D in generale. Una verifica teorica dei limiti del braccio robotico è stata fatta come punto di partenza per la fase sperimentale di test del robot. L'azionamento del robot richiede l'utilizzo di alcuni componenti elettronici, tra cui un microcontrollore che richiede di essere programmato; dunque, del codice è stato scritto per permettere al microcontrollore di azionare le schede dei motori passo-passo. Il microcontrollore scelto è un Arduino MEGA che è stato programmato usando l'ambiente di sviluppo Arduino IDE. Inizialmente, un controllo di basso livello è stato sviluppato implementando una sorta di controllo di tipo PID. Successivamente, è stato sviluppato il firmware per l'intereazione con ROS e da caricare su Arduino. In seguito, è presente una panoramica dei vari approcci di programmazione. Il lettore è così in grado di capire perchè un approccio offline, utilizzando ROS come struttura per generare il software, può essere una buona scelta per eseguire il controllo ad alto livello. Di conseguenza, viene generato il modello virtuale del robot. Sono stati realizzati due modelli virtuali: uno rappresenta il robot fisico mentre l'altro ha in aggiunta un gripper. Siccome un gripper non è stato sviluppato sul robot fisico, un gripper di OnRobot è stato aggiunto al modello virtuale per programmare in modo più completo. La pianificazione dei movimenti è realizzata con il pacchetto MoveIt!, in particolare una task di pick and place viene pianificata per muovere una scatola utillizando il modello dotato di gripper. Inoltre, viene descritto come generare i file per eseguire Gazebo (simulatore dinamo) e come controllare il modello multibody usando ROS control. Viene effettuata anche l'integrazione di Gazebo in MoveIt! che permette di pianificare movimenti in MoveIt! e farli eseguire direttamente dal modello multibody. Così, una task può essere testata nel simulatore dinamico per verificare che sia realizzabile prima di farla eseguire dal robot fisico. In conclusione, sono state fatte alcune considerazioni critiche sulla soluzione ottenuta. Alcuni possibili aspetti da sviluppare in futuro sono stati individuati.
File allegati
File Dimensione Formato  
Thesis.pdf

Open Access dal 29/11/2022

Dimensione 20.23 MB
Formato Adobe PDF
20.23 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/183259