Em 2023, a NASA lançará o VIPER (Volatiles Investigating Polar Exploration Rover), que percorrerá a superfície da Lua em busca de água em forma de gelo que poderia um dia ser usado para fazer combustível para foguetes. O rover estará equipado com os melhores instrumentos e ferramentas que a NASA pode oferecer: rodas que funcionam corretamente no solo lunar, uma furadeira que é capaz de cavar em superfície extraterrestre, hardware que pode sobreviver 14 dias numa noite lunar quando as temperaturas caem a -173 ° C.
Mas embora grande parte do VIPER seja único, feito sob medida para a missão, muito do software que está a executar é de código aberto, o que significa que está disponível para uso, modificação e distribuição por qualquer pessoa para qualquer propósito. Se for bem-sucedida, a missão pode significar mais do que apenas estabelecer as bases para uma futura colónia lunar — também pode ser um ponto de inflexão que faz com que a indústria espacial pense de forma diferente sobre como desenvolve e opera robôs.
A tecnologia de código aberto raramente vem à mente quando falamos sobre missões espaciais. É preciso uma enorme quantidade de dinheiro para construir algo que possa ser lançado ao espaço, chegar ao seu destino correto e, então, cumprir um conjunto específico de tarefas a centenas ou milhares (ou centenas de milhares) de quilómetros de distância. Manter o conhecimento sobre essas coisas perto do peito é uma inclinação natural. O software de código aberto, por sua vez, é mais comumente associado à programação fragmentada para projetos menores, como hackathons ou demonstrações de alunos. O código que preenche repositórios online como o GitHub costuma ser uma solução barata para grupos com pouco dinheiro e recursos necessários para construir o código do zero.
Mas a indústria espacial está a crescer, em grande parte porque há uma procura por maior acesso ao espaço. E isso significa o uso de tecnologias menos caras e mais acessíveis, incluindo software.
Mesmo para grupos maiores como a NASA, onde dinheiro não é um problema, a abordagem de código aberto pode acabar resultando em softwares mais fortes. “O software de voo agora, eu diria, é bastante medíocre no espaço”, diz Dylan Taylor, presidente e CEO da Voyager Space Holdings. (Veja o caso da falha do voo de teste do Starliner da Boeing em 2019, devido a falhas de software.) Se for de código aberto, os cientistas mais inteligentes ainda podem aproveitar a experiência e o feedback de uma comunidade maior se encontrar problemas, assim como os desenvolvedores amadores fazem.
Basicamente, se é bom o suficiente para a NASA, provavelmente deve ser bom o suficiente para qualquer outra pessoa que tente operar um robô neste planeta. Com um número cada vez maior de novas empresas e novas agências nacionais em todo o mundo a procurar lançar os seus próprios satélites e sondas no espaço, mantendo os custos baixos, um software de robótica mais barato que pode lidar com segurança com algo tão arriscado quanto uma missão espacial é uma grande dádiva.
O software de código aberto também pode ajudar a baratear o acesso ao espaço, pois leva a padrões que todos podem adotar e trabalhar. Pode eliminar os altos custos associados à codificação especializada. Estruturas de código aberto geralmente são algo com que os novos engenheiros também já trabalharam. “Se pudermos aproveitar isso e aumentar a linha de uso do que eles aprenderam na escola para o que usam em missões de voo, isso encurta a curva de aprendizagem”, diz Terry Fong, roboticista e chefe do Intelligent Robotics Group no Centro de Pesquisa Ames da NASA na Califórnia, e vice-líder do rover para a missão VIPER. “Isso torna as coisas mais rápidas para nós aplicarmos os avanços do mundo da pesquisa e utilizarmos nos voos”.
A NASA tem usado software de código aberto em muitos projetos de I&D por cerca de 10 a 15 anos — a agência mantém um catálogo muito extenso dos códigos abertos que tem usado. Mas o papel dessa tecnologia em robôs reais enviados ao espaço ainda é emergente. Um sistema que a agência testou é o Robot Operating System (ROS), uma coleção de estruturas de software de código aberto mantida e atualizada pela organização sem fins lucrativos Open Robotics, também sediada em Mountain View. O ROS já é usado no Robonaut 2, o robô humanoide que tem ajudado nas pesquisas na Estação Espacial Internacional (EEI), bem como nos robôs autónomos Astrobee que circulam pela EEI para ajudar os astronautas nas tarefas do dia a dia.
O robô Astrobee na Estação Espacial Internacional (EEI) funciona graças ao ROS.
NASA
O ROS estará a executar e a facilitar tarefas críticas para algo chamado “controlo de voo em solo”. O VIPER será conduzido pela equipa da NASA que estará na Terra. O controlo de voo terrestre pegará os dados coletados pelo VIPER para construir mapas em tempo real e representações do ambiente na lua que os motoristas do rover podem usar para navegar com segurança. Outras partes do software do rover também têm raízes de código aberto: funções básicas como telemetria e gestão de memória são administradas a bordo por um programa chamado core Flight System ( cFS ), desenvolvido pela própria NASA e disponível gratuitamente no GitHub. As operações da missão do VIPER fora do próprio rover são geridas pelo Open MCT, também criado pela NASA.
Comparado com Marte, o ambiente lunar é muito difícil de emular fisicamente na Terra, o que significa que testar os componentes de hardware e software de um rover não é fácil. Para esta missão, diz Fong, fazia mais sentido confiar em simulações digitais que pudessem testar muitos dos componentes do rover — e isso incluía o software de código aberto.
Outra razão pela qual a missão se presta ao uso de software de código aberto é que a Lua está perto o suficiente para o controlo quase em tempo real do rover, o que significa que parte do software pode ser executado na Terra.
“Decidimos dividir o cérebro do robô entre a Lua e a Terra”, diz Fong. “E assim que fizemos isso, abriu-se a possibilidade de que possamos usar software que não seja limitado pela computação de voo com alta resistência à radiação — mas, em vez disso, podemos apenas usar desktops comerciais convencionais. Assim, podemos fazer uso de tecnologias como o ROS no solo, algo usado por tantas pessoas tão regularmente. Não temos que depender apenas de um software personalizado”.
O VIPER não está a correr software 100% em código-aberto — o seu sistema de voo a bordo, por exemplo, usa software proprietário extremamente confiável. Mas é fácil ver futuras missões adotando e expandindo o que o VIPER irá executar. “Suspeito que talvez o próximo rover da NASA utilize o Linux”, refere Fong.
Nunca será possível usar software de código aberto em todos os casos. As preocupações com a segurança podem ser um problema e podem fazer com que alguns grupos se atêm inteiramente à tecnologia proprietária (embora uma vantagem das plataformas de código aberto é que os programadores costumam ser muito públicos sobre como encontrar falhas e propor correções). E Fong também enfatiza que algumas missões sempre serão muito especializadas ou avançadas para depender tão severamente de tecnologia de código aberto.
Ainda assim, não é apenas a NASA que está a voltar-se para a comunidade de código aberto. A Blue Origin anunciou recentemente uma parceria com vários grupos da NASA para “codificar inteligência robótica e a autonomia” construída a partir de estruturas de código aberto (a empresa se recusou a fornecer detalhes). Iniciativas menores como a Libre Space Foundation com base na Grécia, que fornece hardware e software de código aberto para pequenas atividades de satélites, devem ganhar mais atenção à medida que os voos espaciais continuam a ficar mais baratos. “Há um efeito dominó nisso”, diz Brian Gerkey, CEO da Open Robotics. “Uma vez que tem uma grande organização como a NASA a dizer publicamente, ‘Estamos muito dependentes deste software’, então outras organizações estão dispostas a arriscar e se aprofundar e fazer o trabalho necessário para que funcione para elas também”.
Artigo de Neel V. Patel, Space Reporter – MIT Technology Review EUA