Continuando con esta serie de post basados en las tecnologias SITL para el control y pruebas en Vehiculos Autonomos, vamos a proceder con la configuracion de nuestro Joystick FrSky Taranis Q X7 para el control de un Vehiculo basado en el Drone "3DR IRIS" de forma remota

Herramientas:

Objetivo:

A raiz de pruebas con tecnologias OpenSource para le construccion de VANTs, Drones, UAVS o Vehiculos autonomos, queremos implementar un entorno de laboratorio basado en entornos LINUX para la creacion de arquitecturas extensibles y usables con el proyecto PX4 con simulaciones SITL.
Esto perimitira que nosotros como Desarrolladores, podamos integrar nueva sensorica, algoritmos o soluciones de vehiculos a su codigo base logrando continuar con el apoyo al proyecto de manera colaborativa por las comunidades.

Entorno de laboratorio

hasta este punto, hemos montado todo un entorno de Desarrollo el cual estamos explorando mas a fondo a raiz de los estudios que se han realizado hasta el momento, contamos con un Equipo de desarrollo Ubuntu, Un PC de desarrollo con Debian instalado, un Monitor de 40" sobre el cual proyectamos la simulacion y una interfaz de comunicacion entre estos equipos basadas en las arquitecturas ethernet y los protocolos de la arquitectura de PX4 que es el desarrollador de estudio.
EntornoLaboratorioPX4

Funcionamiento

Al conectar nuestro Control Remoto Q X7 al PC debian con QGroundControl se creara una interfaz que podremos configurar para que de manera remota sea el GCS quien controle la simulacion SITL por medio del Joistyck.
como podemos ver aqui, nuestro desarrollador FrSky al ser OpenSource permite que las dos tecnologias se puedan integrar de la manera correcta.

Esto permitira, controlar nuestro VANT utilizando una sola frecuencia de emision que podria ser perfectamente un enlace a 2.4ghz sobre un socket UDP que controla el protocolo MAVLink.

Configurando el Control en QGroundControl.

Previamente sobre el control, hemos agregado un nuevo modelo de vehiculo el cual llamamos "QuadSITL" que correspondera a la simulacion JMAVSim.

  • Encendemos el Control
    Lo primero que debemos de hacer en este punto, es utilizar el cable USB para conectar nuestro Control al PC con Debian que es el host elegido para correr QGroundControl.
    Una vez conectado, sobre el control saltara un mensaje que nos indicara el tipo de conexion que queremos realizar con el control, en este punto seleccionamos USB Joystick (HID)
    controlHID

  • Confirmar la nueva interfaz creada
    Una vez conectado el control al PC, podremos validar la salida del sistema y confirmar que se ha conectado correctamente con el comando "dmesg"

$ sudo dmesg | tail -n8


#Salida del sistema
[32940.397645] usb 2-1: new full-speed USB device number 8 using xhci_hcd
[32940.546913] usb 2-1: New USB device found, idVendor=0483, idProduct=5710, bcdDevice= 2.00
[32940.546920] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[32940.546924] usb 2-1: Product: FrSky Taranis Joystick
[32940.546928] usb 2-1: Manufacturer: FrSky
[32940.546931] usb 2-1: SerialNumber: 00000000001B
[32940.548772] input: FrSky FrSky Taranis Joystick as /devices/pci0000:00/0000:00:14.0/usb2/2-1/2-1:1.0/0003:0483:5710.0005/input/input26
[32940.549146] hid-generic 0003:0483:5710.0005: input,hidraw0: USB HID v1.11 Gamepad [FrSky FrSky Taranis Joystick] on usb-0000:00:14.0-1/input0

Conectado el control procedemos a ejecutar la configuracion del mismo.

En este punto, vamos a indicarle a QGroundControl que tenemos un equipo conectado via UDP el cual sera la simulacion JMAVSim y accederemos a configurar el control sobre la interfaz.

  • Ejecutar la simulacion SITL.
    Sobre el equipo de desarrollo ejecutamos la simulacion tipo broadcast y nos conectamos a ella desde QGroundControl como hemos mostrado en tutoriales anteriores.
$ make broadcast jmavsim
  • Lanzar QGroundControl
    Como previamente hemos configurado la simulacion para permitir conexiones demotas via BroadCast, procedemos a lanzar QGroundControl con el Control Remoto Q X7 Previamente conectado.
$ ./QGroundControl.AppImage

Lanzada la aplicacion, procederemos a validar que se conecte el Dron IRIS y que se habilite sobre el menu de configuracion la opcion "Joystick"
1-rc
En este punto es necesario calibar el control, para ello damos clic en "Calibrate" y seguimos las instrucciones dictadas por el software.
Si todo ha sido correcto y se han mapeado los 4 canales basicos para el control, podremos ver se que habilitara la opcion "Enable Joystick Input" y el dispositivo se seleccionada por defecto.
qgroundJoystick
Cable aclarar, como se puede evidenciar en la imagen, que la configuracion del control es MODO 2 y el nivel de 0 para el acelerador o "Throttle" se encuentra abajo en la palanca del que controla esta accion "Full Down Stick is zero Throttle".

Finalizado este proceso, podremos volar nuestra simulacion de manera remota con nuestro Control Taranis Q X7.

Video

En un video de aproximadamente 13minutos, explicamos rapidamente la configuracion realizada

Referencias:
https://dev.px4.io/en/simulation/
https://docs.qgroundcontrol.com/en/SetupView/Joystick.html
https://docs.qgroundcontrol.com/en/SettingsView/VirtualJoystick.html