Академический Документы
Профессиональный Документы
Культура Документы
NDICE
Sistemas de ejecucin
Sistemas diseados para interactuar entre el deliberador (ej. planificador) y el soporte de bajo nivel (ej.
lgica de bajo nivel)
Deliberador
Sistema de ejecucin
Control hardware
Hardware
Inicio del proyecto: 2006 ltima actualizacin: Julio de 2012 (v2.5) Licencia BSD Lenguaje de modelado + ejecutor
NDICE
Nodos Variables y expresiones Condiciones Tipos de nodos Estado de los nodos Acciones de alto nivel Gestin de recursos Comunicacin con el mundo exterior PlexilScript Telemetra
El Universal Executive
El lenguaje PLEXIL
PLan EXecution Interchange Language Valido para sistemas mono o multiagente El plan modelado ser un rbol de tareas Codificacin en XML (a partir de una sintaxis simplificada y un
traductor)
Caractersticas:
Compacto Semnticamente sencillo Determinista (ante la misma secuencia de eventos) Manejo de recursos y del tiempo*
5
Nodos
Variables y expresiones
Vectores de un tipo primitivo (uso limitado) Posibilidad de manipular fechas y lapsos de tiempo Visibilidad:
Accesibles totalmente desde el nodo que las declara y sus hijos a no ser que se declare la interfaz Interfaces: In e InOut (slo lectura o lectura-escritura) Formadas por los operadores tpicos: +, -, * y abs(), sqrt() Operadores booleanos: >, >=, ==, !=, &&, || 7 Siempre como resultado un tipo simple
Expresiones:
Condiciones
Controlan cuando puede ejecutarse un nodo, finalizar o las circunstancias en las que lo hace Resultado de evaluar una expresin que puede contener variables o datos del estado de un nodo 7 posibles condiciones:
Tipos de nodos
Cada nodo slo puede ser de un tipo, el cual determinar como se comporta particularmente Seis tipos de nodos:
raiz: raiz: {{ Reala=1; Reala=1; Realb=3; Realb=3; Realc=2; Realc=2; Realx1; Realx1; Realdiscriminando; Realdiscriminando; NodeList: NodeList: calcularDiscriminando: calcularDiscriminando: { { PostCondition:discriminando>=0; PostCondition:discriminando>=0; Assignment:discriminando=b*b4*a*c; Assignment:discriminando=b*b4*a*c; } } calcularRaiz1: calcularRaiz1: { { StartCondition:calcularDiscriminando.outcome==SUCCESS; StartCondition:calcularDiscriminando.outcome==SUCCESS; SkipCondition:calcularDiscriminando.outcome==FAILURE; SkipCondition:calcularDiscriminando.outcome==FAILURE; Assignment:x1=0b+(sqrt(discriminando)/(2*a)); Assignment:x1=0b+(sqrt(discriminando)/(2*a)); } } raizNegativa: raizNegativa: { { StartCondition:calcularDiscriminando.outcome==FAILURE; StartCondition:calcularDiscriminando.outcome==FAILURE; SkipCondition:calcularDiscriminando.outcome==SUCCESS; SkipCondition:calcularDiscriminando.outcome==SUCCESS; 9 Command:x1=calcularRaizCompleja(a,b,c); Command:x1=calcularRaizCompleja(a,b,c); } } }}
Estado de ejecucin (state: inactive, executing, failing...) Puntos de tiempo para un estado (start o end) Estado o valor de salida (outcome: success, failure...) Estado del valor de fallo (si procede) (failure:
post_condition_failed, parent_failed...)
Estado del manejador de comandos (slo nodos de comando) (command_handle: command_success, unknown...)
10
Se permite que un nodo tenga un comportamiento definido de alto nivel, similar a un lenguaje de programacin convencional:
Sequence Unchecked sequence Concurrence Try If-then-else While loop For loop
Root:Concurrence Root:Concurrence {{ Integerx; Integerx; Init: Init: x=GetX(); x=GetX(); Commence: Commence: { { Booleanresult; Booleanresult; StartConditionInit.state==FINISHED; StartConditionInit.state==FINISHED; PostConditionresult; PostConditionresult; SynchronousCommandresult=DoIt(x); SynchronousCommandresult=DoIt(x); } } InformSuccess: InformSuccess: { { StartConditionCommence.outcome==SUCCESS; StartConditionCommence.outcome==SUCCESS; inform("Operationsucceeded!"); inform("Operationsucceeded!"); } } InformFailure: InformFailure: { { StartConditionCommence.outcome==FAILURE; StartConditionCommence.outcome==FAILURE; inform("Operationfailed!"); inform("Operationfailed!"); 11 } } }}
Gestin de recursos
Slo se pueden indicar recursos para los nodos de comando Una entidad particular se encargar de su gestin: el arbitrador de recursos Soporta recursos unarios, no unarios, jerrquicos y recursos renovables Un nodo puede usar varios recursos, con una nica prioridad y la cantidad necesaria puede ser dinmica MoverBrazo1: en tiempo de ejecucin MoverBrazo1: {
{ ResourcePriority:10; ResourcePriority:10; Resource:Name="brazo1"; Resource:Name="brazo1"; Resource:Name=energia, Resource:Name=energia, LowerBound=costeMovimiento, LowerBound=costeMovimiento, ReleaseAtTermination=false; ReleaseAtTermination=false; Command:moverBrazo(); Command:moverBrazo();
12
}}
Para conocer el estado del mundo o actuar sobre l hay tres opciones:
Lookups: permiten consultar un estado particular del mundo a travs de la interfaz de bajo nivel
consultas sncronas o asncronas, usadas como condiciones de ejecucin de los nodos el tiempo se consulta con lookups
13
PlexilScript
No pertenece al lenguaje como tal Se utiliza para la simulacin de planes Igual que PLEXIL se codifica en XML, usando una sintaxis cmoda (Plexil estndar o PlexilLisp) traducida Permite:
Definir los estados y sus valores (entre ellos el tiempo) Cambiar los valores de los estados en cualquier punto Devolver los resultados de las funciones Devolver las respuestas a los comandos lanzados
14
Telemetra
Posibilidad de interaccionar con el sistema de telemetra La telemetra se simula mediante un archivo similar a un script
Line1:<telemetry_data_name:string><time:real> Line1:<telemetry_data_name:string><time:real> Line2:<telemetrydata> Line2:<telemetrydata>
Tambin se puede indicar parmetros del ejecutor al mundo exterior mediante los nodos update
Update<name>=(<value>|<variable>)[,<name>=(<value>|<variable>)]*; Update<name>=(<value>|<variable>)[,<name>=(<value>|<variable>)]*;
15
NDICE
El Universal Executive
El UE es un sistema que interpreta y ejecuta los planes escritos en PLEXIL Dado que el lenguaje es de propsito general, el UE tambin deber serlo El UE como tal es un framework que permite implementar el ejecutor en nuestra propia aplicacin Se compone de:
Ncleo: interpreta y ejecuta el plan Interfaz: define como se comunica con el mundo y el bajo nivel Arbitrador de recursos: componente que gestiona el uso de
recursos
17
El UE y TextExec
Para utilizar el UE se requiere un plan, la definicin de la interfaz correcta as como todos los elementos a controlar El control del framework viene dado por nuestro propio programa de control El TestExec sustituye la interfaz por un interprete PlexilScript Implementa el framework para poder simular planes mediante el plan y un script asociado
18
Ciclos de ejecucin
Estado interno Eventos del mundo exterior (estado y comandos) Los cambios se propagan en cascada
Atomic Step MicroStep
El arbitrador de recursos
Todo comando que utilice recursos deber pasar el proceso de arbitraje El arbitrador indicar que comandos cumplen las restricciones y lo notificar al UE Los recursos se arbitran durante el quiescence cycle
20
Mltiples UE
21
Simulador grfico
Se pueden visualizar grficamente los planes con Plexil Viewer o LUV (Lightweight Universal Executive Viewer) un visor grfico para UE va TCP/IP desarrollado en Java Se emplean los planes creados y su correspondiente script PlexilScript Adems LUV permite obtener diagramas Gantt
22