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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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 127<br />

que habrá <strong>de</strong> realizar el UAV mediante expresiones <strong>de</strong> un lenguaje. Como<br />

ejemplo <strong>de</strong> AVCL:<br />

# puntos <strong>de</strong> paso<br />

variable p1, p2, p3<br />

p1 = @ 1.1 km, 0.1 km, 55 m @<br />

p2 = @ p1.X() + 33.3m, 0km, 70m@<br />

# comandos al UAV<br />

helicopter.TakeOff (15m)<br />

helicopter.FlyTo (p1)<br />

helicopter.Camera.Zoom (1.0)<br />

# lectura <strong>de</strong> datos<br />

p3 = helicopter.Position()<br />

print (‘p3 = ‘, p3)<br />

# los argumentos <strong>de</strong> las funciones pue<strong>de</strong>n<br />

# tener nombre, lo que facilita la<br />

# lectura <strong>de</strong>l código<br />

uav.FlyTo (<strong>de</strong>stination = p1, abortIf = uav.Z < 3 ft)<br />

Otros proyectos <strong>de</strong> vehículos aéreos y submarinos autónomos han<br />

<strong>de</strong>sarrollado sus propios lenguajes <strong>de</strong> programación/control (Yuan, 1999;<br />

Dixon, 1999; Duarte, 2000; Doherty, 2000; Kim, 2002; Kim , 2003) <strong>de</strong> los<br />

que el AVCL toma algunos conceptos básicos que fueron ampliados hasta<br />

convertirse no sólo en un lenguaje sino en una arquitectura abierta y<br />

extensible. Frente a proyectos anteriores las principales ventajas <strong>de</strong>l AVCL<br />

son:<br />

1. su manejo intuitivo <strong>de</strong> diferentes sistemas <strong>de</strong> unida<strong>de</strong>s, y la<br />

facilidad con que nuevas unida<strong>de</strong>s y magnitu<strong>de</strong>s pue<strong>de</strong>n agregarse;<br />

2. sigue el paradigma <strong>de</strong> la programación orientada a objetos (POO),<br />

lo que permite agrupar <strong>de</strong> forma útil y coherente las funciones y<br />

propieda<strong>de</strong>s <strong>de</strong> un vehículo o sensor;<br />

3. el paradigma POO permite el diseño <strong>de</strong> misiones multi-vehículo;<br />

4. las funciones pue<strong>de</strong>n recibir punteros a objetos. Esto permite<br />

conectar en tiempo <strong>de</strong> ejecución diferentes vehículos y sensores;<br />

5. es extensible, nuevas funciones y clases <strong>de</strong> objetos se pue<strong>de</strong>n<br />

agregar fácilmente;<br />

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

utilizarse en una gran variedad <strong>de</strong> sistemas operativos.<br />

Usar el AVCL para unir el Planificador <strong>de</strong> Misiones y las capacida<strong>de</strong>s<br />

específicas <strong>de</strong> un vehículo aéreo representa una importante ventaja frente a<br />

otros mecanismos: el AVCL también sirve <strong>de</strong> puente entre los vehículos.<br />

Esto significa que en tiempo <strong>de</strong> ejecución se pue<strong>de</strong>n generar nuevas<br />

conexiones, interacciones que no fueron consi<strong>de</strong>radas durante la fase <strong>de</strong><br />

diseño. Por ejemplo:

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

Saved successfully!

Ooh no, something went wrong!