05.01.2015 Views

ROBOTS DE EXTERIORES - Centro de Automática y Robótica

ROBOTS DE EXTERIORES - Centro de Automática y Robótica

ROBOTS DE EXTERIORES - Centro de Automática y Robótica

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Planificación <strong>de</strong> Misiones <strong>de</strong> UAV Mediante el Lenguaje <strong>de</strong> Control <strong>de</strong> Vehículos<br />

Aéreos 129<br />

5. las funciones pue<strong>de</strong>n sobrecargarse y anidarse (sin límite). Los<br />

argumentos <strong>de</strong> las funciones pue<strong>de</strong>n incluir una etiqueta (nombre)<br />

que facilite la lectura <strong>de</strong>l código (p. ej. alpha = sin ( ángulo = 30°));<br />

6. los objetos tienen métodos y propieda<strong>de</strong>s (por ejemplo, una ca<strong>de</strong>na<br />

<strong>de</strong> caracteres tiene la propiedad “longitud”).<br />

2.2.2 El intérprete: diseño extensible<br />

El intérprete <strong>de</strong> AVCL fue <strong>de</strong>sarrollado en C++ estándar, por tanto pue<strong>de</strong><br />

compilarse en diversos sistemas operativos (Windows, variantes <strong>de</strong> Linux<br />

y Mac OS X). Ya que el intérprete sólo <strong>de</strong>fine los tipos <strong>de</strong> datos básicos y<br />

los operadores <strong>de</strong>scritos en la sección anterior, es necesario un mecanismo<br />

para <strong>de</strong>finir nuevos tipos <strong>de</strong> objetos, funciones y operadores. En otras<br />

palabras, todos los vehículos y sensores sobre los que <strong>de</strong>seamos operar se<br />

<strong>de</strong>finen como librerías externas, lo mismo que funciones adicionales que<br />

se quieran incorporar al AVCL.<br />

El <strong>de</strong>sarrollo <strong>de</strong> las librerías que extien<strong>de</strong>n la funcionalidad <strong>de</strong>l<br />

intérprete <strong>de</strong> AVCL siguen un estándar propio, y pue<strong>de</strong>n <strong>de</strong>sarrollarse en<br />

C, C++ y C#. Es importante notar que se incluyó C# por dos importantes<br />

razones:<br />

1. Mono * permite el <strong>de</strong>sarrollo <strong>de</strong> librerías que funcionan en varios<br />

sistemas operativos sin necesidad <strong>de</strong> recompilar;<br />

2. el estándar .NET establece un protocolo para el procesamiento<br />

distribuido, en algunos casos análogo a CORBA, que permite al<br />

intérprete operar <strong>de</strong> forma transparente con objetos que existen en<br />

diferentes contextos (p. ej. en los or<strong>de</strong>nadores <strong>de</strong> varios UAVs).<br />

El vehículo simulado cuyo uso <strong>de</strong>scribiremos en secciones posteriores,<br />

es un ejemplo práctico <strong>de</strong> cómo exten<strong>de</strong>r el intérprete mediante librerías<br />

externas que <strong>de</strong>finen un objeto nuevo (con propieda<strong>de</strong>s y métodos<br />

propios).<br />

2.2.3 Vehículos y sensores genéricos<br />

Contamos con un grupo cada vez más gran<strong>de</strong> y heterogéneo <strong>de</strong> vehículos<br />

aéreos y sensores. Adicionalmente cada autopiloto (la combinación<br />

HW/SW que pilota cada vehículo) tiene diferentes modos <strong>de</strong> operación,<br />

nuevos y mejores algoritmos <strong>de</strong> control y navegación, lo que configura un<br />

universo casi ilimitado <strong>de</strong> combinaciones <strong>de</strong> vehículo – sensor – software.<br />

Sin embargo la mayor parte <strong>de</strong> estas combinaciones comparten<br />

*<br />

URL: http://www.mono-project.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!