VĂ­deos de vĂŽo com telemetria

Click for English version.

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.

Image

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.

Image

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.


Twitter

@deploytoprod

Linkedin

Rafael Lopes

GitHub

@bobeirasa