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 vaivém espacial foi reformado, foguetões (americanos) estão a ser lançados (do solo americano) para levar os americanos ao espaço.
No entanto, no interior do vaivém, as coisas não poderiam ter sido mais diferentes. O amplo painel de luzes, interruptores e botões que dominavam o interior do vaivém espacial desapareceu. Tudo foi substituído por uma consola futurista com várias telas de grande dimensão sensíveis ao toque, com displays diferentes. Por trás dessas telas, o veículo funciona através de um software projetado para entrar no espaço e navegar para a estação espacial de forma totalmente autónoma.
“Durante toda a minha carreira de piloto tive uma certa maneira de controlar um veículo – isto é certamente diferente”, disse Doug Hurley aos telespectadores da NASA pouco antes da missão SpaceX. Em vez de depender de uma mão humana no controlo, a navegação agora consiste numa 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 das suas mãos.
Por que razão é isto importante? Os softwares nunca desempenharam um papel tão crítico na história dos voos espaciais. Tornaram-nos mais seguros e eficientes, permitindo que uma nave espacial 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 nos “tempos críticos de resposta” – como a subida de um foguetão após a descolagem, quando um problema poderia exigir o início de uma sequência de interrupção numa 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 procura viabilizar a tecnologia de propulsão de foguetões a 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 vaivéns espaciais de 1986 a 2002. Algoritmos no sistema de controlo são usados para reconhecer as condições variáveis no foguetão enquanto se move pela sequência de inicialização – e age de acordo. “Não conseguiríamos fazer nada disto sem os softwares”, diz ele.
Mas contar demasiado 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 a tentar encontrar um bom equilíbrio entre automação e controlo manual.
A nave espacial Atlantis tinha um painel mais tradicional para os pilotos utilizarem.
A cápsula da Crew Dragon substitui os botões e interruptores por telas de grande dimensão sensíveis ao toque.
Atualmente, erros (mesmo que poucos) 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 em que a NASA irá 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 por queimar 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 já estar na Estação Espacial Internacional neste momento”.
Mais tarde, porém, foi revelado que outros erros no software não tinham sido detectados antes do lançamento, incluindo um que poderia ter levado à destruição da nave. E isso era algo que os membros da tripulação humana poderiam facilmente ter corrigido.
A Boeing certamente não é estranha à construção e ao 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: “É preciso 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 testes. As condições que uma nave espacial 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, não se 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 – pode-se desenvolver um sistema autónomo capaz de antecipar essas condições, em vez de exigir que sejam aprendidas durante uma simulação específica. “Não seria possível, de forma alguma, alguém simular sozinho todas as situações do novo hardware que está a ser 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 o LauncherOne para o espaço pela primeira vez. A empresa trabalhou com a NI para desenvolver um conjunto de testes que envolvia todos os sensores e anió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 alguém 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 nos seus veículos tripulados. A nave espacial operava com vários computadores que usavam o mesmo software e, se um tivesse um problema, os outros poderiam assumir o controlo. Um computador separado rodava um software totalmente diferente, para que pudesse assumir o controlo de toda a nave espacial se uma falha sistémica estivesse a afetar 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 controlo completo. A consola da tela sensível ao toque ainda está a ser vinculada ao software da nave espacial, e ninguém pode ignorá-lo completamente quando quiser assumir o controlo da nave, mesmo numa 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 existem prazos a cumprir.
Chang Díaz discorda, e diz que o mundo está a mudar “para um ponto em que, eventualmente, o humano será retirado da equação”.
A perspectiva vencedora 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 controlo, 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.
Artigo de Neel V. Patel, Team – MIT Technology Review EUA