Design of TeMoto, a software framework for dependable, adaptive, and collaborative autonomous robots
Date
2024-11-19
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Autonoomsete robotite arendamise üks suurimaid motivatsioone on võtta inimestelt üle tööd, mis on eluohtlikud, stressirohked ja füüsiliselt rasked. Samas on usaldusväärse autonoomia saavutamine ettearvamatutes ja ohtlikes rakendusvaldkondades (tulekahjud, tuumajäätmete ja tuumakriiside haldamine, ehitise rusudes töötamine, kosmosemissioonid, jne) väljakutse, mis eeldab arendatavalt süsteemilt kaht vastuolulist omadust – kõrget usaldusväärsust ja komplekssust. Seetõttu eelistatakse väljakutsuvates keskkondades kaugjuhitavaid robotisüsteeme, kus usaldusväärse soorituse tagab kvalifitseeritud operaator. Kui aga roboti kaugjuhtimine ei ole võimalik (liiga suured vahemaad, keeruline keskkond, jne), peab robot olema paratamatult kas pool- või täielikult autonoomne.
Käesoleva doktoritöö eesmärkideks on: a) analüüsida tarkvara arendamise printsiipe, mis aitavad suurendada robotite autonoomia taset riskantsete ja keerukate ülesannete puhul; ning b) arendada välja tarkvara arhitektuur, mis on kooskõlas nende printsiipidega. Antud doktoritöö peamiseks väljundiks on tarkvara raamistik TeMoto, mis võimaldab arendada adaptiivseid, skaleeruvaid, robot-robot ja inim-roboti koostööle orienteeritud robotite tarkvara.
TeMoto on struktuurselt kolmekihiline arhitektuur (three layer architecture), mis on kohandatud detsentraliseeritud ja hajusate mitme-roboti süsteemide jaoks, ja haldab käitusaegselt nii roboti missiooni (täitevkiht, ing. k. executive layer) kui ka tarkvara/riistvara ressursse (funktsionaalne kiht, ing. k. functional layer). Missioonide kirjeldamiseks on käesoleva töö raames arendatud välja formaat (Unified Meaning Representation Format, ehk UMRF), mis võimaldab kirjeldada kompleksseid, hierarhilisi, ja mitut robotit hõlmavaid missioone JSON-vormingus. UMRF'il baseeruvaid missioonikirjeldusi haldab C++ põhine teek TeMoto Action Engine, kus iga missiooni alamkomponent (navigeerimine, objektide manipuleerimine, jne) on dünaamiliselt laetav ja kontrollitav plugin. Ressursside haldamise kiht võimaldab dünaamiliselt kontrollida hierarhiliste ressursside elutsüklit, tagades ressursi korrektse allokeerimise/deallokeerimise ja veahalduse kanali. TeMoto on avatud lähtekoodiga ja mõeldud eeskätt töötamiseks nii ROS-i kui ROS2-ga, kuid põhitööriistu saab kasutada ka väljaspool ROS-i.
Antud töö on valideeritud erinevate stsenaariumite põhjal, mis kätkevad ressursside ja ülesannete haldamist, ning inim-robot ja robot-robot koostööd. TeMoto tarkvararaamistik on pidevas arenduses, ning käesolev töö annab ülevaate TeMoto hetkeseisundist, peamistest disainipõhimõtetest, arendatud tööriistadest ja tulevikusuundadest.
Reducing human involvement in hazardous, stressful, and tedious tasks has been among the main driving reasons for reaching self-sufficient, autonomous robots. However, achieving reliable autonomy in unpredictable and dangerous application domains is a challenge that combines two borderline contradictory aspects – system reliability and complexity. Thus, teleoperated robotic systems are often preferred. Nevertheless, when a wired connection is not an option and a wireless connection is intermittent, semi- or fully autonomous capabilities become paramount. The goal of this work is to a) analyze the software architecture design principles that lead to the increase of LoA of robots deployed for high-risk and high-complexity tasks; and b) develop a software architecture that implements the concluded design principles. This work contributes by developing an adaptive, scalable, multi-agent, and human-robot collaboration-oriented software architecture, TeMoto, derived from analyzing a variety of high-risk task domains and common design principles for a robotic software stack. TeMoto is based on a decentralized multi-robot variant of a three-layer architecture, i.e., syndicate architecture, and enables dynamic task (executive layer) and resource (functional layer) management. Tasks are outlined in Unified Meaning Representation Format (UMRF), a novel domain-specific language that allows the description of complex hierarchical multi-robot tasks in JSON format. TeMoto Action Engine is a C++ based library that implements the semantics of UMRF. Individual behaviors in a task, i.e., actions, are defined as dynamically loadable modular plugins that can be concurrently executed. The resource management layer provides dynamic control over the lifecycle of resources, such as sensors and actuators. It provides reference counting and hierarchical dependency management, allowing for correct resource allocation, deallocation, and error propagation along the dependency chain. TeMoto is completely open-source, and is designed to work with ROS and ROS2, while the core tools can be used outside ROS. The work is evaluated via five technical demonstrators, covering the fundamental principles of resource management, task management, and use cases involving human-robot interaction and multi-robot systems. The development of TeMoto is an ongoing process, and this work captures the current state, outlining the core design principles and set of implemented tools
Reducing human involvement in hazardous, stressful, and tedious tasks has been among the main driving reasons for reaching self-sufficient, autonomous robots. However, achieving reliable autonomy in unpredictable and dangerous application domains is a challenge that combines two borderline contradictory aspects – system reliability and complexity. Thus, teleoperated robotic systems are often preferred. Nevertheless, when a wired connection is not an option and a wireless connection is intermittent, semi- or fully autonomous capabilities become paramount. The goal of this work is to a) analyze the software architecture design principles that lead to the increase of LoA of robots deployed for high-risk and high-complexity tasks; and b) develop a software architecture that implements the concluded design principles. This work contributes by developing an adaptive, scalable, multi-agent, and human-robot collaboration-oriented software architecture, TeMoto, derived from analyzing a variety of high-risk task domains and common design principles for a robotic software stack. TeMoto is based on a decentralized multi-robot variant of a three-layer architecture, i.e., syndicate architecture, and enables dynamic task (executive layer) and resource (functional layer) management. Tasks are outlined in Unified Meaning Representation Format (UMRF), a novel domain-specific language that allows the description of complex hierarchical multi-robot tasks in JSON format. TeMoto Action Engine is a C++ based library that implements the semantics of UMRF. Individual behaviors in a task, i.e., actions, are defined as dynamically loadable modular plugins that can be concurrently executed. The resource management layer provides dynamic control over the lifecycle of resources, such as sensors and actuators. It provides reference counting and hierarchical dependency management, allowing for correct resource allocation, deallocation, and error propagation along the dependency chain. TeMoto is completely open-source, and is designed to work with ROS and ROS2, while the core tools can be used outside ROS. The work is evaluated via five technical demonstrators, covering the fundamental principles of resource management, task management, and use cases involving human-robot interaction and multi-robot systems. The development of TeMoto is an ongoing process, and this work captures the current state, outlining the core design principles and set of implemented tools
Description
Väitekirja elektrooniline versioon ei sisalda publikatsioone