NASA je v raketi Ingenuity Mars uporabila Linux in odprtokodno programsko opremo

Predstavniki vesoljske agencije NASA so v intervjuju za Spectrum IEEE razkrili podrobnosti o notranjosti avtonomnega izvidniškega helikopterja Ingenuity, ki je včeraj uspešno pristal na Marsu v okviru misije Mars 2020. Posebnost projekta je bila uporaba nadzorne plošče na osnovi Snapdragon 801 SoC podjetja Qualcomm, ki se uporablja pri izdelavi pametnih telefonov. Programska oprema Ingenuity temelji na jedru Linuxa in odprtokodni programski opremi za letenje. Opozoriti je treba, da je to prva uporaba Linuxa v napravah, poslanih na Mars. Poleg tega uporaba odprtokodne programske opreme in široko dostopnih komponent strojne opreme omogoča zainteresiranim navdušencem, da podobne drone sestavljajo sami.

Ta odločitev je posledica dejstva, da upravljanje letečega drona zahteva bistveno več računalniške moči kot upravljanje Mars roverja, ki je opremljen s posebej izdelanimi čipi z dodatno zaščito pred sevanjem. Na primer, vzdrževanje leta zahteva krmilno zanko, ki deluje s 500 cikli na sekundo, in analizo slike s 30 slikami na sekundo.

Snapdragon 801 SoC (štirijedrni, 2.26 GHz, 2 GB RAM, 32 GB Flash) poganja jedro sistemskega okolja, ki temelji na Linuxu, ki je odgovorno za operacije na visoki ravni, kot je vizualna navigacija na podlagi analize slike kamere, upravljanje podatkov, obdelava ukaze, generiranje telemetrije in vzdrževanje brezžičnega komunikacijskega kanala.

Procesor je preko vmesnika UART povezan z dvema mikrokontrolerjema (MCU Texas Instruments TMS570LC43x, ARM Cortex-R5F, 300 MHz, 512 KB RAM, 4 MB Flash, UART, SPI, GPIO), ki opravljata funkcije krmiljenja leta. Dva mikrokontrolerja se uporabljata za redundanco v primeru okvare in sprejemata enake informacije od senzorjev. Aktiven je samo en mikrokrmilnik, drugi pa se uporablja kot rezervni in v primeru okvare lahko prevzame krmiljenje. MicroSemi ProASIC3L FPGA je odgovoren za prenos podatkov od senzorjev do mikrokontrolerjev in za interakcijo z aktuatorji, ki krmilijo rezila, ki v primeru okvare tudi preklopi na rezervni mikrokrmilnik.

NASA je v raketi Ingenuity Mars uporabila Linux in odprtokodno programsko opremo

Med opremo dron uporablja laserski višinomer podjetja SparkFun Electronics, ki proizvaja odprtokodno strojno opremo in je eden od tvorcev definicije odprtokodne strojne opreme (OSHW). Druge tipične komponente vključujejo stabilizator gimbal (IMU) in video kamere, ki se uporabljajo v pametnih telefonih. Ena kamera VGA se uporablja za spremljanje lokacije, smeri in hitrosti s primerjavo po slikah. Druga barvna kamera s 13 milijoni slikovnih pik se uporablja za fotografiranje območja.

Komponente programske opreme za krmiljenje letenja so bile razvite v NASA JPL (Jet Propulsion Laboratory) za majhne in ultra-majhne umetne zemeljske satelite (cubesats) in so bile več let razvite kot del odprte platforme F Prime (F´), ki se distribuira pod Licenca Apache 2.0.

F Prime ponuja orodja za hiter razvoj sistemov za nadzor letenja in sorodnih vgrajenih aplikacij. Programska oprema za letenje je razdeljena na posamezne komponente z natančno definiranimi programskimi vmesniki. Poleg specializiranih komponent je na voljo ogrodje C++ z implementacijo funkcij, kot sta čakalna vrsta sporočil in večnitnost, ter orodja za modeliranje, ki omogočajo povezovanje komponent in samodejno ustvarjanje kode.

NASA je v raketi Ingenuity Mars uporabila Linux in odprtokodno programsko opremo


Vir: opennet.ru

Dodaj komentar