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
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