In Robotics and Artificial intelligence fields one of the main addressed topics is the autonomous navigation of robots; this is the ability to reach a goal position without any human intervention. Usually, there are two main steps in autonomous navigation: a path planning step in which a global plan is generated for the robot, and an execution step in which the robot moves to the goal position following the global plan. Path planning is the search of the global plan (i.e., a path) that connects the initial position A to a final position B, while trajectory planning is a specific kind of path planning that construct trajectories followable in the time domain by the robot to go from a start configuration to a goal configuration. To ensure the correct navigation of the robot in an environment the plan has to be feasible by the robot, otherwise the execution phase could fail, even because of a robot collision with an obstacle. The goal of this thesis is the creation of a planner for an autonomous robotic wheelchair to be used in indoor environments. This planner has to ensure plans feasibility, providing search completeness and optimality, and offering a good user experience in terms of responsiveness and path smoothness. In our work we have improved the SBPL (Search Based Planning Library), a C++ library that implements some well known search-based algorithms to find an optimal path between two states into a graph, and used it in our planner. A set of minimal movements of the robot, called motion primitives, has to be used in search-based algorithms and so we developed some tools to generate such sets of primitives respecting the kinematic and dynamic constraints of the vehicle. Then we integrated our planner in the ROS Navigation Stack as plugin. ROS is a framework for robotic software development that provides a communication layer for robotic software packages. The Navigation Stack is a package that handles various aspects of the navigation phase and the robot components (e.g., lasers, sonar, etc.) interaction. Leveraging on ROS, we provided a set of benchmarking tools to be used in the evaluation and comparison of global planners for the ROS Navigation Stack.

Nel campo della Robotica e dell'Intelligenza Artificiale uno degli argomenti di maggiore interesse è quello della navigazione autonoma, ovvero la capacità del robot di muoversi al fine di raggiungere la posizione desiderata senza alcun intervento da parte dell'uomo. Solitamente nella navigazione autonoma si possono identificare due fasi principali: una fase di path planning in cui un piano globale viene generato, e una fase d'esecuzione in cui il robot si muove verso la posizione desiderata seguendo il piano globale. Il path planning consiste nella ricerca di un percorso che connetta la posizione iniziale A con la posizione finale B, mentre il trajectory planning è un tipo specifico di path planning in cui viene elaborata una traiettoria in funzione del tempo che porti il robot dalla configurazione iniziale a una certa configurazione finale. La corretta navigazione è subordinata alla presenza di un piano effettivamente eseguibile dal robot, altrimenti la fase di esecuzione potrebbe non essere portata a termine e in alcuni casi il robot potrebbe collidere con gli ostacoli. L'obiettivo di questa tesi è la creazione di un pianificatore per una carrozzina robotizzata autonoma dedicata a un utilizzo in ambienti indoor. Il pianificatore deve garantire la fattibilità dei piani generati, fornire una ricerca di soluzioni completa e ottimale, e offrire all'utente finale una buona esperienza d'uso in termini di tempi di reazione e comfort durante la navigazione. Nel nostro progetto abbiamo esteso SBPL (Search Based Planning Library), una libreria C++ che fornisce l'implementazione di vari algoritmi search-based per trovare il percorso ottimo tra due stati in un grafo, per poi usarla nel nostro pianificatore. Un insieme di movimenti base del robot, chiamati primitive di movimento, viene usato negli algoritmi search-based, quindi abbiamo sviluppato degli strumenti in grado di generare questi insiemi di primitive con differenti approcci, rispettando i vincoli cinematici e dinamici del veicolo. Abbiamo inoltre integrato il pianificatore come plugin nel ROS Navigation Stack. ROS è un framework per lo sviluppo di software dedicato ai robot che fornisce un'interfaccia di comunicazione tra i vari package di software per robot. Il Navigation Stack è un package di ROS che gestisce vari aspetti della navigazione del robot e l'interazione delle sue componenti. Basandosi su questo sono stati sviluppati degli strumenti di benchmarking per valutare e comparare le prestazioni dei pianificatori globali utilizzabili dal Navigation Stack di ROS.

DiffDrive : a global path planner for autonomous navigation of differential drive robots

RESSA, VITO
2014/2015

Abstract

