Explorando o software que faz voar os foguetes e naves espaciais da SpaceX

O voo espacial, desde o início, dependeu de computadores - tanto no solo quanto na espaçonave. SpaceX levou isso a um novo nível.

Recentemente, conversamos com Steven Gerding, líder de desenvolvimento de software da Dragon, sobre os desafios especiais que o desenvolvimento de software tem para as muitas missões da SpaceX.

 

O voo espacial, desde o início, dependeu de computadores - tanto no solo quanto na espaçonave. SpaceX levou isso a um novo nível. Recentemente, conversamos com Steven Gerding, líder de desenvolvimento de software da Dragon, sobre os desafios especiais que o desenvolvimento de software tem para as muitas missões da SpaceX.

 

Em 23 de abril de 2021, a SpaceX e a NASA lançaram a segunda missão operacional do Dragon (Crew-2) para a Estação Espacial Internacional, tornando-se a primeira missão de vôo espacial humano a voar astronautas em um Falcon 9 e Dragon comprovado em vôo. Aproximadamente 24 horas depois, o Dragon atracou autonomamente com a Estação, tornando-se a primeira vez que dois Dragões de Tripulação foram anexados simultaneamente ao laboratório orbital. Isso marca o início de uma nova era para a SpaceX, em que terá como objetivo levar astronautas rotineiramente para a ISS.

 

O trabalho real de desenvolvimento de software por engenheiros de veículos como Gerding é em grande parte feito usando C ++, que tem sido o esteio do código da empresa desde seus primeiros dias. O software lê arquivos de configuração baseados em texto. “Nós inventamos linguagens específicas de domínio simples para expressar essas coisas, de modo que outros engenheiros da empresa que não são engenheiros de software possam configurá-lo.”

 

O software de voo para foguetes da SpaceX é estruturado em torno do conceito de ciclo de controle. “Você lê todas as suas entradas: sensores que lemos por meio de um ADC, pacotes da rede, dados de uma IMU, atualizações de um rastreador de estrelas ou sensor de orientação, comandos do solo”, explica Gerding. “Você faz alguns processamentos para determinar seu estado, como onde você está no mundo ou o status do sistema de suporte de vida. Isso determina suas saídas - você as escreve, espera até o próximo tique do relógio e, em seguida, faz tudo de novo. ”

 

O ciclo de controle destaca alguns dos requisitos de desempenho do software. “No Dragon, alguns computadores rodam [o ciclo de controle] a 50 Hertz e alguns rodam a 10 Hertz. O computador de vôo principal funciona a 10 Hertz. Isso é gerenciar a missão geral e enviar comandos para os outros computadores. Alguns deles precisam reagir mais rápido a certos eventos, então eles funcionam a 50 Hertz. ”

 

Existe uma grande variedade de máquinas se comunicando com o sistema de vôo central. “Temos entradas de sensores em todo o veículo, todos os tipos de sensores diferentes.” Muitos estão medindo valores internos críticos para a saúde do navio e da tripulação. “As temperaturas são importantes. Para veículos com tripulação, temos sensores de oxigênio e dióxido de carbono, sensores de pressão da cabine e coisas assim. ” 

 

Outro conjunto de sensores olha externamente para auxiliar na navegação e telemetria. “Isso seria como o IMU, GPS e rastreadores de estrelas.” Uma vez que estão perto o suficiente da estação espacial, eles também usam telêmetros a laser.

 

O outro lado do ciclo de controle são as saídas. “Existem dois tipos diferentes de saídas. Uma é realmente 'abrir ou fechar uma válvula' ou 'ligar ou desligar uma chave'. ' O outro é a telemetria, que é basicamente um fluxo de pares de valores-chave que, a cada 20 a 100 milissegundos, informam o valor de uma determinada coisa. ”

 

Às vezes, os resultados vêm diretamente dos sensores como dados brutos. Mas outras vezes, o processamento está envolvido. “Pode ser algum tipo de valor calculado do software, como o valor atual para nossa máquina de estado ou o resultado de um algoritmo que irá gerar uma saída.”

 

