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