Jeffrey Cross
Jeffrey Cross

Teste de OpenROV na caverna de Hall City

Como foi relatado anteriormente aqui em MAKE, recentemente, um grupo de nós OpenROVers viajou para Hall City Cave apenas fora de Wildwood, CA. O objetivo da viagem era fazer um shakedown de nós mesmos e do ROV no campo, e como uma missão, determinar se (dentro da caverna subaquática) o eixo da caverna vertical conecta com o eixo inclinado de 45 graus. A caverna foi a inspiração original para Eric começar a criar um ROV e, desde então, evoluiu para o projeto de código aberto que é hoje.

Escusado será dizer que tivemos uma grande aventura - a condução através de neve pesada, trekking ao longo de caminhos de montanha com robôs e caixas de ferramentas, aterrissando aviões monomotores em pistas cobertas de neve. Ainda estamos digerindo muito do que aconteceu e nós estaremos escrevendo um longo relatório da aventura em breve, mas queríamos dar uma rápida atualização sobre como o robô funcionava!

Quando se trata de design de ROV pequeno, existem três campos gerais que sempre parecem exigir mais desenvolvimento:

  • Eletrônica a bordo / design de sistemas embarcados
  • Comunicação e poder através de um cabo
  • Impermeabilização de água e pressão

Contexto de Sistemas Embarcados (e o que temos feito até agora): O OpenROV está sendo desenvolvido como uma plataforma que pode suportar pesquisa científica e desenvolvimento de tecnologia. Para ser o mais eficiente possível, temos feito muitas pesquisas sobre como fazer com que um pequeno computador, como um telefone Android, o BeagleBone ou o próximo Raspberry Pi hospede vídeo, monitore sensores e controle de propulsores. enquanto se comunica com a superfície. Bran Sorem vem desenvolvendo algum código para Linux embarcado que poderia ser executado nesses dispositivos e também tem trabalhado em uma interface GUI que tornará o OpenROV intuitivo e satisfatório para operar.

Digite Bran ...

Eu tenho trabalhado no software da OpenROV e acredito que nós estabelecemos principalmente uma boa base para desenvolvimento futuro. No momento, estamos usando um BeagleBone como o principal computador de bordo (embora planejemos mudar para o Raspberry Pi uma vez que seja viável) com uma webcam de prateleira instalada. O objetivo do software é fornecer uma estrutura fácil de usar e simples de ampliar, mas poderosa, para operar o veículo. Para isso, estamos usando o Ubuntu Linux como o sistema operacional com o NodeJS no topo para servir uma página web que permite que o ROV seja controlado de qualquer navegador moderno.

O vídeo é manipulado por um programa OpenCV simples que captura quadros e os salva como JPG, que o Socket.IO envia para o navegador de controle. Ter suporte para o OpenCV abre grande oportunidade para o desenvolvimento de aplicativos mais avançados (como rastreamento de peixes). O Socket.IO permite a comunicação full-duplex - que irá lidar com as atualizações de vídeo, bem como o controle direcional do ROV.

Até agora, tenho trabalhado para conseguir que um feed de vídeo ao vivo funcione, mas me deparei com um obstáculo (principalmente pelo fato de que estou aprendendo o NodeJS e o OpenCV quando eu vou). O programa OpenCV aceita uma pasta (a data atual) como um argumento e aguarda stdin: cada linha de entrada é um nome de arquivo (hora atual) para salvar a imagem como, que o programa usa para capturar um quadro da webcam e Salve . Isso ocorrerá continuamente até que a conexão seja interrompida. O problema agora está no aplicativo NodeJS - parece estar cuspindo os nomes de arquivo corretos, mas estou tentando canalizar o process.stdout para o child.stdin e ter problemas. Qualquer ajuda ou conselho seria muito apreciada.

Há muito mais para vir no futuro, mas primeiro queremos que o vídeo funcione. O código será hospedado no Github.

