Implementación en Matlab de sistemas de control de vuelo on-line para FlightGear
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'); | |
− | + | [ini,fin]=regexp(s,'value="-?\d+.?\d+"'); | |
− | + | 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:
Una vez ejecutado, el árbol de propiedades estará accesible vía http (con cualquier navegador) en localhost el en el puerto seleccionado
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);