VĂdeos de vĂŽo com telemetria

A parte da edição do vĂdeo
Tomou-me aproximadamente 18 horas de trabalho para levar do estado onde eu nĂŁo sabia nada atĂ© o estado atual: eu estava muito curioso para saber como fazer, apĂłs ver um vĂdeo da Garmin (aqueles caras do GPS). Eles criaram um software que anexa os metadados dos arquivos da cĂąmera no vĂdeo final. Isso foi uma coisa que eu sempre quis fazer porque assistir aos vĂdeos com esses dados depois me faz ver quais sĂŁo os reflexos que a direção do drone causam no vĂdeo (Ă© como ver vocĂȘ mesmo apresentando algo).
Eu entrei no Mavic Pilots, vi alguns posts de telemetria e vi que alguns caras de lĂĄ usam um software pra Windows chamado Dashware, que infelizmente sĂł roda em Windows. Sem problemas: particionei meu Mac com BootCamp, instalei Windows 10 numa partição separada e o instalei o tal do Dashware. Acontece que os caras da GoPro compraram a Dashware e eu acho que eles contrataram os desenvolvedores para fazer algo para o drone deles - o GoPro Karma. EntĂŁo o suporte do Dashware parou hĂĄ um tempo atrĂĄs e atualmente o software se encontra num estado meio lastimĂĄvel de bugs e cracas as quais vocĂȘ precisa remover algumas DLLs, se fuder com codecs e fazer uma certa magia negra pra funcionar, a parte ruim do Dashware Ă© que mesmo caso ele funcione, ele sĂł suporta 1080p. Teve um dia que eram por volta de 2 da manhĂŁ, eu perdi 2 horas fazendo os ponteiros e velocĂmetros e com um projeto nĂŁo salvo o software trava quando eu tento renderizar, me lembrando os tempos onde eu perdia horas de trabalho por causa de softwares que travavam na dĂ©cada de 90.
Bom, apĂłs perder cerca de 8 horas com o Dashware e tentando fazer ele funcionar na minha mĂĄquina Windows, eu desisti e passei alguns dias pesquisando se havia alguma outra maneira de colocar a bendita telemetria nos arquivos de vĂdeo - Ă© uma coisa que nĂŁo deveria ser difĂil. EntĂŁo eu descobri um novo software chamado RaceRender, vi alguns vĂdeos no YouTube de alguns caras que usaram esse software, escrevi pra eles, adicionei no Facebook, troquei experiĂȘncias - um deles Ă© um professor de matemĂĄtica chamado Robert que me ajudou bastante na minha jornada pelos gauges, ele compartilhou comigo o template dele (que por sinal Ă© incrĂvel e contĂ©m muitas informaçÔes, mas eu ainda achava que era capaz de fazer algo do zero.
Como um primeiro teste, eu cheguei no resultado abaixo. Eu tava muito feliz com o software mas nĂŁo queria começar a fazer o design dos ponteiros sem ter certeza que o software nĂŁo iria travar me fazendo perder valiosas horas de trabalho, como Dashware. Eu vi que o RaceRender era muito estĂĄvel e o framerate tambĂ©m era muito bom, dessa maneira eu senti confiança para continuar âperdendo meu tempoâ. Porque uma coisa Ă© quando vocĂȘ trabalha no software de edição de vĂdeo, outra coisa Ă© quando vocĂȘ renderiza o vĂdeo e vĂȘ o trabalho final. A telemetria no vĂdeo abaixo começa aos 0:10.
A idĂ©ia desse vĂdeo era somente checar o poder do RaceRender, os ponteiros nĂŁo estĂŁo tĂŁo bonitos, para ver o resultado final que eu consegui chegar, continue lendo.
EntĂŁo eu estava decidido, com os resultados acima eu comprei o RaceRender ($50) e comecei o desenvolvimento do layout dos gauges. O sofrware Ă© um daqueles softwares em Java que tem a interface feia, Ă© para uso profissional e lembra um pouco o Final Cut Pro antes do refactoring da UI feita pela Apple, mas o que importa Ă© que o software permite 100% de customização dos ponteiros e gauges que vocĂȘ cria, vocĂȘ pode atĂ© mesmo ter acesso ao cĂłdigo fonte dos gauges para deixar do jeitinho que vocĂȘ quiser - totalmente formidĂĄvel para mim.
Ontem eu passei por volta de 6 horas trabalhando no layout dos gauges e indicadores para mostrar no vĂdeo, eles tĂȘm cores diferentes, formas diferentes e mudam de cor de acordo com o valor da medição. Inicialmente eu criei um vĂdeo verde limĂŁo no Final Cut Pro pra usar como o canal do Chroma Key, e usei esse vĂdeo como background no RaceRender para ter os gauges em cima dele, entĂŁo exportei o vĂdeo verde com os gauges em cima para usar meu vĂdeo original no FCPX por detrĂĄs do Chroma Key e ativar o canal verde, mas alguns gauges (todos) possuiam transparĂȘncia, a qual eu nĂŁo queria abrir mĂŁo, e essa transparĂȘncia acabava injetando conteĂșdo verde nos gauges. Acabou que eu desisti da idĂ©ia de fazer com Chroma Key e o que fiz foi editar o vĂdeo por completo no FCPX pra entĂŁo pegar o arquivo e colocar no RaceRender, usando sua prĂłpria ferramenta de sync entre o meu arquivo editado no FCPX e os gauges - sem chroma key :(
A parte boa do RaceRender Ă© que, como eu disse acima, Ă© totalmente customizĂĄvel, eu peguei o Ăcone de uma bĂșssola de um Cessna, joguei no Photoshop e criei o instrumento de bĂșssola no RaceRender, rotacionando o aviĂŁo de acordo com a orientação do drone.
AtĂ© que meu amigo Bruno me deu a sugestĂŁo pra substituir o Ăcone do Cessna pelo Ăcone do Mavic, ok!
E o resultado final do gauge no vĂdeo, fica maravilhoso:
A parte do drone:
Ok, a essa altura vocĂȘ deve estar se perguntando como eu faço para obter as informaçÔes do vĂŽo para colocar no vĂdeo, certo?
O drone manda as informaçÔes do vĂŽo para o DJI Go mobile app, e Ă© por ele que vocĂȘ pode obter o arquivo com os dados da telemetria, vocĂȘ pode achar essa informação em Flight Records, no aplicativo pra celular da DJI, e rola de exportar esse arquivo. Tem uma opção âexportâ no DJI Mobile App que salva as informaçÔes na pasta do telefone, daĂ vocĂȘ pode pegar esse arquivo manualmente com o iTunes plugando um cabo USB, o que dĂĄ muito trabalho. Ou vocĂȘ pode usar um outro app chamado HDSync, disponĂvel pra iPhone e Android, nesse App vocĂȘ coloca suas credenciais de login da DJI e faz o upload dos logs de vĂŽo direto da cloud da DJI pra um site chamado healthydrones.com, que foi comprado pela empresa AirData.
AirData Ă© um site muito interessante que te dĂĄ estatĂsticas sobre os seus vĂŽos usando dados coletados pelo DJI Go App. Esse site permite que vocĂȘ baixe os arquivos CSV que contĂ©m os dados dos seus vĂŽos (aqueles que foram exportados seguindo as instruçÔes do parĂĄgrafo acima). E adivinha? O RaceRender aceita esses arquivos CSV como input, que contĂ©m todos os dados do vĂŽo. EntĂŁo com esse arquivo CSV contendo os dados do vĂŽo (tambĂ©m conhecido como âTelemetriaâ), eu carrego no RaceRender junto com o meu arquivo de vĂdeo. O RaceRender tambĂ©m tem uma ferramenta dentro dele prĂłprio pra fazer a sincronia entre o arquivo de telemetria e o vĂdeo.
EntĂŁo, o resumo das ferramentas:
- DJI Go mobile App Ă© o aplicativo que vocĂȘ usa no seu celular quando voa.
- HDSync Ă© um outro aplicativo pra celular que te ajuda na manobra de transferir manualmente os arquivos via iTunes, ele joga pro AirData.
- AirData Ă© o site/empresa que contĂ©m estatĂsticas dos seus vĂŽos e permite vocĂȘ exportar arquivos CSV.
- RaceRender Ă© um software de vĂdeo que renderiza seu vĂdeo original e a telemetria com os medidores e ponteiros que vocĂȘ cria, alimentados pelo arquivo CSV.
O RaceRender tem um editor gråfico dos ponteiros e medidores que ajudam bastante no desenvolvimento das peças. Essa imagem abaixo é de quando eu estava desenvolvendo o indicador de bateria - foi desafiador porque as mediçÔes nesse caso são decrescentes: de 100 pra 0, e não de 0 pra 100.
Uma coisa boa do RaceRender Ă© que ele suporta vĂdeos 4K e peças de alta definição tambĂ©m. Meu MacBook pessoal Ă© um MacBook Pro 2.7Ghz 16GB RAM 512SSD, comprado em 2013, e levou aproximadamente 40 minutos para renderizar um vĂdeo 4K com 18 minutos de duração - nada mal. Mas eu tĂŽ curioso pra saber quanto tempo isso levaria para rodar numa instĂąncia p2.16xlarge da AWS, que tem umas placas de vĂdeo NVidia Tesla, mas a instĂąncia custa $16 por hora e nĂŁo quero/posso usar minha conta de funcionĂĄrio para esses propĂłsitos, entĂŁo rodei no meu MacBook mesmo :)
Curiosidades extras
Eu tambĂ©m descobri que nossos drones Mavic Pro tem um OUTRO cartĂŁo micro-SD dentro. Ă um cartĂŁo de 4GB COLADO na placa-mĂŁe do drone, que a DJI usa pra gravar informaçÔes dos vĂŽos. Esses sĂŁo arquivos binĂĄrios e vocĂȘ pode usar um aplicativo de linha de comando pra ler esses arquivos e exportar o CSV. Esse cartĂŁo interno Ă© como se fosse a caixa preta do drone e esses arquivos DAT contĂ©m TODAS as informaçÔes dos vĂŽos. SĂŁo arquivos grandes e sĂł pra vocĂȘ ter uma idĂ©ia 20 minutos de vĂŽo te dĂŁo um arquivo de 400MB. Esses arquivos sĂŁo melhores do que os arquivos enviados para o DJI Go porque eles contĂ©m todas as informaçÔes, o DJI Go App roda no seu celular e se o drone perder sinal com o rĂĄdio por exemplo, vocĂȘ perde informaçÔes, mas se vocĂȘ tiver LightBridge durante o vĂŽo inteiro (conexĂŁo com o rĂĄdio), vocĂȘ pode seguramente confiar no arquivo de âcaixa pretaâ que o App pra celular te dĂĄ.
O resultado final
Finalmente, apĂłs algumas horas de trabalho, eu fiz um vĂdeo de Hoboken a Manhattan (NYC), com Telemetria agregada, dĂĄ uma olhada em como ficou legal.
Minha interface possui as seguintes peças:
- elevação em m/s: pode ser positiva ou negativa, se for >0 significa que o drone estå subindo, caso contrårio estå descendo, se é =0 o drone não estå elevando;
- percentual de bateria;
- posição angular do gimbal da cĂąmera, pode ir de 30 graus a -90 graus: o meu Mavic tĂĄ configurado pra ir de 0 a -90 graus, onde 90 Ă© apontado para o chĂŁo. VocĂȘ pode configurar o seu drone para usar de 0 a 30 tambĂ©m, mas nĂŁo Ă© recomendado porque vocĂȘ acaba filmando as hĂ©licas ao apontar a cĂąmera para cima, o que Ă© meio inĂștil e nĂŁo te dĂĄ a impressĂŁo de que vocĂȘ estĂĄ olhando para frente, o que pode ser perigoso quando vocĂȘ voa por insturmentos e usa essa cĂąmera como orientação, por isso que minha peça tem marcaçÔes vermelhas quando o indicador Ă© >0;
- velocidade horizontal em km/h;
- distĂąncia horizontal em metros: o quĂŁo distante horizontalmente o drone se encontra do ponto de onde decolou, note que esta nĂŁo Ă© a distĂąncia entre o rĂĄdio e o drone;
- altitude, em metros: o quĂŁo alto o drone estĂĄ;
- orientação da bĂșssola em fita;
- orientação da bĂșssola em Ăcone;
- mapa, onde as partes rosas/vermellhas são onde eu estava mais lento em comparado com a média de velocidade do vÎo.