• Sonuç bulunamadı

GEREÇLER VE YÖNTEMLER

3.1. Sistem Geliştirilmes

3.1.2. Yaz ılım Geliştirilmes

No controle de um sistema complexo como um robˆo, muitos crit´erios podem ser utilizados no alto n´ıvel para definir as condi¸c˜oes ou eventos que ativam as transi¸c˜oes

Fase de Origem Fase de Destino T esteID

GetAway GetBack limitIdist

GetAway Goal sucess&!colision

GetAway stopping colision

Tabela 7.5: Exemplo de dados de uma fase do modelo.

de fase. Dentro destas condi¸c˜oes podemos destacar valores gerados pela percep¸c˜ao, indicadores internos do sistema ou at´e um contador de tempo ou ciclos. No modelo optou-se por concentrar o processamento sempre que poss´ıvel no n´ıvel mais baixo do controle implementado pelo fluxo de processamento. A solu¸c˜ao decorrente desta op¸c˜ao ´e basear todas as transi¸c˜oes de fase definidas pelo projetista em valores associados aos EDs e aos PCs. Quando for necess´ario algum processamento complexo para a decis˜ao de uma transi¸c˜ao, este processamento deve ser realizado por um ou mais BFs e atribu´ıdo a um ED.

As condi¸c˜oes para as transi¸c˜oes ou Testes de Transi¸c˜ao foram definidas como opera¸c˜oes e compara¸c˜oes simples realizada sobre um conjunto de fatores. Duas for- mas foram definidas para um teste, visando simplificar a defini¸c˜ao de condi¸c˜oes pelo projetista. A primeira forma ´e uma compara¸c˜ao simples entre dois fatores, exem- plificada na Tabela 7.6. Na segunda forma ´e inclu´ıda uma opera¸c˜ao matem´atica simples aplicada com um terceiro fator. Esta forma ´e mostrada na Tabela 7.7. Os componentes dos testes s˜ao os seguintes:

T esteID – Identificador ´unico da condi¸c˜ao espec´ıfica. Este identificador ´e textual

para facilitar o uso na defini¸c˜ao das transi¸c˜oes.

F atorID – Identificador do operando utilizado no teste. Este fator pode corresponder

aos seguintes tipos:

V (EDi) O valor armazenado no ED ´ındice i.

R(EDi) O valor da confiabilidade associada ao ED ´ındice i.

P (P Ci) O valor armazenado no parˆametro de controle PC ´ındice i.

Const Um valor constante.

CompID – Identificador textual da compara¸c˜ao realizada no teste. A lista implemen-

tada ´e mostrada na Tabela 7.8. ´E importante ressaltar que ´e simples incluir novas compara¸c˜oes.

OperID – Identificador textual da opera¸c˜ao matem´atica realizada entre os dois pri-

T esteID F atorID CompID F atorID

lowbat VLOWBAT NEQ ZERO

VLOWBAT6= 0

colision VCOLISION NEQ ZERO

VCOLISION6= 0

sucess VDISTGOAL LST PMAXDISTERR

VDISTGOAL<PMAXDISTERR

limitIdist VDISTPI GRT PDISTPI

VDISTPI>PDISTPI

alignedGoal VGOALANG ALST PALIGNANG

ABS(VGOALANG)<PALIGNANG Tabela 7.6: Exemplo de compara¸c˜oes para ativar as transi¸c˜oes.

T este ID F ator ID Oper ID F ator ID Comp ID F ator ID F arIdist V DIST P I SUB P DIST P I GRT P DIST P I

(V DIST P I − P DIST P I) > P DIST P I N earDist V DIST GOAL ADD P DESDIST LST P BEST DIST (V DIST GOAL + P DESDIST ) < P BEST DIST F arDist V DIST GOAL SUB P DIST P I GRT P DIST P I

(V DIST GOAL − P DIST P I) < P DIST P I

CompID Significado

EQ F ator1 = F ator2

NEQ F ator1 6= F ator2

