Implementación en Matlab de sistemas de control de vuelo on-line para FlightGear

De ISAwiki
(Diferencia entre revisiones)
m
m (Acceso a las variables de vuelo desde Matlab)
Línea 14: Línea 14:
 
Aunque existen procedimientos más eficientes, una vez habilitado el acceso vía http se puede acceder desde matlab (versión 7) a cualquier propiedad utilizando la función <code>urlread(url)</code> para leer la página dinámica generada por el simulador y luego "parseándola" mediante expresiones regulares para quedarnos con el valor de la variable. Por ejemplo, para leer el valor ''y'' de la altitud
 
Aunque existen procedimientos más eficientes, una vez habilitado el acceso vía http se puede acceder desde matlab (versión 7) a cualquier propiedad utilizando la función <code>urlread(url)</code> para leer la página dinámica generada por el simulador y luego "parseándola" mediante expresiones regulares para quedarnos con el valor de la variable. Por ejemplo, para leer el valor ''y'' de la altitud
 
<pre>
 
<pre>
    s = urlread('http://localhost:5400/position/altitude-ft');
+
s = urlread('http://localhost:5400/position/altitude-ft');
    [ini,fin]=regexp(s,'value="-?\d+.?\d+"');
+
[ini,fin]=regexp(s,'value="-?\d+.?\d+"');
    y = str2num(s(ini+7:fin-1));
+
y = str2num(s(ini+7:fin-1));
 
</pre>
 
</pre>
  

Revisión de 14:39 3 dic 2007

En esta página se describe cómo diseñar un sistema de control de vuelo on-line para el simulador de vuelo de código abierto FlightGear.

Tabla de contenidos

Habilitación del acceso a las variables de vuelo

Para poder diseñar sistemas de control de vuelo es necesario tener acceso (de lectura y/o escritura) a variables del simulador. Esto es posible a través del árbol de propiedades de FlightGear, que es accesible a través del localhost en el puerto que se especifica a través de la instrucción en línea de comandos. Por ejemplo, puede habilitarse en el puerto 5400 invocando a FlightGear con las siguientes opciones:

Opciones en FlightGear

Una vez ejecutado, el árbol de propiedades estará accesible vía http (con cualquier navegador) en localhost el en el puerto seleccionado

Acceso al arbol de propiedades de FlightGear desde un navegador

Acceso a las variables de vuelo desde Matlab

Acceso de lectura

Aunque existen procedimientos más eficientes, una vez habilitado el acceso vía http se puede acceder desde matlab (versión 7) a cualquier propiedad utilizando la función urlread(url) para leer la página dinámica generada por el simulador y luego "parseándola" mediante expresiones regulares para quedarnos con el valor de la variable. Por ejemplo, para leer el valor y de la altitud

s = urlread('http://localhost:5400/position/altitude-ft');
[ini,fin]=regexp(s,'value="-?\d+.?\d+"');
y = str2num(s(ini+7:fin-1));

Acceso de escritura

El acceso de escritura puede hacerse utilizando la sintaxis del protocolo http. Por ejemplo, para asignar un valor u a la posición del elevador

s = ['http://localhost:5400/controls/flight/elevator?value=' num2str(u)],
urlread(s);
Herramientas personales
Espacios de nombres

Variantes
Acciones
Navegación
Tipos de páginas
Bloques temáticos
Herramientas