NASA gebruikte Linux en open source software in de Ingenuity Mars-raket

Vertegenwoordigers van het NASA-ruimtevaartagentschap onthulden in een interview met Spectrum IEEE details over de interne onderdelen van de autonome verkenningshelikopter Ingenuity, die gisteren met succes op Mars landde als onderdeel van de Mars 2020-missie. Bijzonder aan het project was het gebruik van een besturingskaart op basis van de Snapdragon 801 SoC van Qualcomm, die wordt gebruikt bij de productie van smartphones. De software van Ingenuity is gebaseerd op de Linux-kernel en open source vliegsoftware. Opgemerkt wordt dat dit het eerste gebruik van Linux is in apparaten die naar Mars worden gestuurd. Bovendien maakt het gebruik van open source software en algemeen verkrijgbare hardwarecomponenten het voor geïnteresseerde enthousiastelingen mogelijk om zelf soortgelijke drones in elkaar te zetten.

Deze beslissing is te wijten aan het feit dat het besturen van een vliegende drone aanzienlijk meer rekenkracht vergt dan het besturen van een Marsrover, die is uitgerust met speciaal vervaardigde chips met extra stralingsbescherming. Voor het in stand houden van de vlucht is bijvoorbeeld een regellus nodig die draait met 500 cycli per seconde en beeldanalyse met 30 frames per seconde.

De Snapdragon 801 SoC (quad core, 2.26 GHz, 2 GB RAM, 32 GB Flash) voedt de kern-Linux-gebaseerde systeemomgeving, die verantwoordelijk is voor bewerkingen op hoog niveau, zoals visuele navigatie op basis van camerabeeldanalyse, gegevensbeheer, verwerking commando's, het genereren van telemetrie en het onderhouden van een draadloos communicatiekanaal.

De processor is via een UART-interface verbonden met twee microcontrollers (MCU Texas Instruments TMS570LC43x, ARM Cortex-R5F, 300 MHz, 512 KB RAM, 4 MB Flash, UART, SPI, GPIO), die vluchtcontrolefuncties uitvoeren. Er worden twee microcontrollers gebruikt voor redundantie bij uitval en ze ontvangen identieke informatie van de sensoren. Er is slechts één microcontroller actief, de tweede wordt als reserve gebruikt en kan bij een storing de controle overnemen. De MicroSemi ProASIC3L FPGA is verantwoordelijk voor het verzenden van gegevens van de sensoren naar de microcontrollers en voor de interactie met de actuatoren die de blades aansturen, die bij een storing ook overschakelt naar een reserve-microcontroller.

NASA gebruikte Linux en open source software in de Ingenuity Mars-raket

Onder de apparatuur maakt de drone gebruik van een laserhoogtemeter van SparkFun Electronics, een bedrijf dat open-source hardware produceert en een van de makers is van de definitie van open-source hardware (OSHW). Andere typische componenten zijn de cardanische stabilisator (IMU) en videocamera's die in smartphones worden gebruikt. Eén VGA-camera wordt gebruikt om de locatie, richting en snelheid te volgen via frame-voor-frame vergelijking. De tweede 13 megapixel kleurencamera wordt gebruikt om foto's van de omgeving te maken.

De componenten voor de vluchtbesturingssoftware zijn ontwikkeld door NASA JPL (Jet Propulsion Laboratory) voor kleine en ultrakleine kunstmatige aardsatellieten (cubesats) en worden al enkele jaren ontwikkeld als onderdeel van het open platform F Prime (F´), gedistribueerd onder de Apache 2.0-licentie.

F Prime biedt tools voor de snelle ontwikkeling van vluchtcontrolesystemen en gerelateerde embedded applicaties. De vluchtsoftware is onderverdeeld in afzonderlijke componenten met goed gedefinieerde programmeerinterfaces. Naast gespecialiseerde componenten wordt een C++-framework aangeboden met de implementatie van functies als message queuing en multithreading, evenals modelleringstools waarmee u componenten kunt verbinden en automatisch code kunt genereren.

NASA gebruikte Linux en open source software in de Ingenuity Mars-raket


Bron: opennet.ru

Voeg een reactie