Quando a Crew Dragon da SpaceX levou os astronautas da NASA para a Estação Espacial Internacional (EEI) perto do final de maio, o lançamento trouxe de volta uma situação familiar. Pela primeira vez desde que o ônibus espacial foi aposentado, foguetes americanos estavam sendo lançados do solo americano para levar os americanos ao espaço.
No interior do veículo, no entanto, as coisas não poderiam ter sido mais diferentes. O amplo painel de luzes, interruptores e botões que dominavam o interior do ônibus espacial desapareceu. Tudo foi substituído por um console futurista com muitas telas grandes sensíveis ao toque exibindo displays diferentes. Por trás dessas telas, o veículo funciona por um software projetado para entrar no espaço e navegar para a estação espacial de forma totalmente autônoma.
“Durante toda minha carreira de piloto tive uma certa maneira de controlar um veículo – isso é certamente diferente”, disse Doug Hurley aos telespectadores da NASA pouco antes da missão SpaceX. Ao invés de depender de uma mão humana no controle, a navegação agora consiste em uma série de entradas predeterminadas. Os astronautas da SpaceX ainda podem estar envolvidos na tomada de decisões em momentos críticos, mas grande parte dessa função saiu de suas mãos.
Isso importa? Os softwares nunca desempenharam papel tão crítico na história dos voos espaciais. Tornou-os mais seguros e eficientes, permitindo que uma espaçonave se ajustasse automaticamente às condições variáveis. De acordo com Darrel Raines, um engenheiro da NASA que lidera o desenvolvimento de software para a cápsula espacial Orion, a autonomia é particularmente importante os “tempos críticos de resposta” – como a subida de um foguete após a decolagem, quando um problema poderia exigir o início de uma sequência de interrupção em uma questão de segundos. Ou nos casos em que a tripulação pode estar incapacitada por algum motivo.
E o aumento da autonomia é praticamente essencial para que algumas formas de voo espacial funcionem. A Ad Astra é uma empresa com sede em Houston que busca viabilizar a tecnologia de propulsão de foguetes à plasma. O mecanismo experimental usa plasma feito de gás argônio, que é aquecido por ondas eletromagnéticas. Um processo de “ajuste” supervisionado pelo software do sistema calcula automaticamente as frequências ideais para esse aquecimento. O motor chega à potência máxima em apenas alguns milissegundos. “Não há como um humano responder a algo assim a tempo”, diz o CEO Franklin Chang Díaz, ex-astronauta que voou em várias missões de ônibus espaciais de 1986 a 2002. Algoritmos no sistema de controle são usados para reconhecer as condições variáveis no foguete enquanto ele se move pela sequência de inicialização – e age de acordo. “Não conseguiríamos fazer nada disso sem os softwares”, diz ele.
Mas contar demais com software e sistemas autônomos em voos espaciais cria oportunidades para que surjam problemas. Isso é uma preocupação especialmente para muitos dos novos concorrentes da indústria espacial, que não estão necessariamente acostumados ao tipo de teste abrangente e agressivo necessário para eliminar problemas de software e, além disso, ainda estão tentando encontrar um bom equilíbrio entre automação e controle manual.
O ônibus espacial Atlantis tinha um painel mais tradicional para os pilotos utilizarem.
A cápsula da Crew Dragon substitui os botões e interruptores por grandes telas sensíveis ao toque.
Atualmente, alguns erros em mais de um milhão de linhas de código podem significar a diferença entre o sucesso e o fracasso da missão. Vimos isso no final do ano passado, quando a cápsula Starliner da Boeing (o outro veículo que a NASA conta para enviar astronautas americanos ao espaço) não conseguiu chegar à EEI por uma falha no temporizador interno. Um piloto humano poderia ter corrigido a falha que acabou queimando os propulsores da Starliner prematuramente. O administrador da NASA, Jim Bridenstine, comentou logo após os problemas da Starliner: “Se tivéssemos um astronauta a bordo, poderíamos muito bem já estarmos na Estação Espacial Internacional no momento”.
Mais tarde, porém, foi revelado que outros erros no software não haviam sido detectados antes do lançamento, incluindo um que poderia ter levado à destruição da espaçonave. E isso era algo que membros da tripulação humana poderiam facilmente ter corrigido.
A Boeing certamente não é estranha à construção e teste de tecnologias de voos espaciais, por isso foi uma surpresa ver a empresa falhar em resolver esses problemas antes do voo de teste da Starliner. “Defeitos de software, particularmente em códigos de naves espaciais complexas, não são inesperados”, disse a NASA quando a segunda falha foi tornada pública. “No entanto, houve vários casos em que os processos de qualidade do software da Boeing deveriam ou poderiam ter descoberto os defeitos”. A Boeing recusou comentar a situação.
Segundo Luke Schreier, vice-presidente e gerente geral de aeroespacial da NI (anteriormente National Instruments), os problemas no software são inevitáveis, seja em veículos autônomos ou em naves espaciais. “A vida é assim,” diz ele. A única solução real é realizar testes de forma ativa com antecedência para encontrar esses problemas e corrigi-los: “Você precisa ter um programa de teste de software realmente rigoroso para encontrar os erros que inevitavelmente estarão lá”.
A Inteligência Artificial (IA) em ação
O espaço, no entanto, é um ambiente único para se testar. As condições que uma espaçonave encontrará não são fáceis de imitar em terra. Embora um veículo autônomo possa ser retirado do simulador e levado a condições mais tranquilas do mundo real para refinar o software aos poucos, você não pode fazer o mesmo com um veículo de lançamento. Lançamento, voo espacial e retorno à Terra são ações que acontecem ou não – não existe uma versão “tranquila”.
É por isso, diz Schreier, que a IA é tão importante nos voos espaciais hoje em dia – você pode desenvolver um sistema autônomo capaz de antecipar essas condições, em vez de exigir que elas sejam aprendidas durante uma simulação específica. “Você não poderia de forma alguma simular sozinho todas as situações do novo hardware que está sendo projetado”, diz ele.
Portanto, para alguns grupos, testar o software não é apenas uma questão de encontrar e corrigir erros no código; também é uma maneira de treinar software orientado por IA. Veja a Virgin Orbit, por exemplo, que recentemente tentou enviar seu veículo LauncherOne para o espaço pela primeira vez. A empresa trabalhou com a NI para desenvolver uma bancada de testes que envolvia todos os sensores e aviônicos do veículo com o software destinado a executar uma missão em órbita (até o comprimento exato da fiação usada no veículo). Quando o LauncherOne estava pronto para voar, parecia que já havia estado no espaço milhares de vezes, graças aos testes, e já havia enfrentado muitos tipos diferentes de cenários.
Obviamente, o primeiro voo de teste do LauncherOne falhou, por razões que ainda não foram divulgadas. Se foi devido a limitações de software, a tentativa é mais um sinal de que há um limite de quanto uma IA pode ser treinada para enfrentar as condições do mundo real.
Raines acrescenta que, em contraste com a abordagem mais lenta adotada pela NASA para testes, as empresas privadas são capazes de atuar muito mais rapidamente. Para alguns, como a SpaceX, isso funciona bem.
Para outros, como a Boeing, isso pode levar a alguns contratempos surpreendentes. Por fim, “a pior coisa que você pode fazer é tornar algo totalmente manual ou completamente autônomo”, diz Nathan Uitenbroek, outro engenheiro da NASA que trabalha no desenvolvimento de software da Orion. Os seres humanos devem poder intervir se o software estiver com problemas ou se a memória do computador for destruída por um evento imprevisto (como uma explosão de raios cósmicos). Mas eles também contam com o software para informá-los quando outros problemas surgirem.
A NASA está acostumada a descobrir esse equilíbrio e incorpora redundâncias em seus veículos tripulados. O ônibus espacial operava com vários computadores que usavam o mesmo software e, se um tivesse um problema, os outros poderiam assumir o controle. Um computador separado rodava um software totalmente diferente, para que pudesse assumir o controle de toda a espaçonave se uma falha sistêmica estivesse afetando as outras. Raines e Uitenbroek dizem que a mesma redundância é usada no Orion, que também inclui uma camada de função automática que ignora o software inteiramente para funções críticas como liberação de paraquedas.
Na Crew Dragon, há casos em que os astronautas podem iniciar manualmente sequências de interrupções e podem substituir o software com base em novas entradas. Mas o design desses veículos significa que agora é mais difícil para o ser humano assumir o controle completo. O console da tela sensível ao toque ainda está vinculado ao software da espaçonave, e você não pode ignorá-lo completamente quando quiser assumir o controle da nave, mesmo em uma emergência.
Não há consenso sobre até que ponto o papel humano nos voos espaciais irá – ou deve – encolher. Uitenbroek acha que tentar desenvolver um software que possa responder a todas as contingências possíveis é simplesmente impraticável, especialmente quando você tem prazos a cumprir.
Chang Díaz discorda, dizendo que o mundo está mudando “para um ponto em que, eventualmente, o humano será retirado da equação”.
Qual enfoque é o vencedor pode depender do nível de sucesso alcançado pelas diferentes partes que enviam as pessoas para o espaço. A NASA não tem a intenção de tirar os seres humanos da equação, mas se as empresas comerciais acharem mais fácil minimizar o papel do piloto humano e deixar a IA assumir o controle, então as telas sensíveis ao toque e os voos autônomos para a EEI são apenas uma amostra do que nos espera.