====== Autonomy Software Stack ====== Tüüpiline autonoomia tarkvarapakk on jaotatud hierarhilisteks kihtideks, millest igaüks vastutab teatud funktsioonide alamhulga eest – alates madala taseme anduri juhtimisest kuni kõrgetasemelise otsuste tegemise ja sõidukipargi koordineerimiseni. Kuigi rakendused on erinevates valdkondades (maapealne, õhust, merest) erinevad, jääb põhiline arhitektuuriloogika sarnaseks: * **Tajukiht** – keskkonna tunnetamine ja mõistmine. * **Localisation Layer** – asukoha ja orientatsiooni määramine. * **Planeerimiskiht** – otsustamine, milliseid toiminguid teha. * **Juhtkiht** – nende toimingute teostamine täiturmehhanismide kaudu. * **Süsteemikiht** – side, riistvara ja käitusaja haldamine. * **Infrastruktuurikiht** – pakub simulatsiooni, pilveteenuseid ja DevOpsi. See kihiline disain ühtib tihedalt nii robootikaraamistikega (ROS 2) kui ka autotööstuse arhitektuuridega (AUTOSAR Adaptive).
{{:en:safeav:as:as:rtu_ch3_figure1.png?600| The SCOR Model Typical Autonomy Software Stack}} Tüüpiline autonoomia tarkvarapakk (kohandatud allikatest ((Raj, A., & Saxena, P. (2022). Software architectures for autonomous vehicle development: Trends and challenges. IEEE Access, 10, 54321–54345)) ((AUTOSAR Consortium. (2023). AUTOSAR Adaptive Platform Specification. AUTOSAR))).
Joonisel 1 on kujutatud peamised tarkvarakihid ja nende funktsioonid. **Riistvara abstraktsioonikiht (HAL)** HAL pakub standardset juurdepääsu riistvararessurssidele. See teisendab riistvaraspetsiifilised üksikasjad (nt andurite sideprotokollid, pingetasemed) tarkvaraga juurdepääsetavateks API-deks. See funktsioon sisaldab tavaliselt järgmist: * LiDAR-i, radarite, kaamerate, IMU-de ja muude autonoomse süsteemi jaoks vajalike seadmete draiverite haldamine. * Toitesüsteemide ja diagnostika jälgimine, mis sisaldab vajadusel käitumise muutmise käivitajaid. * Ajatempliga andurite andmevoogude pakkumine. Reaalajas või ajatembeldatud andmed on mis tahes andmepõhise süsteemi oluline osa, et tagada aegridade analüüsi algoritmide, sealhulgas süvaõppe meetodite õige töö. * Täiturmehhanismide (mootorid, servod, pidurid) reaalajas juhtimine. HAL tagab teisaldatavuse — tarkvaramoodulid jäävad teatud riistvaramüüjate või konfiguratsioonide suhtes agnostiliseks ((Lee, E. A. & Seshia, S. A. (2020). Sissejuhatus manussüsteemidesse: A Cyber-Physical Systems Approach (3. väljaanne). MIT Press.)). **Operatsioonisüsteem (OS) ja virtualiseerimiskiht** OS-i kiht haldab riistvararessursse, protsesside ajastamist ja protsessidevahelist suhtlust (IPC), samuti reaalajas töötamist, hoiatusi ja päästikute tõstmist, kasutades valvekoera protsesse. Siin on andmetöötluse paralleelsus üks võtmeid ressursside tagamisel ajakriitiliste rakenduste jaoks. Autonoomsed süsteemid kasutavad sageli: * Linux (Ubuntu või Yocto-põhine) paindlikkuse tagamiseks. * Reaalajas operatsioonisüsteemid (RTOS) nagu QNX või VxWorks ohutuskriitilise ajastuse jaoks. * Konteinerimine (Docker, Podman) tarkvara isoleerimiseks ja modulaarseks juurutamiseks. Time-Sensitive Networking (TSN) laiendused ja PREEMPT-RT plaastrid tagavad missioonikriitiliste ülesannete deterministliku ajastamise ((Baruah, S., Baker, T. P., & Burns, A. (2012). Real-time scheduling theory: A History perspective. Real-Time Systems, 28(2)–1), 5101–3). **Keskvara / sidekiht** Vahevara kiht toimib autonoomia virna andmete selgroona. See haldab sidet hajutatud tarkvaramoodulite vahel, tagades reaalajas, usaldusväärse ja skaleeritava andmevoo. Mõnes mainitud arhitektuuris on vahevara arhitektuuri keskne eripära. Populaarsed vahevaratehnoloogiad: * ROS 2 (robotite operatsioonisüsteem 2): kasutab DDS-i (andmejaotusteenus) modulaarseks avaldamise-tellimise suhtluseks. * DDS (Data Distribution Service): tööstusstandardile vastav vahevara reaalajas QoS-põhiseks andmevahetuseks. * CAN, Ethernet, MQTT: kasutatakse sõidukisiseseks ja väliseks suhtluseks. * Logi- ja telemeetriasüsteemid (ROS-kotid, DDS-salvestid). * Vigade tuvastamise ja taastamise mehhanismid. * QoS (Quality of Service) konfiguratsioon ribalaiuse ja latentsusaja haldamiseks. **Juht- ja täitmiskiht** Juhtkiht muudab kavandatud trajektoorid täiturmehhanismi käskudeks, säilitades samal ajal sõiduki stabiilsuse. See sulgeb tagasisideahela käsu ja anduri vastuse vahel. Peamised moodulid: * Madala taseme juhtimine: PID-, LQR- või MPC-kontrollerid juhtimiseks, gaasipedaaliks, pidurdamiseks või tõukejõuks. * Kõrgetasemeline juhtimine: teisendab trajektooriplaanid reaalajas seadeväärtusteks. * Oleku hindamine: kasutab Kalmani filtreid või vaatlejaid kontrollihälvete korrigeerimiseks. Ohutuskriitilistes süsteemides kasutatakse ohtlike tingimuste vältimiseks sageli üleliigseid kontrollereid ja jälgimissõlmi ((Broy, M. et al. (2021). Automotive Software and Hardware Architectures with AUTOSAR. Springer)). **Autonoomia luurekiht** See on virnas otsuste tegemise tuum. See koosneb mitmest omavahel seotud alamsüsteemist: ^ Alamsüsteem ^ Funktsioon ^ Näidistehnikad / Tööriistad ^ | Taju | Tuvastage ja klassifitseerige objekte, sõiduradasid, maastikku või takistusi. | CNN-id, LiDAR-i segmenteerimine, andurite liitmine. | | Lokaliseerimine | Hinnanguline asukoht globaalse või kohaliku kaardi suhtes. | SLAM, GNSS, visuaalne odomeetria, EKF. | | Planeerimine | Arvutage teostatavad, ohutud teed või käitumisviisid. | A*, D*, RRT*, käitumispuud. | | Ennustus | Esitage keskkonnakäitumise prognoos. Tavaliselt annab see ka sisemise dünaamika prognoosi. | Korduvad närvivõrgud, Bayesi järeldus. | | Otsuste tegemine | Valige tegevused missiooni eesmärkide ja konteksti alusel. | Lõpliku olekuga masinad, tugevdusõpe. | Need komponendid interakteeruvad vahevara kaudu ja töötavad kas servaarvutites (pardal) või pilvepõhistes süsteemides laiendatud töötlemiseks ((LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436–444.)). **Rakendus- ja pilvekiht** Virna ülaosas asub rakenduskiht, mis laiendab autonoomiat üksikutest sõidukitest kaugemale: * Autopargi haldamine (jälgimine, ülesannete määramine). * Õhu kaudu (OTA) värskendused tarkvarale ja püsivarale. * Pilvepõhine simulatsioon ja analüüs. * Andmete kogumine masinõppe ümberõppeks. Sellised raamistikud nagu AWS RoboMaker, NVIDIA DRIVE Sim ja Microsoft AirSim ühendavad pilvarvutusega pardal autonoomia. ===== Andmevoog autonoomia tarkvarapinus ===== Autonoomiasüsteemid toetuvad andmekonveieritele, mis liigutavad teavet kihtide vahel reaalajas.
{{:en:safeav:as:as:rtu_ch3_figure2.png?700| Data Flow in an Autonomy Software Stack}} Andmevoog autonoomia tarkvaravirnas
Iga etapp sisaldab tagasisideahelaid, et tagada vigade parandamine ja ohutusjärelevalve ((Thrun, S. (2010). Toward robotic cars. Communications of the ACM, 53(4), 99–106)) ((Raj, A., & Saxena, P. (2022). Software architectures for autonomous vehicle development: Trends and challenges. IEEE Access, 10, 54321–54345)). ===== Näidisrakendused ===== **ROS-i 2-põhine virn (uuringud ja prototüüpimine)** * Kasutatakse akadeemilises ja tööstuslikus uurimis- ja arendustegevuses. * Paindlik ja modulaarne, ideaalne simulatsiooni- ja katseplatvormidele. * Integratsioon Gazebo, RViz ja DDS vahevaraga. **AUTOSAR adaptiivne platvorm (autotööstus)** * Tööstusliku kvaliteediga raamistik tootmissõidukitele. * Teenusele orienteeritud arhitektuur koos reaalajas OS-i ja turvamehhanismidega. * Toetab ISO 26262 vastavust ja mitmetuumalisi süsteeme. **MOOS-IvP (mereautonoomia)** * Vahevara, mis keskendub mererobootikale. * Käitumisel põhinev arhitektuur koos missiooni planeerimisega (IvP Helm). * Optimeeritud väikese ribalaiusega side ja töökindluse jaoks ((Benjamin, M. R., Curcio, J. A., & Leonard, J. J. (2012). MOOS-IvP autonoomiatarkvara mererobotite jaoks. Journal of Field Robotics, 29(6), 821–835)). **Hübriid pilveserva arhitektuur** * Ühendage pardal olev autonoomia pilvetöötlusega (mudelikoolituseks või kõrgetasemeliseks optimeerimiseks). * Kasutatakse suuremahulistes laevastikuoperatsioonides (nt logistikarobotid, õhust kaardistamine). * Nõuab turvalisi sidekanaleid ja andmete orkestreerimist ((Wang, L., Xu, X., & Nee, A. Y. C. (2022). Digital twin-enabled integration in production. CIRP Annals, 71(1), 105–128)). ===== Kihtide koostoime näide – autonoomne sõiduk =====
{{:en:safeav:as:as:rtu_ch3_figure3.png?700| Simplified Interaction Example}} Lihtsustatud interaktsiooni näide
See suletud ahelaga andmevahetus tagab reaalajas reageerimise, tugeva vigade taastamise ja moodulitevahelise sidususe.