;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Homem de Ferro, é você? Como a SpaceX consegue pousar foguetes com precisão

Momento em que boosters do foguete Falcon Heavy, da SpaceX, pousam na Flórida (EUA) - SpaceX
Momento em que boosters do foguete Falcon Heavy, da SpaceX, pousam na Flórida (EUA) Imagem: SpaceX

Marcella Duarte e Simone Machado

De Tilt, em São Paulo; Colaboração para Tilt, em São José do Rio Preto (SP)

17/01/2023 10h28Atualizada em 18/01/2023 19h07

No último fim de semana, a SpaceX conseguiu fazer mais um pouso cinematográfico de dois propulsores que voltavam do espaço.

O Falcon Heavy, maior foguete da empresa, colocou em órbita um satélite para o exército dos EUA e, como já é praxe, as partes mais importantes dele retornaram à Terra, para que possam ser reaproveitadas.

Elon Musk, o CEO da SpaceX, compartilhou no Twitter um vídeo, filmado por um drone, dos propulsores aterrissando sincronizadamente em suas plataformas na costa da Flórida:

A missão USSF-67 decolou do Kennedy Space Center às 19h56 do domingo (15), levando uma carga confidencial da força aérea norte-americana, incluindo o instrumento de comunicação CBAS-2, capaz de retransmitir dados de outros satélites.

Este foi o quinto voo bem-sucedido do Falcon Heavy, que já foi considerado o foguete mais poderoso do mundo — em novembro de 2022, perdeu o posto para o SLS (Space Launch System do Sistema de Lançamento Espacial), usado na missão Artemis 1, da Nasa.

Por que a SpaceX faz pousos tão precisos

Diferente dos foguetes clássicos, de corpo único, o Falcon Heavy tem uma ajuda para sair do solo: dois propulsores, também chamados de boosters — aqueles foguetes mais curtos, que ficam um de cada lado do estágio principal (também chamado de primeiro).

Boa parte do impulso na decolagem vem deles, cada um com nove motores, que queimam enorme quantidade de combustível líquido. Após poucos minutos de subida, tendo cumprido sua tarefa, eles se soltam (para reduzir o peso) e caem de volta à Terra.

O foguete, então, segue viagem com o primeiro e o segundo estágios, além de sua carga (que podem ser satélites, um cápsula com suprimentos ou mesmo astronautas). Mais tarde, o estágio principal também volta para ser recuperado, da mesma maneira que os propulsores.

Assim, a única parte descartável, que vira lixo espacial, é o segundo estágio, que vai mais longe com a carga.

Isso acontece tanto com estes três propulsores do Falcon Heavy (dois boosters mais o estágio principal) quanto com o primeiro estágio do Falcon 9 — o outro foguete da empresa, menor, com "apenas" 9 motores e sem propulsores laterais, usado pela Nasa para transportar astronautas e cargas para a Estação Espacial Internacional.

Na verdade, todas estas partes são basicamente iguais — o Falcon Heavy, totalizando 27 motores, é como se fosse três Falcon 9 juntos (dois modificados para funcionarem como boosters e um "esticado" para ser o estágio principal).

Veja como o processo de recuperação é rápido e eficiente:

Um dos segredos do sucesso da SpaceX é conseguir recuperar estes componentes (importantes e caros, chegando a representar 80% do valor de um lançamento), o mais intactas possível, deixando as missões mais baratas e rápidas — já que não é preciso construir um foguete inteiro para a próxima.

Parece o Homem de Ferro

Depois de impulsionarem o lançamento, os dois propulsores laterais (no caso do Falcon Heavy) se soltam, se afastam do núcleo central, e se reorientam sozinhos para voltar à Terra.

Eles são programados para seguir um caminho — que pode ser uma plataforma em solo, como neste caso, ou um "navio-drone", no mar.

Durante a viagem de volta, realizam manobras para se manter na rota desejada. A descida é sempre bem vertical e controlada, graças ao uso de sensores e sistemas autônomos.

Há um sistema de navegação, auxiliado por GPS, que analisa a rota, posição, orientação e velocidade. Se o computador detecta desvios, instrui os propulsores a fazerem os ajustes necessários.

Ao se aproximarem do local de aterrissagem, eles reacenderam os motores, para reduzir ainda mais a velocidade, e liberam um tipo de trem de pouso — quatro "perninhas" de fibra de carbono e alumínio, que absorvem o impacto e garantem que o foguete não caia.

Segundo a empresa, a precisão é de 10 metros.

O mesmo vale para o estágio central do Falcon Heavy e para o primeiro estágio do Falcon 9. Veja um pousando em um dos três navios autônomos da SpaceX, batizado "Just Read the Instructions" (acabei de ler as instruções):

Depois de recuperados, os propulsores são recondicionados pela SpaceX, para que possam ser utilizados novamente.

Fruto de tecnologia de ponta, inovação e experiência (com muitos erros no caminho), foguetes parcialmente reutilizáveis são chave na nova era da exploração espacial.

Errata: este conteúdo foi atualizado
Diferentemente do informado, o foguete Falcon Heavy não utiliza propulsores sólidos.