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.