Para nossa viagem, o desenvolvimento não nos levou ao ponto de podermos controlar o ROV com um computador de bordo, então usamos um controlador RC que falava com o receptor no ROV através de um fio comprido que efetivamente canalizava o RF a água.

Como você pode ajudar: O que você acha? Você já fez algum trabalho de sistemas embarcados com um BeagleBone? Alguma idéia para transferir vídeo ao vivo por uma conexão Ethernet (que também pode caber em nosso cilindro à prova d'água?

Tethers Background (O que temos feito até agora): As amarras costumam ser a parte mais desafiadora de um ROV a ser desenvolvido porque precisam ser capazes de comunicar grandes quantidades de dados e energia enquanto ainda são ágeis o suficiente para permitir que o ROV se mova com facilidade através da água, e eles devem ser neutros ou flutuantes ou leves o suficiente para não arrastar o ROV para baixo, à medida que mais e mais deles são despejados na água. Especialmente para pequenos ROVs como o OpenROV 2.2, a melhor solução é tornar o cabo fino e leve o suficiente para que a compensação de flutuabilidade não seja necessária.

Para a viagem ao Hall City Cave, usamos um par trançado de fio trançado 28AWG, e ele parecia funcionar muito bem - se estivéssemos usando cabos mais grossos, como o Ethernet, o ROV teria tido muito mais dificuldade em se movimentar, e o O peso da corda teria tornado difícil para o ROV manter uma determinada profundidade. Gostaríamos de continuar usando tethers muito finos como este (ou talvez um coaxial extremamente fino como o RG-178), mas o desafio que enfrentamos é como enviar dados de alta largura de banda por meio dele.

Existem várias abordagens para isso. Para começar, você poderia ir analógico e usar um vídeo balun para enviar imagens de uma câmera de saída RCA para cima do ROV, enquanto permite que os sinais de RF de um transmissor RC passem pelo cabo. Ou você pode usar um desses sofisticados dispositivos para converter Ethernet de par trançado duplo em um único par trançado. Finalmente, você poderia simplesmente usar um sistema de dados sobre o powerline (como discutido aqui).

Como você pode ajudar: estas são algumas das ideias que pensamos, mas gostaríamos de ver algumas outras ideias sobre como fazer isso. (Lembre-se mais uma vez, todo o equipamento do lado do ROV para isso tem que caber em um tubo de 90 mm de diâmetro por 150 mm de comprimento!)

Fundo de impermeabilização (O que temos feito até agora): para a impermeabilização dos componentes eletrônicos, obtivemos grande sucesso com nosso alojamento cilíndrico e tampas de acrílico cortadas a laser. Nós estivemos envasando as passagens com epóxi. Os motores sem escova receberam um revestimento de resina de classe marinha para evitar a oxidação.

Como você pode ajudar: o método funcionou até agora, mas está pronto para um processo mais fácil e menos demorado. Deixe-nos saber se você tem alguma idéia para envasamento ou impermeabilização do motor.

Bônus: Complementos! Antecedentes (O que temos feito até agora): Um dos maiores recursos do OpenROV 2.2 é o compartimento do módulo de carga útil. Colocamos orifícios de montagem na parte inferior da carcaça do ROV para até quatro hastes rosqueadas M5, cada uma espaçada de 50 mm. O objetivo é que você possa fazer suas próprias cargas (como braços de robôs, detectores de metal, sensores químicos, etc.) que podem ser montados facilmente na parte inferior do ROV. A largura dessas cargas pode ser de até 135 mm ou 200 mm se as baterias internas forem removidas.

Como você pode ajudar: Estamos sempre procurando maneiras de melhorar o OpenROV, e ter uma comunidade de pessoas pensando sobre isso é a melhor maneira de obter novas inovações e perspectivas diferentes. Afinal, é disso que se trata o Open Hardware!

Fique à vontade para conferir os fóruns do OpenROV para algumas das outras estratégias que fizemos check-out. Além disso, informe-nos se você tiver outras ideias de aventura.

Mais: Leia a coluna Zero to Maker de David Lang aqui em MAKE

Ação

Deixar Um Comentário