Autonomisen järjestelmän kustannuskarttapohjainen reitinmäärittely
Puola, Santeri (2023)
Puola, Santeri
2023
Konetekniikan DI-ohjelma - Master's Programme in Mechanical Engineering
Tekniikan ja luonnontieteiden tiedekunta - Faculty of Engineering and Natural 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ä
2023-08-08
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202307247272
https://urn.fi/URN:NBN:fi:tuni-202307247272
Tiivistelmä
Tässä työssä tarkastellaan kustannuskartan hyödyntämistä autonomisen järjestelmän navigoinnissa. Kustannuskarttaan tallennetaan järjestelmän antureiden havaitsemat esteet, mutta myös käyttäjän lisäämää tietoa. Tutkimuksessa kehitetään keino, jolla käyttäjä saa välitettyä ajankohtaisen kustannuskartan autoomiselle järjestelmälle. Menetelminä työssä käytetään kirjallisuuskatsausta sekä simulaatiota.
Työssä toteutetaan järjestelmä, joka koostuu kolmesta osasta: kustannuskartasta, karttapalvelimesta ja reitinsuunnittelualgoritmista. Tutkimusta varten luodaan yksinkertainen kustannuskartta, joka lähetetään karttapalvelimelle. Karttapalvelin jakaa kartan järjestelmän muiden osapuolten käytettäväksi. Autonomisen järjestelmän navigoinnissa hyödynnetään robotinohjausjärjestelmän (engl. Robot Operating System, ROS) Nav2-navigointilisäosaa, joka tarjoaa monipuolisesti valmiita työkaluja robottien navigointiin. Tutkimuksessa selvitetään, millainen kustannuskartta kannattaa luoda ja mikä on järjestelmään sopivin reitinsuunnittelualgoritmi. Nav2 tukee useimpia kustannuskarttaa käyttäviä reitinsuunnittelualgoritmeja. Tutkimuksessa kehitettyä järjestelmää testataan välittämällä yksinkertainen kustannuskartta käyttäjältä simuloidulle testirobotille.
Tutkimuksessa todetaan, että kustannuskartta kannatta luoda keräämällä eri lähteistä oleva data erillisille karttatasoille, jotka lopulta yhdistetään yhdeksi kustannuskartaksi sensorifuusiolla. Tällä tavalla kaikki oleellinen tieto saadaan sisällytettyä yhteen karttakuvaan. Nav2 osaa tulkita luotua karttakuvaa, kunhan karttakuvaa käsittelevä työkalu on konfiguroitu asianmukaisesti. Parhaaksi reitinsuunnittelualgoritmiksi järjestelmälle valikoituu A*-algoritmi, joka laskee lyhimmän reitin lähtö- ja kohdepisteen välillä hyvin tehokkaasti. Vertailussa sopivammaksi algoritmiksi todettiin D*-algoritmi, jota kuitenkaan ei ole saatavilla Nav2-lisäosalle. D*-algoritmi käyttää A*-algoritmia reitinsuunnitteluun, mutta laskee uuden reitin kohdatessaan ennestään tuntemattoman esteen, mikä mahdollistaa yksinkertaisen esteenväistön.
Työssä toteutetaan järjestelmä, joka koostuu kolmesta osasta: kustannuskartasta, karttapalvelimesta ja reitinsuunnittelualgoritmista. Tutkimusta varten luodaan yksinkertainen kustannuskartta, joka lähetetään karttapalvelimelle. Karttapalvelin jakaa kartan järjestelmän muiden osapuolten käytettäväksi. Autonomisen järjestelmän navigoinnissa hyödynnetään robotinohjausjärjestelmän (engl. Robot Operating System, ROS) Nav2-navigointilisäosaa, joka tarjoaa monipuolisesti valmiita työkaluja robottien navigointiin. Tutkimuksessa selvitetään, millainen kustannuskartta kannattaa luoda ja mikä on järjestelmään sopivin reitinsuunnittelualgoritmi. Nav2 tukee useimpia kustannuskarttaa käyttäviä reitinsuunnittelualgoritmeja. Tutkimuksessa kehitettyä järjestelmää testataan välittämällä yksinkertainen kustannuskartta käyttäjältä simuloidulle testirobotille.
Tutkimuksessa todetaan, että kustannuskartta kannatta luoda keräämällä eri lähteistä oleva data erillisille karttatasoille, jotka lopulta yhdistetään yhdeksi kustannuskartaksi sensorifuusiolla. Tällä tavalla kaikki oleellinen tieto saadaan sisällytettyä yhteen karttakuvaan. Nav2 osaa tulkita luotua karttakuvaa, kunhan karttakuvaa käsittelevä työkalu on konfiguroitu asianmukaisesti. Parhaaksi reitinsuunnittelualgoritmiksi järjestelmälle valikoituu A*-algoritmi, joka laskee lyhimmän reitin lähtö- ja kohdepisteen välillä hyvin tehokkaasti. Vertailussa sopivammaksi algoritmiksi todettiin D*-algoritmi, jota kuitenkaan ei ole saatavilla Nav2-lisäosalle. D*-algoritmi käyttää A*-algoritmia reitinsuunnitteluun, mutta laskee uuden reitin kohdatessaan ennestään tuntemattoman esteen, mikä mahdollistaa yksinkertaisen esteenväistön.