Robottiajoneuvoryhmän reitityksen simulointi
Kangas, Santeri (2024)
Kangas, Santeri
2024
Tietotekniikan DI-ohjelma - Master's Programme in Information Technology
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2024-05-14
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202404244298
https://urn.fi/URN:NBN:fi:tuni-202404244298
Tiivistelmä
Robottiajoneuvot ovat itseohjautuvia ajoneuvoja. Toimintaympäristössä liikkuu yleensä useita robottiajoneuvoja, jolloin puhutaan robottiajoneuvoryhmästä. Keskeiseksi ongelmaksi muodostuukin, miten kaikki ryhmän robottiajoneuvot saadaan reititettyä ajotehtävilleen samaan aikaan. Robottiajoneuvojen reitinsuunnittelussa tarvitaankin reititysalgoritmeja. Tässä työssä suunnitellaan ja toteutetaan simulointialusta, jolla robottiajoneuvoryhmän reititystä voidaan simuloida ja käyttää myöhemmin kehitettävien reititysalgoritmien testaamisessa.
Työ on luonteeltaan soveltuvuusselvitys ja työssä on käytetty konstruktiivista menetelmää. Tutkimusongelmana on, voidaanko simulointialusta toteuttaa käyttäen teknologioita Rust, ROS (engl. Robot Operating System) ja RViz-visualisointityökalu. Työn tavoitteena on selvittää, miten reititystä ja robottiajoneuvoja on mallinnettava simulointialustan toteuttamiseksi.
Robottiajoneuvojen tyypillisimpiä käyttökohteita ovat varasto- ja teollisuushallien sisäiset kuljetustehtävät. Robottiajoneuvot ovat keskeisessä asemassa osana tuotantojärjestelmää ja toimitusketjua, mistä aiheutuu tarve optimoida kuljetustehtävien suoritusta. Tätä varten on kehitetty yhä monimutkaisempia reititysalgoritmeja, jotka optimoivat jotakin tekijää kuten lyhintä reittiä. Optimointiongelmasta riippumatta reititysalgoritmien keskeisenä tehtävänä on konfliktittoman reitin tuottaminen kaikille robottiajoneuvoille samaan aikaan. Reitinsuunnittelu huolehtii siis, etteivät robottiajoneuvot törmää toisiinsa tai jää jumiin lukkiutumistilanteisiin.
Simulointi on osoittautunut hyväksi keinoksi testata reititysalgoritmien toimivuutta. Simuloinnin toteuttamisessa korostuvat erityisesti oikean mallin valinta, mallinnuksen tarkkuus ja visualisointi. Visualisoinnilla on erityinen rooli simuloidun mallin ja tulosten paremmassa kommunikoinnissa. Robottiajoneuvojen tapauksessa täytyy mallintaa sekä ajoneuvot että niiden toimintaympäristö. Reitityksen simuloinnissa ajoneuvojen ja toimintaympäristön yksityiskohtainen mallintaminen ei ole tarpeellista.
Simulointialusta toteutetaan Rust-ohjelmointikielellä ja visualisointiin käytetään ROSia ja RViziä. Ajokarttojen piirtämiseen käytetään Tiled-tasoeditoria. Keskeisenä vaatimuksena on mahdollistaa reititysalgoritmien kytkeminen simulointialustaan siten, että tuotetut reittisuunnitelmat voidaan tarkastaa mahdollisten ongelmien varalta ja hylätä tarvittaessa ennen simulointia. Simulointialustan täytyy myös tuottaa varoitukset reittisuunnitelmien ongelmatilanteista.
Robottiajoneuvoille toteutetaan yksinkertainen 3D-robottimalli, joka koostuu rungosta ja takapuskurista. Ajokarttojen piirtoa varten toteutetaan segmenttimuodot: suora, mutka ja S-mutka. Simuloinnin suoritus kuvataan skenaarioina, jotka koostuvat ajokartasta, ajoneuvojen määrittelystä ja ajotehtävälistasta. Simulointialustan ja reitinsuunnittelun väliin toteutetaan rajapinta, jonka kautta uusia reittisuunnitelmia pyydetään reititysalgoritmilta. Reittisuunnitelmien törmäystilanteisiin toteutetaan myös visuaaliset varoitukset. Liikkeen simulointia varten robottiajoneuvoille toteutetaan kiihdytys- ja hidastusvaiheet, etenemissuunnan vaihto ja paikallaan kääntyminen. Visualisointia varten toteutetaan komponentit, jotka kykenevät julkaisemaan visualisointiviestejä ROSin kautta RVizille.
Tutkimus osoittaa, että valituilla teknologioilla on mahdollista toteuttaa vaatimusten mukainen simulointialusta. Simulointialusta on kuitenkin osin yksinkertaistettu ja jatkokehitettäviä kohteita ovat nykyisen mallinnuksen hienontaminen, uusien parempien mallien toteuttaminen ja visualisoinnin parantaminen. Robot vehicles are self-driving vehicles. There are typically several robot vehicles in an operating environment, in which case the term robot vehicle fleet can be used. The main problem is
how all the robot vehicles in a fleet can be routed at the same time. Thus, the route planning of the robot vehicles requires routing algorithms. In this thesis, a simulation software is designed and implemented for simulating the routing of a robot vehicle fleet and testing later developed routing algorithms.
The thesis is a proof of concept, and the constructive method is used. The research question is if technologies Rust, ROS (Robot Operating System), and RViz visualizer can be used to build the simulation software. The goal of the thesis is to study how the routing and robot vehicles must be modelled for the simulation.
The most typical operating environments for the robot vehicles are warehouses and factories where they perform internal transportation tasks. Robot vehicles play significant roles in manufacturing systems and supply chains, which causes the need to optimize the performance of the transportation tasks. This has led to the implementation of increasingly complex routing algorithms that optimize some specified factor like shortest path. Regardless of the optimization problem, the main task for the routing algorithms is to produce conflict-free paths for every robot vehicle in the fleet at the same time. Route planning is thus responsible for providing routes so that the robot vehicles do not hit each other or get involved in gridlocks.
Simulation has proven to be an effective way to evaluate how the routing algorithms perform. Implementing simulation is characterized by selecting a correct model, determining the accuracy of the modelling, and building visualization. Visualization is important especially in communicating the simulated model and the results of the simulation. Simulation of robot vehicles requires modelling both the vehicles and the operating environment. Detailed modelling of the robot vehicles and operating environment is not necessary when the routing is simulated.
The simulation software is implemented with Rust programming language, and for the visualization ROS and RViz are used. Tiled level editor is used to drawing the driving maps. The main goal is to provide a way for the routing algorithms to connect to the simulation software so that the produced route plans can be checked for issues and declined before simulating them. The simulation software must also produce warnings if there are issues with the route plans.
A simple 3D robot model is implemented for the robot vehicles consisting of a frame and rear bumper. For the driving maps the following segment types are implemented: straight, curve, and S-curve. The simulations are described as scenarios which consist of a driving map, defined vehicles, and driving tasks. An interface between the simulation software and route planning is developed through which new route plans can be requested during simulation. Visual warnings are implemented for collisions in the route plans. Basic motion simulation for the robot vehicles is implemented consisting of acceleration and deceleration phases, changing the progress direction, and turning in place. For visualization, software components that can publish visualization messages through ROS to RViz are implemented.
The thesis demonstrates that the simulation software can be implemented with the given technologies according to the requirements. However, the simulation software is partially simplified, and further development includes improving the modelling and visualization.
Työ on luonteeltaan soveltuvuusselvitys ja työssä on käytetty konstruktiivista menetelmää. Tutkimusongelmana on, voidaanko simulointialusta toteuttaa käyttäen teknologioita Rust, ROS (engl. Robot Operating System) ja RViz-visualisointityökalu. Työn tavoitteena on selvittää, miten reititystä ja robottiajoneuvoja on mallinnettava simulointialustan toteuttamiseksi.
Robottiajoneuvojen tyypillisimpiä käyttökohteita ovat varasto- ja teollisuushallien sisäiset kuljetustehtävät. Robottiajoneuvot ovat keskeisessä asemassa osana tuotantojärjestelmää ja toimitusketjua, mistä aiheutuu tarve optimoida kuljetustehtävien suoritusta. Tätä varten on kehitetty yhä monimutkaisempia reititysalgoritmeja, jotka optimoivat jotakin tekijää kuten lyhintä reittiä. Optimointiongelmasta riippumatta reititysalgoritmien keskeisenä tehtävänä on konfliktittoman reitin tuottaminen kaikille robottiajoneuvoille samaan aikaan. Reitinsuunnittelu huolehtii siis, etteivät robottiajoneuvot törmää toisiinsa tai jää jumiin lukkiutumistilanteisiin.
Simulointi on osoittautunut hyväksi keinoksi testata reititysalgoritmien toimivuutta. Simuloinnin toteuttamisessa korostuvat erityisesti oikean mallin valinta, mallinnuksen tarkkuus ja visualisointi. Visualisoinnilla on erityinen rooli simuloidun mallin ja tulosten paremmassa kommunikoinnissa. Robottiajoneuvojen tapauksessa täytyy mallintaa sekä ajoneuvot että niiden toimintaympäristö. Reitityksen simuloinnissa ajoneuvojen ja toimintaympäristön yksityiskohtainen mallintaminen ei ole tarpeellista.
Simulointialusta toteutetaan Rust-ohjelmointikielellä ja visualisointiin käytetään ROSia ja RViziä. Ajokarttojen piirtämiseen käytetään Tiled-tasoeditoria. Keskeisenä vaatimuksena on mahdollistaa reititysalgoritmien kytkeminen simulointialustaan siten, että tuotetut reittisuunnitelmat voidaan tarkastaa mahdollisten ongelmien varalta ja hylätä tarvittaessa ennen simulointia. Simulointialustan täytyy myös tuottaa varoitukset reittisuunnitelmien ongelmatilanteista.
Robottiajoneuvoille toteutetaan yksinkertainen 3D-robottimalli, joka koostuu rungosta ja takapuskurista. Ajokarttojen piirtoa varten toteutetaan segmenttimuodot: suora, mutka ja S-mutka. Simuloinnin suoritus kuvataan skenaarioina, jotka koostuvat ajokartasta, ajoneuvojen määrittelystä ja ajotehtävälistasta. Simulointialustan ja reitinsuunnittelun väliin toteutetaan rajapinta, jonka kautta uusia reittisuunnitelmia pyydetään reititysalgoritmilta. Reittisuunnitelmien törmäystilanteisiin toteutetaan myös visuaaliset varoitukset. Liikkeen simulointia varten robottiajoneuvoille toteutetaan kiihdytys- ja hidastusvaiheet, etenemissuunnan vaihto ja paikallaan kääntyminen. Visualisointia varten toteutetaan komponentit, jotka kykenevät julkaisemaan visualisointiviestejä ROSin kautta RVizille.
Tutkimus osoittaa, että valituilla teknologioilla on mahdollista toteuttaa vaatimusten mukainen simulointialusta. Simulointialusta on kuitenkin osin yksinkertaistettu ja jatkokehitettäviä kohteita ovat nykyisen mallinnuksen hienontaminen, uusien parempien mallien toteuttaminen ja visualisoinnin parantaminen.
how all the robot vehicles in a fleet can be routed at the same time. Thus, the route planning of the robot vehicles requires routing algorithms. In this thesis, a simulation software is designed and implemented for simulating the routing of a robot vehicle fleet and testing later developed routing algorithms.
The thesis is a proof of concept, and the constructive method is used. The research question is if technologies Rust, ROS (Robot Operating System), and RViz visualizer can be used to build the simulation software. The goal of the thesis is to study how the routing and robot vehicles must be modelled for the simulation.
The most typical operating environments for the robot vehicles are warehouses and factories where they perform internal transportation tasks. Robot vehicles play significant roles in manufacturing systems and supply chains, which causes the need to optimize the performance of the transportation tasks. This has led to the implementation of increasingly complex routing algorithms that optimize some specified factor like shortest path. Regardless of the optimization problem, the main task for the routing algorithms is to produce conflict-free paths for every robot vehicle in the fleet at the same time. Route planning is thus responsible for providing routes so that the robot vehicles do not hit each other or get involved in gridlocks.
Simulation has proven to be an effective way to evaluate how the routing algorithms perform. Implementing simulation is characterized by selecting a correct model, determining the accuracy of the modelling, and building visualization. Visualization is important especially in communicating the simulated model and the results of the simulation. Simulation of robot vehicles requires modelling both the vehicles and the operating environment. Detailed modelling of the robot vehicles and operating environment is not necessary when the routing is simulated.
The simulation software is implemented with Rust programming language, and for the visualization ROS and RViz are used. Tiled level editor is used to drawing the driving maps. The main goal is to provide a way for the routing algorithms to connect to the simulation software so that the produced route plans can be checked for issues and declined before simulating them. The simulation software must also produce warnings if there are issues with the route plans.
A simple 3D robot model is implemented for the robot vehicles consisting of a frame and rear bumper. For the driving maps the following segment types are implemented: straight, curve, and S-curve. The simulations are described as scenarios which consist of a driving map, defined vehicles, and driving tasks. An interface between the simulation software and route planning is developed through which new route plans can be requested during simulation. Visual warnings are implemented for collisions in the route plans. Basic motion simulation for the robot vehicles is implemented consisting of acceleration and deceleration phases, changing the progress direction, and turning in place. For visualization, software components that can publish visualization messages through ROS to RViz are implemented.
The thesis demonstrates that the simulation software can be implemented with the given technologies according to the requirements. However, the simulation software is partially simplified, and further development includes improving the modelling and visualization.