Quando o veículo está no solo, os dados passam por uma conexão com fio que fornece uma alta taxa de dados. “Assim que decolar, existem diferentes sistemas de comunicação onde podemos canalizar vários subconjuntos dessa telemetria para o solo.” Uma vez que chega ao solo, existem sistemas que permitem que os operadores olhem para os valores instantâneos e tomem decisões em termos de comando do veículo. Também existe um sistema que armazena dados críticos para a posteridade, algo que é muito importante quando você planeja reutilizar foguetes e ônibus espaciais em missões futuras.

 

O Dragon atualmente atraca de forma autônoma na Estação Espacial Internacional e, em última análise, o objetivo é que o veículo seja totalmente autônomo. “Temos a capacidade dos astronautas de assumir o controle e dirigir o veículo, se necessário - essa foi uma capacidade que demonstramos na missão Dragon Demo-2”, disse Gerding.

 

Perguntamos o que acontece se houver um mau funcionamento. “É mais óbvio, eu acho, o que fazer quando há falhas de hardware. Temos cópias do hardware, seja o hardware do computador ou os sensores ou atuadores, e assim detectamos essas falhas e o tipo de rota em torno delas. ”

 

Gerding aponta que não há como proteger contra qualquer bug de software arbitrário. “Tentamos projetar o software de forma que, se ele falhar, o impacto dessa falha seja mínimo.” Por exemplo, se um erro de software surgisse no sistema de propulsão, isso não afetaria o sistema de suporte de vida ou a capacidade do sistema de orientação de dirigir a espaçonave e vice-versa. “Isolar os diferentes subsistemas é a chave.”

 

O software é projetado defensivamente, de forma que mesmo dentro de um componente, o SpaceX tenta isolar os efeitos dos erros. “Estamos sempre verificando códigos de erro e valores de retorno. Também temos a capacidade de os operadores ou a equipe substituirem diferentes aspectos do algoritmo. ”

 

Uma grande parte do processo total de desenvolvimento de software é a verificação e validação. “Escrever o software é uma pequena porcentagem do que realmente vai para deixá-lo pronto para voar no veículo espacial.”

 

Com a primeira missão de demonstração (Demo-1) que foi para a estação espacial, o software foi exigido pela NASA para ser tolerante a quaisquer duas falhas no sistema. “Implementamos essa arquitetura de computador de cadeia tripla e precisávamos do sistema para conduzi-la.” Gerding tinha alguma experiência em sistemas distribuídos de trabalhar no Google anteriormente, o que o tornava uma boa pessoa para a nova tarefa. “Havia apenas 10 pessoas na equipe de software naquela época. Eu peguei e fui com ele. Acho esse tipo de coisa, sistemas distribuídos, muito interessante. ”

 

Os requisitos de tempo de atividade eram tratados de maneira diferente no Google. “Você realmente gostaria que seu processo falhasse, se algo anômalo acontecesse. Era um dos milhares de processos semelhantes que seriam reiniciados. Se você obtivesse o suficiente dessas falhas, seria avisado e poderia passar algum tempo descobrindo qual era o problema e criando uma solução para resolvê-lo. ”

 

No Google, esses contratempos foram um sinal útil em meio ao barulho. Mas essa abordagem não funciona para foguetes tripulados. “Na SpaceX, realmente não queremos que nossos processos falhem como resultado de uma falha de software. Preferimos simplesmente continuar com o resto do software que realmente não é afetado por essa falha. Ainda precisamos saber sobre essa falha e é aí que entra a telemetria, mas queremos que as coisas continuem, controlando-as da melhor maneira que pudermos. ”

 

Há muito mais trabalho envolvido na elaboração do código que colocou Bebê Yoda no espaço em novembro passado. Teremos outro artigo sobre seus satélites de internet baseados no espaço, Starlink, amanhã. Se você quiser saber mais sobre como é trabalhar como engenheiro de veículos no Space X, verifique a página de carreiras deles.

 

 

O Avance Network é uma comunidade fácil de usar que fornece segurança de primeira e não requer muito conhecimento técnico. Com uma conta, você pode proteger sua comunicação e seus dispositivos. O Avance Network não mantém registros de seus dados; portanto, você pode ter certeza de que tudo o que sai do seu dispositivo chega ao outro lado sem inspeção.


Strong

5178 بلاگ پوسٹس

تبصرے