Me gustaría desarrollar mi propio software de vuelo de guía, navegación y control (GN&C) en una Raspberry Pi, para un pequeño UAV de ala fija. Desde un punto de vista físico, ¿cuál es el conjunto mínimo de sensores/entradas necesarias para implementar el seguimiento de puntos de ruta de GPS?
Entiendo que tengo muchas matemáticas que aprender, pero ¿cuál es el conjunto mínimo de entradas para esas matemáticas? Tengo experiencia con C++ incorporado para sistemas de entretenimiento de vehículos, pero no tengo conocimientos en el ámbito de la aviación.
El mínimo absoluto para un vehículo generalizado que necesita conocer su posición y actitud (orientación) en el espacio es uno por grado de libertad. Esto se puede reducir si tenemos información sobre los modos naturales del sistema y su estabilidad .
Para simplificar, supongamos que un vehículo se mueve en 3 dimensiones, lo que significa un total de 6 DoF:
La forma más sencilla de cumplir con estos requisitos son los acelerómetros para las coordenadas XYZ y los giroscopios para los ángulos, que a menudo se empaquetan juntos en una IMU . Técnicamente, ni siquiera necesita un GPS real, siempre que conozca las coordenadas de la ubicación de inicio, ya que puede integrarlo para conocer su posición. Esto se conoce como navegación a estima a través de la navegación inercial y funciona de esta manera (utilicemos coordenadas como ejemplo):
Por supuesto, esto tiene múltiples deficiencias. Los acelerómetros del mundo real tienen ruido, los giroscopios se desvían, su ubicación inicial probablemente sea inexacta, su vehículo probablemente necesite más datos para operar y todos los sistemas que acabo de describir no tienen forma de encontrarse si se reinician en la misión.
Para un proyecto barebones realista como el que describiste, necesitarás:
Otras fuentes de datos son deseables pero complican enormemente la arquitectura FCS, ya que necesita ponderar adecuadamente los datos, después de todo, no quiere que la aeronave confíe más en el magnetómetro que en los giroscopios y le muestre un pequeño truco que aprendió al pasar cerca . una anomalía magnética.
En particular, una sonda Pitot es buena para conocer su velocidad aérea en lugar de su velocidad terrestre. Una paleta alfa es un lujo y no es necesaria a menos que esté empujando el sobre de vuelo.
Cualquier sensor de vigilancia terrestre con suficiente frecuencia de actualización, rango y precisión (IR, láser, LiDAR, acústico, etc.) le permitirá suavizar sus aterrizajes, y el que elija dependerá de su diseño y presupuesto; todos tienen pros y contras.
Desde el punto de vista de la codificación, si realmente quiere hacer esto usted mismo desde cero, debe buscar sistemas en tiempo real, filtros Kalman y el vasto campo de la fusión de sensores. También aprenda algo de aerodinámica mientras lo hace, de modo que el fuselaje en sí no sea una caja negra para usted. Puede ejecutar un FCS en un Arduino, incluso para cuadricópteros, si está satisfecho con solo un SAS básico .
Hay una gran comunidad de constructores de UAV aficionados en línea que pueden proporcionarle una solución casi lista para usar para su FCS ( Ardupilot ), si prefiere ese enfoque. Personalmente, a menudo encuentro que falta su documentación, por lo que le sugiero que al menos aprenda los conceptos básicos detrás de lo que está haciendo, para ayudarlo a navegar por las inevitables lagunas en el manual. Además, dado que es un proyecto de código abierto, puede llenar esos vacíos.
Probablemente sea posible solo con el receptor GPS, pero no sería fácil y es posible que deba hacer algunas concesiones en el diseño del fuselaje para lograr la estabilidad pasiva necesaria.
El conjunto tradicional de sensores para este tipo de aplicación son, aproximadamente en orden de prioridad:
Dado que este es su primer UAV, recomendaría enfáticamente tener los primeros 4 sensores y probablemente el n.° 5 y/o el n.° 6 (pero tal vez los use para diagnóstico y análisis en lugar de control, ya que pueden ser un poco complicados con las no linealidades y la confiabilidad) .
Si solo desea que su UAV vuele a un punto intermedio, puede hacerlo solo con un sensor GPS, si se basa en un avión muy estable como un planeador rc "Gentle Lady" o "Radian", siempre que no lo sea. t volarlo con viento muy fuerte donde existía la posibilidad de que la aeronave retrocediera sobre el suelo cuando apuntaba contra el viento y volaba a velocidad de compensación. Supongo que probablemente también desee un sensor de altitud, a menos que solo desee aplicar suficiente potencia para que la aeronave ascienda lentamente durante la parte autónoma del vuelo. Por supuesto, puede obtener la información de altitud del sensor GPS.
Si decide agregar un giroscopio de velocidad de guiñada de 1 eje, esto permitiría un control más suave. Pero en el contexto de un avión muy estable como su plataforma básica, realmente no necesita más que eso, si su objetivo básico es mantenerlo simple.
Hablando desde el punto de vista de alguien que ha controlado con éxito un avión ultraligero en la nube usando solo un indicador de velocidad de giro electrónico de 1 eje, GPS y brújula húmeda, y la brújula giraba hacia atrás la mitad del tiempo. El control en circunstancias limitadas específicas (es decir, aire suave, no intentar dar vueltas constantemente en una corriente térmica ascendente, hacer solo giros de velocidad muy baja) era posible sin el indicador de velocidad de giro, y un robot seguramente haría un mejor trabajo que un humano.
Simplemente haga suficientes pruebas para asegurarse de que la aeronave no sea propensa a oscilaciones "fugoides" de tono severas en el CG que está utilizando.
Estos insumos fueron suficientes para un vuelo transatlántico autónomo de cadena de puntos de paso hace dieciséis años.
Tal vez una introducción resumida a la teoría del control podría ayudarlo. Desde el punto de vista del control, su aeronave es un sistema dinámico, que puede describirse mediante un estado y un modelo dinámico.
El estado es simplemente una colección de variables de dónde se encuentra la aeronave en cada momento. Para una descripción completa, tendría la posición y la actitud en el espacio, así como sus primeras derivadas. Cualquier otra inercia también puede tener su propia variable de estado; por ejemplo, la velocidad de la hélice.
Las ecuaciones de estado describen cómo evoluciona el estado en el tiempo. A partir de estas ecuaciones (especialmente en forma lineal), podemos destilar una serie de modos (eigen) . Estos modos describen un cierto comportamiento del sistema y vienen en dos formas: modos estables e inestables . Un modo estable es un sistema dinámico que, para una entrada finita (perturbación), no conduce a que ninguna variable de estado vaya al infinito. Tenga en cuenta que esto no significa que las variables de estado regresen a algún valor constante: ¡una oscilación acotada aún puede considerarse estable! Un modo inestable es una dinámica que para una entrada finita conduce a un crecimiento ilimitado de alguna variable de estado.
Para ver cuántos sensores necesita, necesitará algunas cosas. En primer lugar, desea que su sistema sea estable. Obviamente, esto significa que desea tener un conjunto de sensores que puedan medir cualquier modo inestable ( detectabilidad ) y un conjunto de actuadores que puedan controlar los modos inestables ( estabilizabilidad ). Hay varios modos (posiblemente) inestables, el más importante de los cuales es la divergencia en espiral . Muchos aviones de ala fija no tienen una estabilidad de balanceo inherente, por lo que querrá poder sentir su ángulo de balanceo(Un sensor de velocidad de guiñada o de rumbo también podría funcionar, debido al acoplamiento de balanceo/guiñada). Además, simplemente existe su movimiento lineal, que también es inestable (esto puede parecer contrario a la intuición, pero todo lo que significa es que puede alejarse infinitamente de su punto inicial viajando en línea recta). Para esto, necesitará algún tipo de sensor de posición (muy probablemente, un GPS).
Todos los demás modos dinámicos no son intrínsecamente inestables en un avión de ala fija, aunque su diseño particular puede tener algunas inestabilidades adicionales, como un movimiento fugoide inestable, para el cual desea poder medir y controlar el movimiento de cabeceo.
Por lo tanto, el mínimo absoluto es de dos a tres sensores (latitud y longitud y probablemente balanceo o guiñada), y use la alimentación hacia adelante para todas las demás variables (establezca el ajuste y la potencia en función de la altitud y la velocidad deseadas, y simplemente hágalo). En la práctica, nadie construiría un UAV con solo tres sensores. Hay dos razones para esto,
Para un UAV de afición, normalmente resulta que los sensores son relativamente baratos, gracias a MEMS. Por lo general, usaría un acelerómetro de 3 ejes, un giroscopio de 3 ejes (velocidad de balanceo) y un magnetómetro de 3 ejes (brújula), y ¿por qué no tener también un barómetro y un termómetro? Y dado que usa un GPS, también podría usar sus datos de altitud. Si usa un motor de CC sin escobillas, no debería ser un esfuerzo medir la velocidad de la hélice. Creo que le resultará mucho más fácil hacer un UAV que funcione con estos componentes listos para usar (y el software de código abierto que normalmente se escribe para estos sensores) que encontrar un sensor de giroscopio de un solo eje y escribir su propio software.
Además, el uso de más sensores simplifica significativamente su observabilidad . Esta es la noción de poder inferir el estado del sistema a partir de las salidas. En teoría, si su modelo es lo suficientemente complejo, necesita muy pocos sensores para estimar el estado actual (estimación). Sin embargo, si realmente puede medir sus estados, su modelo ya no es tan importante y su UAV podrá responder mucho mejor y será menos sensible a los cambios en el entorno o al propio UAV.
El proyecto ArduPilot probablemente ya haya hecho gran parte del trabajo por usted, si está más interesado en el resultado final que en el proceso de creación por sí mismo. Incluso si elige no usar su software, probablemente haya buena información sobre qué sensores y cuántos son necesarios.
jeffrey
volante tranquilo
chris stratton
Harper - Reincorporar a Monica
reirab
Steve
dormilón
dormilón
Steve
dormilón
dormilón
usuario7915
Steve