Kaasaegsed autonoomsed süsteemid – alates isejuhtivatest autodest ja mehitamata õhusõidukitest (UAV) kuni mererobotite ja tööstuslike kaasrobotiteni – sõltuvad põhiliselt tarkvaraarhitektuuridest, mis on võimelised reaalajas tuvastama, tegema otsuseid ja juhtima. Kui mehaanilised ja elektroonilised komponendid määravad, mida süsteem saab teha, siis tarkvarapakk määratleb, kuidas see seda teeb – kuidas see maailma tajub, andmeid tõlgendab, tegevusi kavandab ja keskkonnaga ohutult suhtleb [66,67]. Autonoomiatarkvara erineb tavapärasest manus- või ettevõttetarkvarast mitmel kriitilisel viisil.
See ohutuskriitilise inseneri ja AI-põhise otsustusprotsessi kombinatsioon muudab autonoomiatarkvara tänapäevase andmetöötluse üheks kõige keerulisemaks valdkonnaks.
Autonoomiatarkvara peab saavutama neli peamist funktsionaalset eesmärki [68,69]:
Kõik need eesmärgid vastavad autonoomia virna erinevatele tarkvarakihtidele ja moodulitele.
| Iseloomulik | Kirjeldus | Tähtsus |
|---|---|---|
| Täitmine reaalajas | Peab töötlema anduri andmeid ja reageerima millisekundite jooksul. | Tagab ohutuse ja stabiilsuse. |
| Determinism | Ettenähtav käitumine määratletud tingimustes. | Nõutav kinnitamiseks ja usalduseks. |
| Skaleeritavus | Toetab suurenenud anduri andmeid ja arvutamise keerukust. | Võimaldab tulevasi uuendusi. |
| Koostalitlusvõime | Integreerib erinevat riistvara, OS-i ja vahevara. | Hõlbustab modulaarsust. |
| Vastupidavus | Peab vaatamata osalistele riketele jätkama töötamist. | Kriitiline missiooni järjepidevuse jaoks. |
| Kohanemisvõime | Õpib andmetest või värskendab käitumist dünaamiliselt. | Tehisintellekti juhitud autonoomia võti. |
Need omadused juhivad arhitektuuriotsuseid ja raamistike valikut (nt ROS, AUTOSAR Adaptive, DDS).
Autonoomiatarkvara on kihiline, ühendades mitu tarkvaratehnoloogiat:
Nende kihtide kombinatsioon moodustab autonoomia tarkvaravirna, mis võimaldab keerukat käitumist, säilitades samal ajal usaldusväärsuse. Autonoomsuse tarkvara määrav aspekt on selle sõltuvus vahevarast – raamistikest, mis haldavad protsessidevahelist sidet (IPC), andmete jaotust ja aja sünkroonimist hajutatud andmetöötlussõlmede vahel. Mõned laialdaselt kasutatavad standardid:
Täielik tarkvarapakk on tarkvarakomponentide, raamistike ja teekide kihiline kogum, mis töötavad koos, et pakkuda täielikku süsteemi funktsioonide komplekti. Iga kiht pakub teenuseid selle kohal olevale kihile ja sõltub selle all olevast kihist. Vahevara, mis on mitmekihiliste arhitektuuride oluline osa, tagab, et tarkvaravirna kõik kihid saavad teavet deterministlikult ja turvaliselt vahetada [70]. Autonoomsetes süsteemides võimaldab tarkvarapakk integreerida:
See on selgroog, mis võimaldab autonoomial toimida sidusa süsteemina, mitte lahtiühendatud moodulite kogumina (Quigley et al., 2009; Maruyama jt, 2016). Tehnilisest vaatenurgast määratleb tarkvarapakk, kuidas süsteemis on üles ehitatud funktsionaalsus, andmevoog ja juhtimine.
Modulaarsus ja abstraktsioon
Iga kiht eraldab keerukuse, pakkudes ülalolevale puhta liidese.
Reaalajas ja deterministlik käitumine
Autonoomsed süsteemid toetuvad reaalajas reageerimisele. Virna arhitektuur tagab:
Koostalitlusvõime
Vahevara, nagu ROS 2 või DDS, standardib protsessidevahelise suhtluse. See võimaldab erinevate tarnijate tarkvaramoodulitel (nt ettevõtte A LiDAR-draiver ja ettevõtte B planeerija) koos töötada.
Tõrketaluvus ja koondamine
Virna kihilisus toetab ohutuse seisukohalt oluliste funktsioonide jaoks üleliigseid teid. Kui tajusõlm ebaõnnestub, võib varundusprotsess sujuvalt üle võtta, tagades vastupidavuse, eriti kosmose- ja autosüsteemides [72].
Pidev integreerimine ja simulatsioon
Kihiline disain võimaldab arendajatel:
Juhtimine ja organisatsiooniline tähtsus
Tarkvaratehnoloogia juhtimise vaatenurgast pakub määratletud tarkvarapinn arendusprotsessi struktuuri ja juhtimist, mis annab järgmised peamised eelised: Tööjaotus. Meeskonnad võivad spetsialiseeruda kihtide kaupa – nt üks rühm tegeleb tajuga, teine juhtimine, teine vahevara. See paralleelselt arendab ja võimaldab kasutada domeenide teadmisi ilma häireteta.
Korduskasutatavus ja versioonikontroll Korduvkasutatavad moodulid ja API-d kiirendavad arendust. Sellised tööriistad nagu Git, Docker ja CI/CD torujuhtmed tagavad hajutatud meeskondade jälgitavuse, hooldatavuse ja kiired värskendused.
Skaleeritavus ja elutsükli haldamine Hästi struktureeritud pinu saab laiendada uute andurite või algoritmidega, ilma kogu süsteemi uuesti üles ehitamata. Elutsükli haldustööriistad (nt ROS 2 käivitussüsteemid, AUTOSAR Adaptive manifestid) säilitavad versioonide järjepidevuse ja sõltuvuse kontrolli.
Kvaliteedi tagamine (QA) ja sertifitseerimine Kihilised tarkvaravirnad muudavad kvaliteedikontrolli ja vastavusraamistike, näiteks ISO 26262 (autode ohutustarkvara), DO-178C (lennundustarkvara) või IEC 61508 (automaatika funktsionaalne ohutus) rakendamise lihtsamaks. Iga kihti saab valideerida eraldi, lihtsustades dokumentatsiooni ja sertifitseerimise töövooge.
Kulude ja riskide vähendamine Kui mitu projekti jagavad ühtset tarkvarapakki, langevad testimise, valideerimise ja hoolduse kulud märkimisväärselt. See lähenemisviis toetab kogu tööstust hõlmavaid algatusi, nagu AUTOSAR, mis standardib sõidukite tarkvara integreerimiskulude vähendamiseks.
Kihiline virn kui organisatsiooni plaan
Suurtes autonoomiaprojektides (nt Waymo, Tesla) toimib tarkvarapakk ka organisatsioonilise struktuurina. Meeskonnad on joondatud kihtidega:
Seega toimib tarkvarapinn nii tehnilise arhitektuuri kui ka koordineerimise ja vastutuse organisatsioonilise kaardina [73].
Reaalmaailma näide: ROS 2 kui kihiline virn
Roboti operatsioonisüsteem 2 (ROS 2) näitab, kuidas modulaarseid tarkvaravirnu rakendatakse:
Sellest kihilisest mudelist on saanud paljude akadeemiliste ringkondade ja tööstuse autonoomsete süsteemide alus — mobiilsetest robotitest autonoomsete sõidukiteni [74]).
Hästi määratletud tarkvaravirna eelised
| Eelis | Kirjeldus |
|---|---|
| Selgus ja struktuur | Lihtsustab süsteemi mõistmist ja kasutuselevõttu. |
| Paralleelarendus | Võimaldab mitmel meeskonnal samaaegselt töötada. |
| Vahetatavus | Toetab komponentide asendamist ilma täieliku ümberkujundamiseta. |
| Skaleeritavus | Võimaldab edaspidist laienemist minimaalse ümbertöötamisega. |
| Hooldatavus | Hõlbustab silumist, versiooniuuendusi ja sertifitseerimist. |
| Tõhusus | Vähendab kulusid, koondamis- ja integratsiooniriski. |
Sisuliselt pole tarkvarapakk pelgalt tehniline artefakt – see on strateegiline võimaldaja, mis ühtlustab inseneriprotsesse, organisatsioonilist struktuuri ja autonoomsete platvormide pikaajalist jätkusuutlikkust. Autonoomia tarkvarapinu ning arendus- ja hooldusprobleeme käsitletakse järgmistes peatükkides.