polito.it
Politecnico di Torino (logo)

Autonomous charging system for a three-wheeled robot

Luca Romanello

Autonomous charging system for a three-wheeled robot.

Rel. Giuseppe Carlo Calafiore, Marina Mondin. Politecnico di Torino, Corso di laurea magistrale in Mechatronic Engineering (Ingegneria Meccatronica), 2020

[img]
Preview
PDF (Tesi_di_laurea) - Tesi
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (28MB) | Preview
Abstract:

This work is about the design, implementation and testing of an autonomous charging system for a three wheel drive service robot. The purpose is to find a way to autonomously drive the robot from a position close to the charging station towards the station itself. This was one subsection of an autonomous driving project from California State University, Los Angeles. At the beginning a research about the state of the art of this technology has been presented together with references to relative works and papers. The introduction also includes a comparison among the different charging systems employed for market and custom service robots and an overview of the different docking algorithm strategies. Then, in order to achieve a successful docking operation, it has been necessary to design the docking algorithm inspired by the state of the art and compatible for both the robot and the charging station. The algorithm takes advantage of a vision system for detecting and tracking an AR tag. The odometry information is also extracted to have a feedback of the robot pose. The development system used to test the algorithm has been the ROS/Linux framework. The first part of the work delves on the simulation stage conducted on Gazebo environment. The functionalities of the camera and the robot differential drive have been implemented in the simulation as part of the relevant elements of robot model. The camera topic is visualized on Rviz and the AR tag is tracked by the mean of a code reading ROS library. This library is capable to mark the tag and even to extract the pose from it. Then, the algorithm has been translated in C++ functions that communicate on ROS. The pose data coming from the tag are manipulated in order to extract distance, angle and orientation between the camera (robot) and the station (tag). Based on these dimensions, the algorithm provides command signals to the robot to reach the station. The second part is focused on the building of a custom robot. The robot is equipped with a stereocamera (ZED by Stereolabs) and encoder sensors to get odometry information (i.e. wheel velocity). The camera is connected to the NVIDIA Jetson Nano embedded board, that represents the core of the robot. It allows you to perform the algorithm ROS functions, computing the desired speed. The robot implements an Arduino platform that provides the encoder sensors data as output to the Jetson. At the end, a feedback control system takes as input the desired speed and the actual speed and calculate the control output voltage for the motor drivers. In the simulation stage, the robot is capable to recognize the AR tag and to accomplish a successful docking operation, following the developed strategy. As far as the prototype robot is concerned, the software ecosystem works correctly and the drivers send correct signals to the wheels. Even if the path that the robot follows is different from the simulation algorithm and it can be addressed as an improvement to do on the control system as a project next step, this represents a quite satisfying first step for this ambitious project.

Relatori: Giuseppe Carlo Calafiore, Marina Mondin
Anno accademico: 2020/21
Tipo di pubblicazione: Elettronica
Numero di pagine: 134
Soggetti:
Corso di laurea: Corso di laurea magistrale in Mechatronic Engineering (Ingegneria Meccatronica)
Classe di laurea: Nuovo ordinamento > Laurea magistrale > LM-25 - INGEGNERIA DELL'AUTOMAZIONE
Ente in cotutela: California State University Los Angeles (STATI UNITI D'AMERICA)
Aziende collaboratrici: NON SPECIFICATO
URI: http://webthesis.biblio.polito.it/id/eprint/15872
Modifica (riservato agli operatori) Modifica (riservato agli operatori)