Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola a todos,
Estoy realizando un controlador de posición para un cuadróptero (es mi PFC), quiero que sea Open-Hardware así que iré publicando por aquí y en el blog los avances que vaya haciendo. Se que ya existen alternativas comerciales y abiertas (el openPilot, el KK o el multiWii por ejemplo), pero mi idea es que al final sea totalmente autónomo.
Por otra parte quiero hacer el sistema lo más general posible para que pueda aplicarse a todo tipo de drones (áereos, terrestre, acuaticos, submarinos o espaciales).
He partido el proyecto en varios trozos:
- Piloto --> controlador de posición (mi PFC) evita que el cuadróptero se vaya al traste, controlará los sensores y enviará las señales a los drivers para controlar la estabilidad del conjunto.
- Navegador --> Es el que toma las decisiones para que sea autónomo. Por falta de tiempo no voy a realizarlo dentro del PFC, pero iré avanzando en él cuando tenga la parte del piloto hecha.
- Maquinista --> Mi idea es desarrollar unos drivers para motores brushless (los famosos ESC) que se controlen por bus SPI que den una mayor velocidad de respuesta al sistema (los 20ms del PWM me parecen mucho en una situación crítica).
- Controlador --> Servicio de telemetría en tierra para la recepción de la telemetría y el control (indicaciones) del equipo.
Las sugerencias serán bienvenidas.
S2
Ranganok Schahzaman
Ave Fenix, seguramente terminaré implementando un DCM, pero tengo que investigar otras opciones para realizar una comparativa.
Tycoon ¿por qué?
S2
Ranganok Schahzaman
El acelerómetro tiene como referencia el centro de la tierra, no puede corregir la guiñada del giroscopio. De hecho, para que lo veas fácil, si a tu placa la giras, el acelerómetro no cambiaría su lectura.
Es por eso que se necesita un magnetoscopio, ya que al girar la placa, el magneto SÍ se entera.
Eso explicándolo a groso modo, claro.
De ahí que se necesiten sistemas 9DOF para obtener la posición exacta.
Al hacer el DCM lo verías claro, ya que las lecturas de dichos sensores se tratan de manera diferente para corregir lo que pueden corregir.
La guiñada no la puede detectar el acelerómetro porque sólo mide movimientos lineales. Es decir, sus tres planos (asumimos que es triaxial) están alineados con los tres movimientos laterales. Adelante atrás, izda dcha, y arriba abajo. Imagínatelo como una bola suspendida por seis muelles, alineados dos a dos en forma de cruz 3d, donde la bola está en el centro. Si el conjunto lo haces girar sobre su propio eje, la bola permanecerá inmóvil.
Si quisieras que un acelerómetro detectara "algo" al guiñar, tendrías que ponerlo en un extremo del aparato.
Solución: magnetómetro
Ya que estamos hablando de eso. Me gustaría saber si con un acelerómetro de 3 ejes y un magnetómetro también de 3 ejes serviría para detectar movimientos de alabeo (roll), cabeceo (pitch) y guiñada (yaw).
Hace tiempo me compré este módulo: http://www.pololu.com/catalog/product/1250 " onclick="window.open(this.href);return false; pero no he encontrado información por internet de cómo sacar la información completa de posición en 360º, sólo de cómo hacer que la brújula esté compensada. ¿Serviría el DCM del que hablais? ¿es DCM lo mismo que los cuaterniones?, ¿Quizá con filtros de Kalman?
Como todo esto me pilla de nuevas, ¿hay alguna página para dummies que lo explique bien?
Gracias.
Hacer una IMU completa, es decir un sensor que me diga angulos de alabeo, cabeceo y guiñada, BIEN, no es moco de pavo. Es tal el lodazal, que hasta hace unos pocos años, el sistema completo te podía costar 600 pavos fácilmente.
El paper del MIT lo explica muy bien. Pero esto sólo es correcto para un plano independiente. Tipo robot balancín.
http://web.mit.edu/scolton/www/filter.pdf " onclick="window.open(this.href);return false;
¿Un cuadri puede volar siguiendo sólo este paper y/o el enlace de Ragnarok? Sí, yo lo usé para mi cuadricóptero hecho con La Fonera. El que fue a la última Campus de Valencia lo vería. Cuando tenga un rato postearé un hilo con esto.
Pero es un "apaño" y sólo para angulos pequeños, tampoco sería escalable a un vuelo autónomo.
Como dice Ave_fenix cuando metes los 3 movimientos, hace falta "desacoplar", bien con DCM, bien con cuaterniones, que son para lo mismo.
sistemasorp: El usar sólo magnetómetro y acelerómetro no vale para un cuadri, Creerá que está inclinado si lo mueves en horizontal. Descojoncio en 0.001 segundos. Para algo mucho menos agresivo podría valer. Busca por "Tilt compensated yaw"
Para el que quiera meterse en esto, que entienda a full el paper del MIT o similar, que lo implemente in situ, y luego puede empezar a romperse la cabeza con la web de este tipo:
https://sites.google.com/site/kuadricoptero/ " onclick="window.open(this.href);return false;
Antes empollaos vuestros apuntes de trigonometría del instituto 🙂 (Tampoco hace falta que hagais un master, al fin y al cabo lo que interesa es implementarlo y saber por qué es necesario, al menos.)
Que viene de esta otra, pero aquí sólo sale cómo se dió cuenta de que necesitaba DCM y por qué las soluciones anteriores eran defectuosas en algún modo
https://sites.google.com/site/mikuadricoptero/ " onclick="window.open(this.href);return false;
No acabó su cuadri, y es una pena, porque se comió lo más duro. (E incluso lo entendió xD)