GRT F ator1 > F ator2

LST F ator1 < F ator2

GEQ F ator1 ≥ F ator2

LEQ F ator1 ≤ F ator2

AEQ ABS(F ator1) = F ator2

ANEQ ABS(F ator1) 6= F ator2

AGRT ABS(F ator1) > F ator2 ALST ABS(F ator1) < F ator2

AGEQ ABS(F ator1) ≥ F ator2

ALEQ ABS(F ator1) ≤ F ator2

EQA F ator1 = ABS(F ator2)

NEQA F ator1 6= ABS(F ator2)

GRTA F ator1 > ABS(F ator2)

LSTA F ator1 < ABS(F ator2)

GEQA F ator1 ≥ ABS(F ator2)

LEQA F ator1 ≤ ABS(F ator2)

AEQA ABS(F ator1) = ABS(F ator2)

ANEQA ABS(F ator1) 6= ABS(F ator2) AGRTA ABS(F ator1) > ABS(F ator2) ALSTA ABS(F ator1) < ABS(F ator2)

AGEQA ABS(F ator1) ≥ ABS(F ator2)

ALEQA ABS(F ator1) ≤ ABS(F ator2)

Tabela 7.8: Op¸c˜oes de compara¸c˜oes dispon´ıveis nos testes.

OperID Significado

SUB F ator1 − F ator2

ADD F ator1 + F ator2

MUL F ator1 ∗ F ator2

DIV F ator1 / F ator2

Fase de Origem Fase de Destino T esteID

init AlignSline TRUE

Goal disconect stopped

AlignSline GoToGoal aligned

AlignSline Goal sucess&!colision

AlignSline stopping colision

GoToGoal AlignWall obstacle

GoToGoal Goal sucess&!colision

GoToGoal stopping colision

AlignWall GetAway aligned

AlignWall Goal sucess&!colision

AlignWall stopping colision

GetAway GetBack limitIdist

GetAway Goal sucess&!colision

GetAway stopping colision

Tabela 7.10: Exemplo de transi¸c˜oes de fase do modelo.

Os Testes de Transi¸c˜ao s˜ao utilizados pelo projetista para definir a condi¸c˜ao ne- cess´aria para ativar a transi¸c˜ao de fase. A lista com os teste utilizados no prot´otipo pode ser vista no Apˆendice D.

Uma transi¸c˜ao ´e composta essencialmente da fase de origem e a fase de destino, juntamente com condi¸c˜ao, definida por uma equa¸c˜ao l´ogica na qual os fatores s˜ao os identificadores dos Testes de Transi¸c˜ao. O formato de descri¸c˜ao de uma transi¸c˜ao ´e o seguinte:

Origem Fase de origem. Destino Fase de destino.

Equa¸c˜ao Equa¸c˜ao booleana que unifica as condi¸c˜oes definidas. As equa¸c˜oes podem se utilizar os seguintes operadores:

& – And + – Or ! – Not * – Xor

O formato das transi¸c˜oes e condi¸c˜oes associadas foi criado de forma a ter um pro- cessamento simples, al´em de permitir um alto grau de expressividade para o projetista. Como os testes s˜ao de natureza simples, ´e poss´ıvel interpret´a-los, ou simplesmente codificar automaticamente uma fun¸c˜ao na linguagem C que implemente os testes de forma eficiente.

Da maneira que as transi¸c˜oes s˜ao definidas, ´e poss´ıvel que duas transi¸c˜oes distintas sejam habilitadas simultaneamente. Assim sendo, ´e necess´ario criar crit´erios de de- sempate ou de prioridade. Como a prioridade deve ser definida pelo projetista, ´e f´acil assumir seq¨uˆencia de defini¸c˜ao das transi¸c˜oes como o crit´erio de prioridade entre elas. Em outras palavras, quando duas ou mais transi¸c˜oes ficam ativas simultaneamente, a primeira na ordem que o projetista definiu ´e efetivada.

Benzer Belgeler