Semana 20 - Piloto remoto
Durante esta semana se desarrolló un piloto remoto para poder controlar adecuadamente el dron.
Índice
- Índice
- Preparación de drivers para mando de PS4
- Distribución de los botones del mando
- Controlador
- Filtros
- Drone real
- Estandarización
Preparación de drivers para mando de PS4
- Se instaló el driver para el mando:
sudo apt install ds4drv
-
Se conectó el mando al ordenador siguiendo la siguiente página.
-
Clonamos el siguiente repositorio.
-
Desarrollo del controlador para la teleoperación.
Distribución de los botones del mando
Controlador
Para programar el piloto remoto se aprovechó la facilidad de aerostack2 para intercambiar entre mundo real y mundo simulado y se desarrolló este mismo en simulación. Permitiendo desarrollar el programa más ágilmente además de poder visualizar y controlar situaciones que podrían haber puesto en peligro al dron real añadiendo más robustez y seguridad al programa.
Adicionalmente se añadió la posibilidad de grabar y detener grabaciones de rosbags desde el mando para facilitar el control del dataset.
Filtros
Al ver que el filtro de paso bajo daba buenos resultados se investigaron más tipos de filtros para poder añadir una mayor robustez al sistema:
- Filtro de paso bajo: Permite el paso de frecuencias por debajo de cierto punto de corte mientras atenúa las frecuencias más altas.
- Filtro de paso Alto: Permite el paso de frecuencias por encima de cierto punto de corte mientras atenúa las frecuencias más bajas.
- Filtro de paso de Banda: Permite el paso de frecuencias dentro de un rango específico.
- Filtro de rechazo de banda: Atenua las frecuencias dentro de un rango específico mientras permite el paso de frecuencias fuera de ese rango.
- Filtro Notch: Suprime una frecuencia específica o un rango de frecuencias dejando pasar las que están por encima o por debajo.
- Filtro de Retraso de grupo constante: Asegura que todas las componentes de frecuencia de una señal se retrasen por el mismo tiempo.
Drone real
Ya que el código en simulación se hizo con aerostack2 se trató de seguir con este middleware. Aprovechando el cambio de plataforma se puede manejar el mismo script en distintos drones. Sin embargo, al usar la plataforma surgió un fallo que queda reflejado en el siguiente issue.
Estandarización
Otro aspecto importante es la estandarización del repositorio para que sea adecuadamente reutilizable. En el siguiente medium se muestra esta misma estructura corroborado por otro par de artículos que muestran la misma estructura.
Dejando las siguientes mejoras a realizar en el repositorio:
- Carpeta de Referencias
- Carpeta de Informes
- requirements.txt
- setup.py
- Licencia