Noticias

Avances Racing Drones

El pasado 27 de octubre del 2017 tuvo lugar una nueva reunión de consorcio en la que tuvimos ocasión de integrar todos los avances que se han logrado hasta la fecha. Gracias al gran trabajo de los miembros, ya tenemos un coche teledirigido que se puede controlar desde un ordenador.

El modelo coche utilizado es un Monster Truck, de escala 1/16 y tracción a las cuatro ruedas

 

 

 

 

 

La comunicación con el coche se realiza a través de un módulo multiprotocolo, que se ha configurado para utilizar el protocolo ACCST. Este tipo de módulos reciben a su entrada una señal PPM, que contiene órdenes de control, y reenvían estas órdenes a un receptor ubicado en el vehículo, con un formato compatible con dicho receptor, en este caso, el protocolo de FrSky (ACCST). La siguiente imagen muestra este módulo.

 

 

 

Como hemos visto anteriormente, el control del coche se realiza a través de un ordenador, que lleva instalado un software que captura las pulsaciones en el teclado y las reenvía al puerto serie de un Arduino conectado por USB a dicho ordenador. El Arduino convierte las pulsaciones recibidas en la señal PPM que alimenta al módulo transmisor, que finalmente enviará al receptor los comandos que debe obedecer el coche. En la siguiente imagen se puede ver la cadena completa, junto con la batería que alimenta al módulo de transmisión. El próximo paso consistirá en enviar las pulsaciones del teclado a través de internet, antes de que sean recibidas por el Arduino.

La parte de transmisión de vídeo también progresa adecuadamente. Hemos conseguido integrar el códec LHE en una Raspberry Pi, codificando en HD y con unos resultados muy prometedores en cuanto a latencia y ancho de banda ocupado.
Además, también somos capaces de paquetizar en enviar a través de WiFi un flujo de vídeo, utilizando una FPGA, también con muy buenos resultados.
Lo visto en esta reunión nos hace pensar en un futuro optimista para el proyecto. Os mantendremos informados de nuestros avances en el RacingDrones.


Codec LHE en RPI

Prioridades:

  • Robustez ante pérdidas por ruido radioeléctrico
  • Latencia compuesta (codificación + tx + decodificación)

Cada “slice” de LHE ocupa unos 1000 Bytes, y contiene scanlines completas (un número variable según resolución).

Ello permite una transmisión con un BW muy constante durante la codificación.

El player puede empezar a decodificar 1.5ms tras el comienzo de la codificación menos de 10ms por frame compatible con container de h264 para streaming.

El pppx en 3D debe ser 1 para dañar lo menos posible las dos imágenes.

 

Descarte inteligente. Regeneración de scanlines por interpolación, permite un máximo de hasta 50% de reducción, dependiendo del contenido (relevancia) de la imagen.

Actuador

  • Se ejecuta en el vehículo (en la RPI)
  • Recibe alertas desde el stack Q4S (presente en el coche y en el server)
  • Tiene en cuenta el estado actual (calidad) y el reporte del stack Q4S (alertas) y con ello se toman las decisiones de actuación en caliente (cambios en fps y calidad -nivel de descarte inteligente).
  • El tiempo de reacción es 1 frame.
  • El orden de actuación es primero nivel de descarte hasta el máximo (50% reducción) y después se empiezan a reducir fps.

LHE en FPGA

  • Captura de imágenes de la cámara.
  • Codificación del vídeo.
  • Copia del vídeo codificado a memoria PS.
  • Paquetización con perfil RTP ad-hoc.