In Robotics and Artificial intelligence fields one of the main addressed topics is the autonomous navigation of robots; this is the ability to reach a goal position without any human intervention. Usually, there are two main steps in autonomous navigation: a path planning step in which a global plan is generated for the robot, and an execution step in which the robot moves to the goal position following the global plan. Path planning is the search of the global plan (i.e., a path) that connects the initial position A to a final position B, while trajectory planning is a specific kind of path planning that construct trajectories followable in the time domain by the robot to go from a start configuration to a goal configuration. To ensure the correct navigation of the robot in an environment the plan has to be feasible by the robot, otherwise the execution phase could fail, even because of a robot collision with an obstacle. The goal of this thesis is the creation of a planner for an autonomous robotic wheelchair to be used in indoor environments. This planner has to ensure plans feasibility, providing search completeness and optimality, and offering a good user experience in terms of responsiveness and path smoothness. In our work we have improved the SBPL (Search Based Planning Library), a C++ library that implements some well known search-based algorithms to find an optimal path between two states into a graph, and used it in our planner. A set of minimal movements of the robot, called motion primitives, has to be used in search-based algorithms and so we developed some tools to generate such sets of primitives respecting the kinematic and dynamic constraints of the vehicle. Then we integrated our planner in the ROS Navigation Stack as plugin. ROS is a framework for robotic software development that provides a communication layer for robotic software packages. The Navigation Stack is a package that handles various aspects of the navigation phase and the robot components (e.g., lasers, sonar, etc.) interaction. Leveraging on ROS, we provided a set of benchmarking tools to be used in the evaluation and comparison of global planners for the ROS Navigation Stack.
BASCETTA, LUCA
ING - Scuola di Ingegneria Industriale e dell'Informazione
28-lug-2015
2014/2015
Nel campo della Robotica e dell'Intelligenza Artificiale uno degli argomenti di maggiore interesse è quello della navigazione autonoma, ovvero la capacità del robot di muoversi al fine di raggiungere la posizione desiderata senza alcun intervento da parte dell'uomo. Solitamente nella navigazione autonoma si possono identificare due fasi principali: una fase di path planning in cui un piano globale viene generato, e una fase d'esecuzione in cui il robot si muove verso la posizione desiderata seguendo il piano globale. Il path planning consiste nella ricerca di un percorso che connetta la posizione iniziale A con la posizione finale B, mentre il trajectory planning è un tipo specifico di path planning in cui viene elaborata una traiettoria in funzione del tempo che porti il robot dalla configurazione iniziale a una certa configurazione finale. La corretta navigazione è subordinata alla presenza di un piano effettivamente eseguibile dal robot, altrimenti la fase di esecuzione potrebbe non essere portata a termine e in alcuni casi il robot potrebbe collidere con gli ostacoli. L'obiettivo di questa tesi è la creazione di un pianificatore per una carrozzina robotizzata autonoma dedicata a un utilizzo in ambienti indoor. Il pianificatore deve garantire la fattibilità dei piani generati, fornire una ricerca di soluzioni completa e ottimale, e offrire all'utente finale una buona esperienza d'uso in termini di tempi di reazione e comfort durante la navigazione. Nel nostro progetto abbiamo esteso SBPL (Search Based Planning Library), una libreria C++ che fornisce l'implementazione di vari algoritmi search-based per trovare il percorso ottimo tra due stati in un grafo, per poi usarla nel nostro pianificatore. Un insieme di movimenti base del robot, chiamati primitive di movimento, viene usato negli algoritmi search-based, quindi abbiamo sviluppato degli strumenti in grado di generare questi insiemi di primitive con differenti approcci, rispettando i vincoli cinematici e dinamici del veicolo. Abbiamo inoltre integrato il pianificatore come plugin nel ROS Navigation Stack. ROS è un framework per lo sviluppo di software dedicato ai robot che fornisce un'interfaccia di comunicazione tra i vari package di software per robot. Il Navigation Stack è un package di ROS che gestisce vari aspetti della navigazione del robot e l'interazione delle sue componenti. Basandosi su questo sono stati sviluppati degli strumenti di benchmarking per valutare e comparare le prestazioni dei pianificatori globali utilizzabili dal Navigation Stack di ROS.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2015_07_Ressa.pdf

accessibile in internet solo dagli utenti autorizzati

Descrizione: Tesi completa
Dimensione 3.94 MB
Formato Adobe PDF
3.94 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/108724