www.cin.ufpe.br/~posgraduacao
Recife, Agosto/2010
Recife, Agosto/2010
Agradecimentos
Agradeo ao meu orientador, Aluzio Arajo, pela presena constante, pelo apoio,
pelo incentivo, por ter sido de fato um guia em todos os momentos da execuo deste
trabalho, sem ele este trabalho no teria sido realizado.
A minha me, Girlde Santana, pelo amor de me que se fazer presente mesmo
a centenas de quilmetros de distncia. Ao meu pai, Orivaldo Santana, por ter dado
incio ao meu processo de formao educacional. A minha irm simplesmente por
fazer parte da minha vida e do meu processo de formao como pessoa.
Aos meus tios, Jos Maria, Orlando, Osvaldino, Olderico, aos meus primos Fabrcio
e Aise Anne, aos membros da famlia aqui no citados por estarem disponveis para
ajudar em qualquer momento.
Aos amigos que fiz em Pernambuco, Andr Tiba, Hansenclever, Flvia, Davi, Miguel
e todos os outros aqui no citados, pela horas compartilhadas de trabalho e diverso.
Os professores do Centro de Informtica que contriburam para minha formao no
mestrado.
A toda minha famlia e amigos que direta ou indiretamente contriburam para a
realizao do mestrado.
Aos membros da banca pela contribuies na verso final desta dissertao.
iv
Resumo
Abstract
This work is placed within the area of Control and Management of Legged Robots
locomotion and presents a new model of neural networks: the STRAGIC (States
Trajectories Generator with Inter-Connection) as well as others models and neural
networks applied to this knowledge domain. The STRAGIC was designed from the
STRAGEN that is a self-organized map of variable topology. The STRAGIC controls the
robots locomotion by the states trajectories that describe robots posture in regular intervals of time. Some environments of test were made to verify the STRAGICs capacity
to: control the robot with a determined locomotion mode; control the robot with noisy
data; control the robot from a database with states of different trajectories; manage
transitions between gaits; and finally extract states trajectories from the locomotion of
a real animal. Furthermore, studies two important parameters of the STRAGIC.
Keywords: CPG, Central Pattern Generator, Neural Networks, Self-Organized Maps,
Legged Robots, Locomotion
vi
Sumrio
vii
Lista de Figuras
viii
Lista de Tabelas
ix
Lista de Acrnimos
1
Introduo
Figura 1.2:
Rob para detectar minas terrestres (imagem
http://www.iai.csic.es/users/silo6/SILO6_WalkingRobot.htm).
obtida
em
Figura 1.3: Rob biologicamente inspirado na lagosta para localizar minas subaquticas.
em um mapa auto-organizvel para o controle de locomoo robs com membros.
As abordagens mais citadas na literatura para o controle de locomoo de robs com
membros so biologicamente inspiradas em um circuito neural chamado de Gerador
Central de Padres (CPG) (?). Um CPG composto de osciladores neurais que produz
padres (sinais) repetitivos envidados para os msculos dos membros do animal. Como
os osciladores do CPG atuam sincronizadamente, os msculos so ativados de maneira
sincronizada e rtmica provocando o deslocamento do animal. Normalmente um CPG
modelado matemtica atravs de equaes diferenciais, mais especificamente com
equaes de osciladores no-lineares (??). Este tipo de modelagem implica em ajustar
um conjunto de parmetros ou at mesmo modificar equaes para produzir o controle
de locomoo desejado.
A abordagem proposta, chamada de STRAGIC (Gerador de Trajetrias de Estados
com Interconexes), possui algumas caractersticas extradas dos CPGs. So elas:
executar a transio entre velocidades de deslocamento do rob atravs de um simples
comando. No CPG este comando um sinal vindo do tronco cerebral; os sinais de sada
gerados so sincronizados e rtmicos, assim como nos CPGs. A abordagem proposta
neste trabalho inovadora, pois no foi encontrado nenhum registro na literatura de
abordagens semelhantes para robs caminhantes.
O mapa auto-organizvel escolhido foi o STRAGEN (?), pois entre alguns mapas
auto-organizveis de topologia varivel, o STRAGEN foi aplicado com sucesso a um
problema semelhante, o controle de manipuladores robticos. Os dados fornecidos
ao modelo proposto so obtidos de um rob simulado ou um animal real, mas sem
considerar informaes cronolgicas. Estes dados so organizados de maneira autnoma pela rede gerando uma estrutura semelhante a um grafo. Cada neurnio da
rede considerado um n e possui um estado contendo informaes relacionadas ao
posicionamento dos membros.
O controle de locomoo consiste basicamente em construir uma trajetria de estados e utilizar as informaes contidas nos estados para determinar o posicionamento
dos membros do rob durante a locomoo. De maneira simplificada, a abordagem
proposta captura informaes da locomoo de um agente externo, gera uma representao interna e utiliza este representao interna para controlar o rob. O agente
externo pode ser um rob ou animal real e o rob controlado pela abordagem proposta
precisa ser o mais similar possvel ao agente externo.
Este trabalho tem como principal objetivo propor e implementar um modelo para
controle de locomoo de um rob com membros inferiores. O modelo deve tomar
como base um mapa auto-organizvel. Os objetivos especficos podem ser definidos a
seguir:
Investigar a aplicabilidade de modelos de redes neurais baseados em Mapas
Auto-Organizveis (SOM Self-Organizing Maps), derivando adaptaes ou novos
modelos segundo as necessidades inerentes ao problema;
Montar um ambiente de simulao;
Desenvolver mecanismos de simulao e testes para a avaliao do modelo
proposto;
Verificar a capacidade do modelo em gerar os mesmos sinais de sada de um CPG
e gerenciar a mudana de velocidade;
Investigar a capacidade do modelo proposto em lidar com dados extrados da
locomoo de um animal real.
Uma contribuio relevante deste trabalho a proposio de um modelo para o
controle de locomoo de robs articulados baseado em uma abordagem inovadora. A
principal caracterstica desta nova abordagem construir de maneira autnoma um
mecanismo de controle a partir de dados extrados da locomoo de um agente externo,
seja este agente um rob ou um animal real. O modelo tambm capaz de lidar com
dados ruidosos. A autonomia do modelo ocorre por meio da utilizao de uma mapa
auto-organizvel de topologia varivel. Alm disso, a proposta do modelo inclui um
mecanismo para a transio entre diferentes modos de locomoo.
Os experimentos esto divididos em duas partes, uma para dados artificiais extrados de uma locomoo artificial e outra com dados reais. Os dados artificiais foram
gerados para um rob hexpode (com seis pernas) controlado com o algoritmo de ?).
As seguintes questes so consideradas nos experimentos com dados artificiais:
O controle de locomoo e gerenciamento da transio entre modos de locomoo
de um determinando rob hexpode;
Um estudo paramtrico do STRAGIC (Gerador de Trajetrias de Estados com
Interconexes) analisando dois dos seus parmetros, denominados de limiar de
1 http://www.youtube.com/watch?v=-StFMBw3W-U
2
Descrio do Problema
A robtica, um campo relativamente recente da tecnologia moderna, ultrapassa as fronteiras da engenharia tradicional. Entender a complexidade dos robs e suas aplicaes
requer conhecimento em engenharia eltrica, engenharia mecnica, cincia da computao, matemtica etc. O termo rob aplicado a uma grande variedade de dispositivos
mecnicos possuidores de algum grau de autonomia, podendo ser teleoperados (?).
Os robs geralmente so projetados para realizar algum tipo de trabalho, por
exemplo, manipulao industrial. O uso da robtica oferece diversas vantagens, como
a diminuio do custo do trabalho, aumento da preciso e produtividade. Os robs
geralmente so utilizados em trabalhos nos quais o ser humano submetido a condies
montonas, repetitivas ou perigosas. A robtica no aplicada somente na indstria,
mas em reas onde o uso de humanos impraticvel ou indesejado, como: a explorao
do fundo do mar ou de outro planeta; reparo ou resgate de satlite; desarmamento
de dispositivos explosivos e trabalho em ambiente radioativo (?). Eles so aplicados
tambm em reas onde a comercializao de robs vivel, como: polimento no cho;
vigilncia de uma fbrica; corte de grama; passeios em um museu; orientaes em um
supermercado (?).
Em ambientes hostis, perigosos ou inabitveis, a aplicao de sistemas teleoperados torna-se cada vez mais comum. Para explorar a superfcie de Marte, a NASA
(Administrao Nacional do Espao e da Aeronutica National Aeronautics and Space
Administration ) utilizou um rob em modo teleoperado (Controlado a partir da Terra),
Figura ??. A Plustech desenvolveu um rob caminhante para carregar madeira para
fora da floresta, Figura ??, onde a navegao feita por um operador dentro do rob
e a coordenao entre pernas automtica (?). Um exemplo de rob semi-autnomo
capaz de navegar de maneira independente ou teleoperada no ambiente o rob de
seis membros proposto por ?) para a deteco de minas terrestres.
Figura 2.1: Rob mvel Sojourner usado pela NASA durante a misso de explorao
de Marte em 1997.
Figura 2.2: Rob caminhante projetado pela Plustech.
Em robs teleoperados, a complexidade por trs do mecanismo de controle de locomoo geralmente torna impossvel para o operador humano controlar o deslocamento
do rob. O homem executa as atividades cognitivas e de localizao, mas depende do
esquema de controle interno do rob para conduzir sua locomoo (?).
Segundo ?), o controle de locomoo, bem como a reproduo de um determinado
modo de locomoo, em um rob cujos membros inferiores possuam mltiplos graus
de liberdade um problema complexo e desafiador . Algumas das abordagens mais
comuns (??????) para resolver o problema de locomoo de robs com membros
inferiores esto relacionadas ao CPG (Central Pattern Generator). O CPG controla o
movimento peridico executado por cada membro, bem como o sincronismo entre
membros. Sob o ponto de vista da biologia, um CPG um circuito neural capaz de
produzir sinais neurais rtmicos sem receber estmulos rtmicos. Este circuito neural,
constitudo de osciladores neurais, encontrado principalmente na medula espinhal de
animais vertebrados durante a locomoo produz descargas peridicas de impulsos
nervosos. Estes impulsos ativam os motoneurnios produzindo sequncias alternadas
entre flexo e extenso em vrios msculos de um membro.
As caractersticas dos sinais gerados pelo CPG influenciam o movimento de cada
membro. Considerando que o CPG composto de osciladores e que o movimento de
uma articulao controlado por um conjunto de osciladores, as oscilaes geradas
influenciam diretamente o movimento da articulao. Logo, caractersticas como,
frequncia, amplitude e formas dos sinais gerados modulam o movimento de cada
articulao, influenciam na eficincia do controle motor, consequentemente, no modo
de locomoo resultante (?).
Em animais, um determinado modo de locomoo caracterizado pelo ciclo de
trabalho e pela fase relativa de cada membro. Um passo, isto , um ciclo de locomoo
do membro, dividido em duas fases, uma chamada de apoio e outra de balano.
?) caracterizam a fase de apoio pelo contato do membro com o cho e a fase de
balano pelo membro livre no ar e sem contato com o cho. Em cada instante de
tempo, um determinado membro est em um posicionamento dentro da sequncia
de posicionamentos que compe o passo. Cada modo de locomoo tem sua prpria
maneira de posicionar os membros em cada instante. Logo, um modo de locomoo de
um ser articulado pode ser descrito como a movimentao coordenada dos membros,
isto , o momento e a localizao de apoiar e levantar cada p coordenados com o
movimento do corpo a fim de conduzir o corpo de um lugar a outro do espao. Um
modo de locomoo determina a velocidade e a direo da movimentao de um
animal ou rob caminhante (??).
?) descrevem alguns modos de locomoo de quadrpedes da seguinte forma: (i)
no modo de locomoo caminhada, cada membro atinge o cho um aps o outro, e o
intervalo entre cada descida de 1/4 do ciclo da durao de um passo; (ii) no modo
trote, os membros nos cantos diagonais do corpo trabalham sincronizadamente; (iii)
no galope leve, um p frontal e um p traseiro diagonal tocam o cho juntos; (iv) um
galope um modo de locomoo rpido no qual a sequncia de passadas acontece em
torno de um ciclo .
A locomoo de robs com pernas caracterizada por uma sequncia de pontos
de contato entre os membros do rob e cho. Durante a locomoo, uma parte dos
membros est em contato com o cho e a outra parte esta livre no ar. A principal
vantagem de um rob com membros a adaptabilidade e a capacidade de manobra em
terrenos irregulares. Pois apenas um conjunto de pontos de contato necessrio para
manter o rob equilibrado e deslocando-se, no importando as caracterstica do solo. O
rob apenas precisa manter os membros livres e distantes do solo de maneira que no
atrapalhe seu deslocamento. Alm disso, um rob caminhante capaz de atravessar
um buraco ou uma fenda enquanto seu corpo passa sobre o buraco (?).
Outra vantagem da locomoo com pernas o potencial de manipular habilidosamente objetos do ambiente. Um exemplo a locomoo do escaravelho, inseto capaz
de rolar uma bola com as patas traseiras enquanto locomove-se habilidosamente com
as patas frontais (?).
A principal desvantagem da locomoo com pernas inclui a complexidade mecnica
e energtica. A perna, que pode possuir vrios graus de liberdade, deve ser capaz de
sustentar uma parte do peso total do rob. Alm disso, alta capacidade de manobra
ser vivel apenas se as pernas possurem um nmero suficiente de graus de liberdade.
2.1
2.1.1
Modelos de CPGs
Modelos de CPGs foram construdos principalmente para insetos e vertebrados inferiores. Muitos modelos de CPG so inspirados no circuito de natao da lampreia,
construdos a partir de redes no-lineares celulares ou sistemas de osciladores acoplados. Um CPG muito investigado o da lampreia sendo modelado de vrias maneiras:
biofsica, conexionista, sistemas de osciladores acoplados e simulao neuromecnica
(?).
O interessante trabalho de ?) na linha de robs biologicamente inspirados testa um
modelo de CPG de uma salamandra2 real em um rob anfbio inspirado na salamandra.
Este modelo, baseado no trabalho de ?), composto de 20 osciladores de fase de
amplitude-controlada. Os osciladores recebem um sinal representando o estmulo
descendente da Regio Locomotora Mesenceflica. As sadas do CPG so valores para
o posicionamento angular das articulaes enviados para um controlador proporcionalderivativo para controlar os membros do rob.
O modelo de CPG desenvolvido por ?) utiliza CNNs (Redes No-lineares Celulares
Cellular Nonlinear Networks). Neste caso, as CNNs so transformadas em um conjunto
de osciladores acoplados para compor o CPG. Este modelo tambm prope um novo
mtodo para selecionar um modo de locomoo, onde a transio entre um modo de
locomoo e outro suave. Isto viabilizado atravs de um controle de alto-nvel
baseado em um mapa motor, baseado em um mapa auto-organizado. Este mapa,
inspirado no crtex motor, recebe como entrada a velocidade do rob e produz como
sada os parmetros dos osciladores CNNs, controlando assim o modo de locomoo
resultante.
?) investigaram alguns modelos de neurnios para CPGs, como por exemplo, o modelo sigmoidal. A tratabilidade analtica do modelo sigmoidal facilita o treinamento de
redes feedforward utilizando algoritmos de gradiente descendente como backpropagation,
2 As
aplicados ao controle de robs insetos caminhantes. Para ?) ficou claro que modelos
mais completos so mais fceis de treinar para uma tarefa de controle, produzindo
passos repetidos e aparentemente mais estveis. Isto pode estar relacionado com a facilidade de neurnios mais complexos produzirem movimentos oscilatrios e tambm a
simplicidade de evolurem os poucos pesos das redes menores.
?) apresentaram um mtodo de aprendizagem por reforo aplicado ao problema de
controle automtico em um simulador de rob bpede. O rob controlado por seis
torques, cada um aplicado a uma junta. O CPG bsico uma rede composta por seis
osciladores neurais. Cada oscilador neural gera torques de controle para uma junta
correspondente. A recompensa varia de acordo com a altura do p e da cintura, com a
velocidade horizontal da cintura, e com as penalidades aplicadas quando o rob cai.
2.1.2
Projeto de CPGs
Ainda no existe uma metodologia bem estabelecida para projetar CPGs (??) e diferentes abordagens tm sido investigadas tais como osciladores no-lineares, modelagem
biolgica de neurnios, redes celulares no-lineares, etc. Para que o CPG construdo
com algumas destas abordagens comporte-se da maneira desejada necessrio que
os parmetros destas abordagens sejam configurados corretamente. Para chegar a
estes parmetros, algumas tcnicas so utilizadas, como os algoritmos evolucionrios
(???), aprendizagem por reforo (?) ou uma metodologia especfica para ajustar esses
parmetros (?).
?) define alguns itens presentes no projeto de CPGs:
1. A arquitetura geral do CPG, incluindo o tipo e nmero de neurnios;
2. As conexes entre neurnios, que determinam a sincronizao entre os osciladores
e influencia no modo de locomoo resultante;
3. As oscilaes determinando as trajetrias executadas por cada junta durante um
ciclo;
4. O efeito dos sinais de entrada, isto , como o controle de parmetros modula a
frequncia, a amplitude, a fase de movimento das pernas ou as oscilaes;
Para construir CPGs baseados em osciladores no-lineares ou at mesmo em modelos matemticos de neurnios reais necessrio conhecer diversos modelos para
encontrar um que se comporte de maneira desejada. Caso tal modelo no seja encontrado, o modelo possuidor do comportamento mais prximo do desejado escolhido e
10
adaptado. Para conseguir esta adaptao, parmetros das equaes que descrevem o
modelo precisam ser modificados, adicionados ou retirados (?). O Captulo ?? descreve
em detalhes duas abordagens utilizadas para projetar CPGs.
2.2
Trajetria de Estados
2.1
2.3
Consideraes
O controle de locomoo atravs de CPGs requer o conhecimento de alguma metodologia para construir um modelo capaz de gerar padres que se repetem constantemente
11
2.3. CONSIDERAES
12
3
CPGs e Redes Neurais
Os assuntos tratados nesta seo esto relacionados a duas abordagens utilizadas para
o controle de locomoo de robs com pernas, uma baseada em um modelo de CPG
biolgico e a outra baseada em uma rede no-linear celular. Estas abordagens de
maneira geral so biologicamente inspiradas, cada uma com um nvel de abstrao.
A Seo ?? faz uma breve introduo de alguns estudos sobre CPGs biologicamente
inspirados. J a Seo ?? mostra como alguns CPGs so modelados matematicamente.
A Seo ?? apresenta a abordagem com maior grau de inspirao biolgica. Esta
abordagem abstrai o circuito neural de controle de locomoo biolgico em nvel
de neurnio, modelando o neurnio levando em considerao a organizao dos
neurnios dentro do CPG. A segunda abordagem, descrita na Seo ?? abstrai o CPG,
em nvel de comportamento, projetando uma rede no-linear celular para comportar-se
de maneira semelhante a um circuito neural de controle de locomoo. Para facilitar o
entendimento da segunda abordagem, a rede no-linear celular descrita na Seo ??.
3.1
Esta seo apresenta alguns modelos de CPGs modelados utilizando uma abordagem
biologicamente inspirados, principalmente os trabalhos relacionados a Ijspeert. Os
primeiros estudos de Ijspeert reportam a aplicao de algoritmos evolucionrios para
ajustar os parmetros de um modelo neural de controlar de locomoo da lampreia em
um ambiente simulao. Este modelo neural foi desenvolvido a partir do modelo biolgico da lampreia proposto por Ekeberg. ?) tambm apresentaram uma abordagem que
utilizava um algoritmo gentico para evoluir a arquitetura de um modelo conexionista
capaz de determinar a atividade muscular durante a execuo do nado da lampreia
simulada. ?) propuseram outra abordagem baseada em programao gentica para
13
Figura 3.1: 4 segmentos de rede do controlador biolgico, onde cada segmento de rede
composto de 8 neurnios. Quatro tipos de neurnios esto presente nos osciladores:
trs tipos de interneurnio (EIN, CIN e LIN) e os motoneurnios MN. Os controladores podem receber realimentao das clulas excitatrias (EC). As linhas tracejadas
mostram as interconexes entre segmentos vizinhos. Figura extrada de ?).
3.1
1
=
(
u i wi )
D i
3.2
1
=
(u )
A
3.3
(
u=
1 exp{( + )} (u > 0)
0
( u 0)
3.4
14
3.2
3.5
15
y i = xi pyi ,
z i = xi qzi ,
3.6
3.7
Tr u + ui = wij y j vi + si ,
j =1
Ta v i + vi = yi ,
yi = g(ui ) = max(ui , 0),
3.8
3.9
onde ui o potencial da membrana do i-simo neurnio; vi uma varivel que representa o grau de adaptao do neurnio i; Tr e Ta so constantes do tempo de crescimento
e do tempo de adaptao; wij o peso da sinapse inibitria da conexo que sai do
neurnio j para o i; o parmetro que determina a taxa de disparos; si uma entrada
externa, e yi a sada do neurnio.
O neurnio de um CPG pode ser entendido como um oscilador no-linear, pois o
papel do neurnio no CPG justamente produzir periodicamente sinais oscilatrios.
Entre os modelos de osciladores no-lineares esto o modelo de Kuramoto e o de Hopf
(?). O modelo de Kuramoto (?) um oscilador simples que consiste em uma populao
de N osciladores de fase acoplados, descrito matematicamente por:
N
i = wi + Kij sin( j i ),
j =1
i = 1, 2, ..., N,
3.10
16
3.11
p
onde r = x2 + y2 ; > 0 determina a amplitude do sinal de sada; o parmetro w
controla a frequncia do oscilador. O oscilador tem um ciclo limite estvel com raio
3.3
17
ri = ai
a
( Ri ri ) r i ,
4
xi = ri (1 + cos(i )),
18
osciladores dos membros para os osciladores do corpo cuja fora maior que a dos
acoplamentos entre os osciladores do corpo, desta maneira o comportamento do CPG
dos membros influencia no comportamento do CPG do corpo (?).
3.4
3.4.1
A Clula CNN
Em vrios trabalhos sobre CPGs baseados em osciladores acoplados, o neurnio representa o oscilador e na CNN ele definido como uma clula (?). Na estrutura de
uma CNN cada clula um sistema dinmico, conectada apenas a sua vizinhana
satisfazendo algumas propriedades: interaes limitadas a uma vizinhana de raio
finito; e todas as variveis de estado so de valores contnuos (??). A vizinhana de
uma clula em uma CNN de tamanho MxN expressa pela Equao ??:
Nr (i, j) = {C (k, l )|max {|k i |, |l j|} 6 r, 1 6 k 6 M, 1 6 l 6 N },
3.12
onde C (i, j) denota a clula da i-sima linha e j-sima coluna. O raio r da CNN utilizada
neste trabalho tem tamanho 1.
19
3.4.2
Modelagem Matemtica
Segundo ?), uma CNN caracterizada pelo conjunto de equaes diferenciais a seguir:
C
dxij (t)
1
= xij (t) +
A(i, j; k, l )ykl (t) + B(i, j; k, l )ukl (t) + zij ,
dt
Rx
C (k,l ) N (i,j)
C (k,l ) N (i,j)
r
1 6 i 6 M; 1 6 j 6 N
3.13
1
yij = f ( xij ) = (| xij + 1| | xij 1|),
2
uij = Eij ,
1 6 i 6 M; 1 6 j 6 N
1 6 i 6 M; 1 6 j 6 N
3.14
3.15
Algumas restries:
| xij (0)| 6 1,
1 6 i 6 M; 1 6 j 6 N
|uij | 6 1,
1 6 i 6 M; 1 6 j 6 N
3.16
3.17
A clula bsica CNN nij possui um estado xij , uma entrada uij , um limiar zij , uma
sada yij e uma corrente de entrada sinptica IijN . Esta corrente sinptica depende da
entrada ui+k,j+l (t) e do estado xi+k,j+l de todas as clulas localizadas na vizinhana
de tamanho r de nij , caso r = 1, k e l {1, 0, 1}. A contribuio vinda da entrada
ui+k,j+l (t) de cada clula vizinha modelada por uma fonte controlada do tipo linear
bkl ui+k,j+l (t). A contribuio de cada estado xi+k,j+l (t) de cada clula vizinha ni+k,j+l
modelada por um fonte controlada do tipo no-linear akl f ( xi+k,j+l ), onde f () descreve
uma funo escalar no-linear, ver Equao ??. Os coeficientes akl pertencem ao template
de retroalimentao A e os coeficientes bkl pertencem ao template de entrada ou de
controle B. O template aparece na forma A(i, j, k, l ), onde: A o nome do template; i e j
identificam a clula; k e l identificam um elemento dentro do template. Um template de
realimentao A de tamanho 3x3 e com uma vizinhana de raio 1 mostrado na Tabela
??. O coeficiente central a0,0 do template A est relacionado realimentao da prpria
clula nij . Uma clula CNN dita autnoma quando no possui entradas externas ou
seja uij = ui+k,j+l = 0.
A modelagem da corrente sinptica em uma clula CNN semelhante ao comportamento biolgico onde cargas eltricas chegam aos dendritos de uma clula vindas
dos axnios de outras clulas, atravs da sinapse. Um ilustrao de como uma clula
20
Figura 3.3: Clula autnoma CNN (uij = ui+k,j+l = 0). Cada sinapse (fonte de corrente
controlada) mostrada como uma funo no-linear de seu estado atual xij e seus
estados vizinhos xi+k,j+l .
a1,1
a0,1
a1,1
a1,0
a0,0
a1,0
a1,1
a0,1
a1,1
nij relaciona-se com suas vizinhas atravs da corrente sinptica IijN (t), apresentada na
Figura ?? e a definio matemtica na Equao ??.
IijN =
akl f ( xi+k,j+l ) +
kl 6=0,0
bkl ui+k,j+l
kl 6=0,0
3.18
De acordo com ?), a clula bsica pode ser descrita utilizando uma equao de
estado de primeira ordem como a Equao ??:
1 xij
N
a00 f ( xij ) b00 uij zij Iij
x ij =
C R
3.4.3
3.19
21
Figura 3.5: Grfico do estado interno xij versos a sada yij de uma clula CNN.
0
1
0
1
-4
1
0
1
0
3.4.4
Na modelagem de CPG proposta por ?), a CNN utilizada do tipo Difuso de Reao.
Esta CNN uma rede simples de duas camadas capaz de gerar ondas autnomas.
Algumas caractersticas marcantes nas ondas autnomas so: possuir forma constante
durante a propagao; e no ser afetadas por interferncias (?). As conexes entre as
clulas so definidas por um template de difuso de reao e cada clula um circuito
no linear de segunda-ordem que independente de sua vizinhana comporta-se como
um oscilador no-linear (?). A autonomia da rede devido ao fato de no existir sinais
de entrada. Ela chamada de difuso de reao porque descrita matematicamente por
uma verso discretizada de um sistema de equaes diferenciais parciais no-lineares,
geralmente referenciadas na literatura como equaes de difuso de reao (?).
As duas camadas da RD-CNN (CNN de Difuso de Reao) interagem dentro
de cada clula gerando oscilaes, sendo que a interao com a vizinhana obtida
separadamente por meio de dois templates de difuso, um para a primeira camada e
outro para a segunda camada. No existe interao direta entre a camada 1 de uma
clula C (i, j) e a camada 2 das clulas de sua vizinhana e vice versa (?). Os templates
de difuso de reao so baseados no Laplaciano, cujo intuito ponderar o efeito das
variveis de estado das clulas vizinhas (??). Para exemplificar, um template Laplaciano
discretizado em duas dimenses apresentado na Tabela ??. As clulas da RD-CNN
para gerar as ondas autnomas so descritas pelo seguinte sistema de segunda ordem
(?):
x 1,i,j = x1,i,j + (1 + + )y1,i,j s1 y2,i,j + i1
3.20
x 2,i,j = x2,i,j + s2 y1,i,j + (1 + )y2,i,j + i2
3.21
Com i = 0, 1, ..., M 1 e j = 0, 1, ..., N 1. A influncia das constantes e s no comportamento de um sistema dinmico autnomo simples, semelhante ao de uma clula
RD-CNN, descrito no apndice ??. Os sinais dos estados internos e das sadas de uma
rede com dois neurnios so expressos nos grficos da Figura ??.
22
Figura 3.6: Grfico dos valores dos estados internos (x1 e x2 ) e das sadas (y1 e y2 ) para
uma rede CNN com dois neurnios A e B cada um com duas camadas. A linha verde
indica os valores de y e a linha azul indica os valores de x.
h
iT
h
iT
h
iT
h
iT
onde x ij = x 1;i,j x 2;i,j , xij = x1;i,j x2;i,j , yij = y1;i,j y2;i,j e uij = u1;i,j u2;i,j
representam a variao no tempo do estado interno, o estado interno propriamente
dito, a sada e a entrada da CNN, respectivamente. A, B e I representam os templates de
realimentao, de controle e de bias, respectivamente. O template A, de difuso discreta,
define a relao das clulas com seus vizinhos sendo expresso da seguinte maneira:
A=
!
A11 A12
;
A21 A22
B = 0;
I=
0 0 0
A12 = A21 = 0 s 0 ,
0 0 0
!
i1
.
i2
3.23
A11 e A22 so matrizes 3x3 e definem a relao com as clulas vizinhas para as camadas
1 e 2 respectivamente. O operador de convoluo bidimensional para um template T
definido por ?) como:
T xij =
C (k,l ) Nr (i,j)
T(k i, l j) xkl ;
3.24
3.5
O Modelo de Arena
23
3.25
3.5.1
Abordagem Multi-Template
24
25
3.6. CONSIDERAES
3.5.2
Mapas Motores
3.6
3.26
Consideraes
26
3.6. CONSIDERAES
27
4
Mapas Auto-Organizveis
4.1
Algumas Definies
28
4.2. SOM
O neurnio vencedor s possui vetor sinptico ws , tambm conhecido como neurnio mais adaptado, aquele que possui o maior grau de semelhana com o
estmulo de entrada;
Vrtice ou conexo, um conceito comum nos mapas auto-organizveis, unem os
neurnios para formar a sua vizinhana;
4.2
SOM
Segundo ?), um SOM (Mapa Auto-Organizado Self-Organizing Map ) uma ferramenta matemtica para visualizao de dados de alta-dimensionalidade. Ele cria um
mapeamento de uma distribuio de alta-dimenso em uma grade regular de baixadimenso. Sendo capaz de compactar informaes preservando os relacionamentos
topolgicos e as mtricas mais importantes dos dados originais. Com base nestas
caractersticas dois aspectos so evidenciados, o de abstrao e exibio simplificada
da informao. Estes dois aspectos podem ser utilizados de diversas maneiras em
uma variedade de aplicaes prticas como em reconhecimento de voz, anlise de
imagem, processos industriais de controle, organizao automtica de documentos
numa biblioteca, visualizao de registros financeiros etc
Os estmulos chegam para todas as unidades na rede, no entanto a unidade mais
ativa aquela cujo vetor de pesos wi mais prximo do estmulo de entrada. Esta
unidade chamada de vencedora ws , mantm-se ativa induzindo ativao dos neurnios vizinhos. Um requisito para a auto-organizao que os pesos sinpticos de
uma unidade sejam modificados apenas na vizinhana local da unidade vencedora e
todos os pesos modificados assemelhem-se ao estmulo atual com mais preciso que no
passado. Diferentes sinais de entrada em diferentes tempos afetam regies diferentes
na grade de unidades. Deste modo, depois de muitos passos de aprendizagem, os
pesos sinpticos (wi ) comeam a adquirir valores que se relacionam suavemente dentro
desta grade de maneira equivalente aos estmulos do espao de entrada () (?).
A unidade vencedora ws aquela possuidora do maior grau de semelhana com o
estmulo de entrada. A equao ?? descreve o processo de comparao:
4.1
29
4.3. GCS
4.2
4.3
4.3
GCS
30
4.3. GCS
onde w ( ) = ws o vetor sinptico do neurnio vencedor encontrado matematicamente com a equao ??. Com o mapeamento w que associa cada estmulo de entrada
a um vetor sinptico wi , V particionado em regies Fi (i A), cada uma formada
de localizaes que possuem em comum o vetor sinptico wi mais prximo. Este particionamento conhecido como decomposio de Voronoi, e as regies so denotadas
como regies de Voronoi (?).
A princpio, a adaptao dos vetores sinpticos no GCS feita como Kohonen
props:
1. Determine a unidade mais semelhante para o estmulo de entrada atual.
2. Torne a unidade mais semelhante e a sua vizinhana topolgica ainda mais
semelhante a este estmulo.
No modelo de Kohonen, a taxa de aprendizagem, chamada de fora de adaptao
por ?), diminui com o decorrer das iteraes. Alm disso a vizinhana topolgica
escolhida grande no incio e tambm diminui com o tempo. Existem, no entanto, duas
diferenas importantes entre o GCS e o SOM, so elas:
A fora de adaptao constante no tempo, mais especificamente os parmetros
de adaptao s e n relacionados a unidade mais semelhante e aos neurnios
vizinhos respectivamente;
Apenas a unidade mais semelhante e seus vizinhos topologicamente diretos so
adaptados.
31
4.3. GCS
O passo de adaptao do algoritmo GCS pode ser descrita como a seguir ?):
1. Escolha um estmulo de entrada levando em conta a distribuio de probabilidade P( );
2. Encontre o neurnio vencedor s;
3. Mova s e sua vizinhana topolgica direta em direo a :
ws = s ( ws )
wns = n ( wns )
(ns Ns ),
4.5
4.6
4.7
(i A),
4.8
assim, as vitrias mais recentes recebem uma ponderao mais forte do que os
anteriores.
A distribuio de probabilidade P( ) no conhecida explicitamente, mas pode ser
estimada com contador local de vitrias. Este contador indica a frequncia relativa dos
estmulos de entrada recebidos por um neurnio. A frequncia relativa de vitrias de
um neurnio i dada por
hi = i / j .
4.9
j A
Espera-se que a frequncia relativa de vitrias de cada neurnio seja similar. Um valor
elevado de hi , portanto, indica um boa posio para inserir um novo neurnio desde
que o novo neurnio seja capaz de reduzir este valor elevado ?).
Sempre depois de um nmero fixo de passos de adaptao o neurnio q com a
seguinte propriedade determinado
h q > h i i A ).
4.10
32
4.4. GNG
k w f w q k > k wi w q k
(i Nq ).
4.11
4.12
i =
| Fi
(velho )
| | Fi
(velho )
| Fi
i (para todo i Nr ).
4.13
i .
i Nr
4.4
4.14
GNG
A rede GNG (Growing Neural Gas) proposta por ?) outro modelo de topologia varivel
muito semelhante ao GCS e caracterizado da seguinte maneira:
Um conjunto A de neurnios, em que cada neurnio i A tem um vetor sinptico
associado wi Rn .
Um conjunto N de conexes entre pares de neurnios. Estas conexes no ponderadas tm o propsito de definir a estrutura topolgica da rede.
O estmulo de entrada obedece a alguma funo de densidade de probabilidade
P( ) desconhecida
O crescimento do GNG ocorre levando em conta uma avaliao local com medidas
estatsticas obtidas nas iteraes ou passos de adaptao do passado, semelhante ao
33
4.4. GNG
4.15
4.16
wn = n ( wn ), n Ns1
4.17
7. Se s1 e s2 possui uma conexo, atribua o valor zero a esta conexo. Se tal conexo
no existe, crie.
8. Remova conexes com idade maior que amax . Se resultar em neurnios desconexos, remova-os.
9. Se o nmero de estmulos de entrada apresentados a rede at o momento for um
mltiplo de um parmetro , insira um novo neurnio como a seguir:
Determine o neurnio q com o mximo erro acumulado;
Insira um novo neurnio r na metade da distncia entre q e seu vizinho f
com o maior erro:
wr = 0.5(wq + w f ).
4.18
Insira conexes entre novo neurnio r e os neurnios q e f , e remova a
conexo original entre q e f ;
Decremente a varivel de erro de q e f multiplicando por uma constante .
Inicialize a varivel de erro de r com o mesmo valor da varivel de erro de q.
10. Decremente todas as variveis de erro, multiplicando-as por uma constante d.
34
4.5. GWR
4.5
GWR
A rede GWR (Grow When Required) proposta por ?) tem dois componentes importantes,
os neurnios e as conexes. Tanto os neurnios quanto as conexes podem ser criados
e destrudos durante o processo de aprendizagem. Diferente do GNG, que adiciona
um neurnio a cada iteraes, o GWR adiciona um neurnio a qualquer momento. O
posicionamento deste novo neurnio depende da entrada e do neurnio vencedor, ao
invs de adicionar onde o erro acumulado maior, como no GNG.
Um novo neurnio adicionado quando a atividade do neurnio vencedor no
alta o suficiente. A atividade de um neurnio calculada atravs da funo de distncia
Euclidiana entre seu vetor de pesos e o vetor de entrada. Cada neurnio equipado
com uma varivel para registrar a sua frequncia de vitrias (?).
Uma maneira de registrar a frequncia de vitrias armazenar o valor 1 em uma
varivel e fazer o valor desta varivel decrescer exponencialmente de 1 para 0 a medida
que o neurnio v vencendo. Deste modo, um neurnio novo ter o valor 1 e os
neurnios que disparam frequentemente tero o valor prximo a 0. Os vizinhos do
neurnio vencedor tambm so atualizados, mas o valor armazenado decresce mais
lentamente (?).
Ao apresentar uma entrada rede, a atividade de cada neurnio no mapa calculada
e o vencedor escolhido. Se este neurnio vencedor representar bem a entrada ento a
atividade deste neurnio ser prxima a 1. Neste caso, o nvel de adaptao aplicado
ao neurnio vencedor bem como sua vizinhana pequeno. Entretanto, se a atividade
da rede menor que o limiar de insero a T , ento o neurnio vencedor foi adicionado
recentemente rede ou ele e o padro de entrada so diferentes ento o neurnio
vencedor precisa ser adaptado. Se o neurnio foi adicionado recentemente ento a
varivel que registra os disparos ter um valor elevado, perto de 1. Caso contrrio, um
novo neurnio adicionado entre o neurnio vencedor e a entrada (?).
Um limiar de ativao identifica quando o estmulo de entrada j foi aprendido pela
rede, caso o estmulo de entrada provoque uma atividade na rede menor que o limiar
estabelecido, ento este estmulo deve ser aprendido pela rede. Assim, baixa atividade
significa pouca semelhana entre a rede e a entrada. O valor do limiar de insero a T
exerce grande influncia na quantidade de neurnios inseridos na rede. Se o valor
configurado bem prximo a 1 ento mais neurnios sero produzidos e a entrada ser
35
4.5. GWR
4.19
O algoritmo apresentado a seguir:
1. Apresente para a rede uma amostra dos dados de entrada;
2. Para cada n i da rede, calcule a distncia para amostra de entrada k wi k.
3. Selecione o n mais semelhante, e o segundo mais semelhante ao padro de
entrada, isto , os ns s1 , s2 A tal que
s1 = arg min k wn k
4.21
s1 = arg min k wn k
4.22
n A
e
n A/{s}
4.23
4.24
36
4.5. GWR
que o limiar h T ), ento um novo neurnio deve ser adicionado entre os dois
neurnios mais semelhantes (s1 e s2 ) ao padro de entrada
Adicione um novo neurnio, r
A = {r }.
4.25
Crie o novo vetor de pesos, atribuindo aos pesos a mdia entre pesos do
neurnio vencedor e o vetor de entrada
wr = (ws1 + )/2.
4.26
4.27
4.28
4.29
wi = n hi ( wi ), i Ns1
4.30
4.31
S(t)
(1 e(b t/b ) )
b
4.32
37
4.6. CONSIDERAES
e de seus vizinhos (i )
h i ( t ) = h0
S(t)
(1 e(n t/n ) )
n
4.33
dhs1 (t)
= b [h0 hs1 (t)] S(t),
dt
4.34
4.6
Consideraes
38
5
Proposio do Modelo: STRAGIC
39
intervalo de tempo, mais estados estaro contidos na trajetria de estados que descreve
o passo do rob.
A locomoo do rob realizada com a execuo constante dos passos do rob.
Uma trajetria que descreve um passo do rob uma trajetria fechada, j que o incio
do passo coincide com o final. Assim, o rob se locomover ao executar uma trajetria
fechada sucessivas vezes.
Algumas caractersticas ou propriedades do funcionamento dos modelos de CPG
biologicamente inspirados so incorporadas no modelo proposto:
O comportamento da sada dos CPGs so sinais oscilatrios que podem ser
visualizados em cada instante de tempo como um estado. Deste ponto de vista,
o STRAGIC tambm gera sinais oscilatrios contidos em estados. Embora a
estrutura interna dos modelos seja completamente diferente.
Um estmulo eltrico simples vindo do tronco cerebral capaz de controlar
os padres de sada do CPG e consequentemente a velocidade e o modo de
locomoo (?). O STRAGIC pode receber comandos para aumentar ou diminuir a
velocidade sendo que cada velocidade resultante est associada a um modo de
locomoo.
Um CPG composto de osciladores neurais conectados aos neurnios motores.
Estes neurnios motores estimulam os msculos para movimentar os membros
(?). O STRAGIC no reproduz a estrutura interna de um CPG, mas mantm um
comportamento semelhante em relao a sua sada. Ele gera os movimentos
rtmicos nos membros atravs de trajetrias cclicas de estados.
O sincronismo entre osciladores de um CPG determina o modo de locomoo. O
STRAGIC captura um conjunto de amostras de posturas e constri uma trajetria
de estados com a mesma sequncia dos estados originais gerados durante a
locomoo, logo o STRAGIC mantm o mesmo sincronismo presente nas amostras
de entrada.
Alm dessas caractersticas, o STRAGIC capaz de construir trajetrias at mesmo
quando as amostras so originadas de uma fonte ruidosa. A construo dos movimentos pode ser realizada atravs do balbuciamento1 motor (?), um procedimento que
possui plausibilidade no modo que os bebs aprendem seus primeiros movimentos.
Os nodos do STRAGIC podem tratar diferentes tipos de informao, pois a dinmica
1 Balbuciar:
40
5.1
A Estrutura do STRAGIC
O STRAGIC est dividido em dois mdulos, o Mdulo de Gerenciamento de Locomoo (MGL) e o Mdulo de Controle de Locomoo (MCL). O MCL constri trajetrias
de estados que determinam os modos de locomoo do rob, j o MGL constri as
interligaes entre trajetrias. O MCL possui um Componente Construtor de Mapa
Topolgico (CCMT), um Montador de Trajetrias e um Identificador de sub-redes. O
MGL possui um Classificador de Sub-Redes e um Gerador de Inter-Conexes, ver
Figura ??.
Para treinar o STRAGIC o primeiro passo fornecer uma base de dados contendo
estados originados de modos de locomoo de um rob. Esta base de dados passada
ao (MCL) que constri sub-redes associadas a um modo de locomoo. O CCMT
constri uma rede contendo sub-redes, o Montador de Trajetrias cria trajetrias cclicas
a partir de uma sub-rede e o Identificador de Sub-Redes a partir dos estados de controle
determina quais neurnios pertencem a uma sub-rede.
Depois de identificadas as sub-redes so passadas para o MGL, o Classificador
de Sub-Redes do MGL identifica a velocidade associada a cada sub-rede ordena. O
Gerador de Inter-Conexes constri interligaes entre redes que representam velocidades prximas. Com a realizao das interligaes a rede resultante capaz de fazer a
transio entre sub-redes ou permanecer em uma sub-rede de acordo com o comando
recebido.
5.1.1
41
O MCL possui um Componente Construtor de Mapa Topolgico (CCMT) implementado com o STRAGEN. No decorrer da fase de aprendizagem o Componente
Construtor de Mapa Topolgico recebe um conjunto de estados aleatrios relacionadoos de maneira a representarem uma trajetria de estados que descreve a locomoo
do rob. Considerando que estados de diferentes trajetrias sejam apresentados, o
Construtor de Mapa Topolgico capaz de construir cada trajetria presente nestes
estados. Considerando que uma trajetria de estado descreve um modo de locomoo,
o CCMT a partir destes estados aprende diferentes modos de locomoo. Depois da
trajetria de estados construda pelo CCMT, as informaes sobre as posturas contidas
nestes estados so utilizadas para determinar as posturas do rob durante a locomoo.
O STRAGEN original foi projetado para gerar trajetrias de estados para representar sistemas que tenham suas configuraes determinadas por estados possveis, e
um conjunto vlido de transies entre estados. Um dos problemas resolvidos pelo
STRAGEN o controle de manipuladores robticos interpretado como um problema
de gerar trajetrias de estados. Redes neurais com topologia varivel como a GCS,
GNG e GWR podem ser utilizadas para aprender um conjunto de dados de exemplos
para representar o espao de estados do problema. No entanto, estas redes modificam as informaes contidas nos estados, em relao aos dados originais, devido a
movimentao dos neurnios (?). Neurnios com informaes diferentes das amostras
originais resultam em trajetrias tambm diferentes das originais.
Para a construo do mapa topolgico, considere C o conjunto de conexes entre
estes nodos, uma amostra de entrada, wi o vetor de pesos associado ao nodo i.
Inicialize o conjunto A com dois nodos n1 e n2 posicionados em wn1 e wn2 , em RD ,
representando dois padres aleatrios do conjunto de dados, sendo D a dimenso dos
dados de entrada, assim A = {n1 , n2 }. Inicialize o conjunto de conexes vazio com
uma conexo entre n1 e n2 , C = {cn1 ,n1 }.
Cada vetor de pesos wi pode conter informaes heterogneas, divididas em m
grupos com elementos pertencentes a um mesmo domnio. Dois destes m grupos tm
maior importncia no algoritmo, so eles o grupo w a usado para calcular a atividade
do neurnio e o grupo wn usado para criar a vizinhana da rede. O grupo w a pode ser
divido em outro l subgrupos, desta forma o limiar de atividade pode conter l elementos,
a = [ a1 a2 ...al ] T . O vetor de pesos associados ao nodo i definido a seguir:
wi = [v1i v2i ...v Di ] T = [w1i ...w ai ...wni ...wmi ] T .
O algoritmo de treinamento do CCMT (STRAGEN) apresentado abaixo (?):
42
k n w n s1 k k n w n i k , i A
5.1
k n w n s2 k k n w n i k , i A { s 1 }
5.2
5.3
43
(f) Insira duas novas conexes, uma entre os nodos de Dst1 e outra entre os
nodos de Dst2 :
C = C {arg(Dst1 )}
C = C {arg(Dst2 )}
7. Se um novo nodo no for inserido no passo anterior (6), atualize o vetor de pesos
do nodo vencedor s1 :
(
ws1 = ( j ws1 ), onde : =
(s1 /max )
eb f
s1 max
eb f
s1 > max
1 Dst(s1 , ni )
s1 = i =1
;
| Ns1 |
v
u | Ns |
u
t i=11 (Dist(s1 , ni ) s1 )2
s1 =
,
| Ns1 | 1
onde | Ns1 | o nmero de vizinhos, Ns1 o conjunto de vizinhos de s1 e ni um
nodo vizinho de s1 , i.e, ni Ns1 .
9. Se | Ns1 | > 2, remova todas as conexes (cs1 ,ni ) do conjunto C para as quais:
Dst(s1 , ni ) > s1 + f p s1 , ni Ns1 ,
onde f p o fator de poda da rede, cujo valor recomendado 0, 8 de acordo com
os experimentos do Captulo ??.
10. Remova todos os nodos sem vizinhos, | Nni | = 0, ni A.
11. Repita todos os passos a partir do passo (1) at que um nmero mximo de
iteraes tmax , ou algum outro critrio de parada tenha sido atingido.
44
A trajetria entre dois estados gerada de acordo com uma funo para propagao
de energia (Equao ?? ). Para utiliz-la, assinala-se um nodo alvo e um nodo inicial
que representa o estado de partida no CCMT. O nodo alvo tem energia de valor 1, 0
e todos os demais so inicializados com energia zero. A energia iterativamente flui
atravs da rede, de vizinho em vizinho at atingir o ponto inicial. O Algoritmo de
Gerao de Trajetrias entre dois estados pr-determinados o seguinte:
1. Inicialize a funo de difuso f ni (0) = 0, ni A/ni 6= ntarg e f ntarg (0) = 1, 0.
2. Repita para todo ni A at f ninit (k ) 6= 0
(
f ni ( k + 1) =
1
k, if ni = ntarg
n j Nn f n j (k ) if ni 6= ntarg
5.4
onde Nni o conjunto de todos os nodos que so vizinhos de ni , | Nni | sua cardinalidade, e = 1(| Nni | + 1). O valor de f ntarg permanece em 1,0 em todas as iteraes
k.
O Componente Montador de Trajetria constri uma trajetria cclica a partir de
um conjunto C = {c1 , c2 , ..., cn } de estados de controle. Estes estados, aos pares so
enviados para o Algoritmo de Gerao de Trajetrias do CCMT que devolve uma subtrajetria para cada par. O Montador de Trajetria agrupa as sub-trajetrias fornecidas
pelo ao algoritmo de gerao de trajetrias formando uma Trajetria Cclica. Os
estados de controle C, so processados pelo Montador de Trajetria como mostra o
algoritmo a seguir:
1. Repita para i de 1 at n 1:
(a) Execute o algoritmo de gerao de trajetria passando como o alvo ci e como
estado inicial ci+1
(b) Salve a trajetria entre ci e ci+1 ;
5.1.2
45
v=
(t)/n p ,
t =1
5.5
46
Depois do treinamento, o STRAGIC pode ser utilizado de duas maneiras dependendo da quantidade de modos de locomoo aprendida. A forma mais simples de
utilizao quando apenas um modo de locomoo for ensinado para o sistema, ver
47
5.2. DISCUSSES
Figura ??. Quando mais de um modo de locomoo for aprendido o STRAGIC receber
comandos para alterar a velocidade de locomoo do rob ??. Os comandos de entrada
do STRAGIC so: aumentar a velocidade, diminuir a velocidade, aumentar ou diminuir
a velocidade da maneira mais suave possvel. Como sada o STRAGIC fornece em cada
intervalo de tempo o estado atual do rob.
5.2
Discusses
Esta seo faz uma breve discusso sobre o algoritmo do Construtor do Mapa Topolgico focando em dois importantes parmetros, o limar de atividade e o fator de
poda.
A inicializao do conjunto de conexes pode ser vazia ou com a conexo entre os
dois nodos iniciais do conjunto A. J que depois da primeira passagem pelo passo (6),
durante a criao do primeiro nodo e terceiro inserido no conjunto A, restaro na rede
as duas melhores conexes. Alm disso, o passo (4) cria uma conexes entre os dois
nodo mais prximos da amostra, caso ainda no exista.
O passo (2) determina os dois nodos mais prximos do amostra de entrada. Estes
nodos so utilizados em outros passos do CCMT, os passos (4) e (6) utilizam os dois, j
os passos (5), (7), (8) e (9) utilizam apenas o nodo mais prximo.
O nmero de vitrias de um determinado nodo calculado no passo (3) utilizado
no passo (7), para modificar o tamanho do passo de adaptao, tambm chamada de
taxa de aprendizagem. Quanto maior for a quantidade de vitrias menor ser o passo
de adaptao. O passo (4) garante a existncia de uma conexo entre os dois nodos
mais prximos do padro de entrada.
O passo (5) calcula a atividade da amostra, valores menores de atividade significam
que a amostra esta mais distante do nodo vencedor e valores elevados a amostra est
mais prxima do nodo vencedor. O passo (6) verificar se a atividade menor que um
limiar estabelecido, caso verdadeiro, adiciona a amostra rede em forma de nodo.
Ento quanto maior o valor pr-estabelecido para o limiar de atividade mais nodos so
adicionados a rede.
Quando o limar de atividade alto o suficiente para deixar a rede aprender todos as
amostras da base de dados o passo (7) de adaptao do Construtor do Mapa Topolgico
fica inutilizado. J que novos padres apresentados a rede cairo na mesma localizao
48
5.2. DISCUSSES
49
6
Experimentos
6.1
Dados Artificiais
Esta seo contm experimentos que tratam do controle de locomoo e da transio entres modos de locomoo de um rob hexpode. O Mdulo de Controle de Locomoo
(MCL) do STRAGIC constri uma trajetria de estados a partir de dados artificiais para
controlar a locomoo do rob, j a transio entre modos de locomoo realizada
pelo Mdulo de Gerenciamento de Locomoo (MGL) do STRAGIC. Alm disso, o
experimento de controle de locomoo verifica a capacidade do STRAGIC em lidar
com dados ruidosos. Antes de explicar o experimento de controle de locomoo, uma
breve seo investiga o comportamento do Construtor de Mapa Topolgico diante da
variao do valor de dois parmetros.
50
= 0, 2 y2
= 0, 8 h( x1 ) 0, 1
= 1, 4
6.1
51
Figura 6.4: Grficos dos sinais aplicados s articulaes obtidos de osciladores CNN:
(a) de uma articulao; (b), de todas as articulaes no modo de locomoo lento.
x1 estado interno da camada 1 e y2 sada da camada 2, estas camadas fazem parte da
clula da CNN.
if x 1,
1,
h( x ) =
x,
if 0, 5 < x < 1,
0, 5,
if x 0, 5.
As bases de dados utilizadas nos experimentos com o rob hexpode foram geradas
a partir de estados capturados dos sinais gerados pelos osciladores que controlam
cada articulao do rob. Estes sinais so o estado interno x1 e a sada y2 de cada
oscilador CNN, como para cada membro do rob hexpode existe um oscilador CNN,
a dimenso dos dados 12, R12 . Estes sinais foram coletados em um intervalo de
tempo regular (330 milissegundos) durante execuo de um passo do rob controlado
pelo algoritmo de ?). Os trs modos de locomoo gerados foram o lento, mdio e
rpido, seus estados armazenados em suas respectivas bases de dados sem considerar a
posio cronolgica do estado durante a locomoo. Assim, cada amostra era passada
para o STRAGIC aleatoriamente sem informar a sua posio temporal. A Figura ??
mostra trs redes de tamanhos diferentes formadas pelo STRAGIC. Os nomes dos
nodos foram atribudos no momento de sua criao, logo o primeiro n recebeu o
nome de 1 o segundo de 2 e assim sucessivamente. Como a ordem temporal dos
estados no foi apresentada durante a etapa de criao da rede, os nodos apresentam
(a)
(b)
(c)
Legenda.
Figura 6.5: Grficos dos sinais aplicados s articulaes obtidos de osciladores CNN:
(a) de uma articulao; (b) de todas as articulaes no modo de locomoo mdio.
52
(a)
(b)
(c)
Legenda.
Figura 6.6: Grficos dos sinais aplicados s articulaes obtidos de osciladores CNN:
(a) de uma articulao; (b) de todas as articulaes nos modos de locomoo rpido.
(a)
(b)
(c)
Figura 6.7: Trs redes de tamanhos diferentes construdas pelo STRAGIC: (a) com 36
nodos, (b) com 27 e (c) com 15.
uma relao de vizinhana aleatria, considerando seus nomes. O algoritmo de ?) foi
implementado em C++ validado com os resultados presentes em ??) e com o auxilio
do simulador Gazebo desenvolvido por ?). Os valores dos parmetros de configurao
dos osciladores CNN tambm esto presentes em ?).
As configuraes do STRAGIC comum a todos os experimentos desta Seo ??:
O procedimento de balbuciamento motor (motor babbling) no precisou ser utilizado, j que as bases de dados so pequenas e a rede normalmente converge
depois que todas as amostras so apresentadas;
O critrio de parada do treinamento foi a quantidade de conexes da rede no
aumentar por 300 iteraes.
Taxa de aprendizagem inicial de 0,1 e final de 0,001;
Nmero mximo de disparos para o nodo vencedor de 40;
Grupo de vizinhana e de atividade como sendo todo o vetor de caractersticas;
Nenhum subgrupo de atividade;
Fator de poda em 0, 8.
Quantidade de estados na trajetria como mtrica para ordenar as trajetrias por
velocidade.
Para cada experimento cada configurao foi executada no mnimo 30 vezes.
53
Fator de Poda
0,80
0,80
0,80
Limiar de Atividade
0,66
0,40
0,30
Mdia de Nodos
36,0
27,133
15,100
desvio
0,0
0,77608
0,88474
O algoritmo DTW (Dynamic Time Warping) encontrado em ?), ?) e ?), utilizado para
comparar as trajetrias geradas pelos STRAGIC com as trajetrias dos dados originais,
fornece uma medida de distncia entre duas sequncias que variam no tempo. O
DTW uma algoritmo bastante popular e eficiente para calcular similaridade entre
sries temporais minimizando o efeito do deslocamento e a distoro no tempo. O
calculo da similaridade realizado atravs de operaes sobre as sries temporais
com o intuito de detectar padres semelhantes em diferentes fases. Quanto menor o
valor da comparao calculada pelo DTW mais semelhantes so as trajetrias. Este
algoritmo modifica o eixo temporal de uma ou das duas trajetrias de modo a encontrar
eficientemente um alinhamento entre as trajetrias.
6.1.1
54
Limiar de Atividade
0,66
0,66
Fator de Poda
2,5
0,80
Mdia de Conexes
41,100
36,000
desvio
1,3734
0,0
(b)
(a)
Rede
TraConsjetruda
tria
Gerada
(c)
Trajetria
gerada
pelo
STRAGIC
e
original
Figura 6.8: Situao em que o STRAGIC falhou ao tentar construir a trajetria original.
em todas as execues construiu uma trajetria idntica a original.
As configuraes elaboradas neste experimento esto presentes nas Tabelas ?? e ??.
Durante a anlise do limiar de atividade, o fator de poda foi fixado em 0, 8 e durante
a anlise do fator de poda o limiar de atividade permaneceu configurado em 0, 66. A
base de dados escolhida foi extrada do modo de locomoo rpido. Cada configurao
foi executada 30 vezes obtendo assim a mdia e o desvio padro para a quantidade de
nodo e tambm para a quantidade de conexes.
A falha ilustrada na Figura ?? acontece por que o STRAGIC foi configurado com um
fator de poda que no retira conexes que representam mal a relao de vizinhana dos
estados. A rede contida na figura ?? gera trajetrias incompletas, Figura ??. O grfico
da Figura ?? faz uma comparao entre o sinal oscilatrio gerado por esta rede, linha
contnua, e o sinal original, linha tracejada.
55
(a)
(b)
(c)
(d)
(e)
(f)
(g)
Legenda.
Figura 6.9: Trajetrias dos osciladores CNN construdas pelo STRAGIC com fator de
poda 0,8 e limiar de atividade de 0,65.
Tabela 6.3: Distncia entre as trajetrias geradas pelo CCMT e as trajetrias geradas
pelos osciladores CNN.
Trajetria
Modo de locomoo lento
Modo de locomoo mdio
Modo de locomoo rpido
6.1.2
DTW
0,0
0,0
0,0
Controle de Locomoo
6.1.3
Nesta etapa do experimento os dados relativos aos trs modos de locomoo foram
armazenados em uma s base de dados de forma aleatria, sem informao das sequncias dos estados em cada trajetria. O CCMT gerou cada uma das trs trajetrias a
partir dos estados armazenados. A Figura ?? ilustra a relao de vizinhana entre
56
Figura 6.10: Cada n no grafo representa um nodo do CCMT, logo um estado. A figura
mostra os trs modos de locomoo. O fator de poda foi configurado para 0,8 e o limiar
de atividade para 0,65.
Figura 6.11: Exemplo de uma criao de rede mal sucedida a partir de uma base de
dados com estados dos trs modos de locomoo e com o fator de poda em 1,2 e limiar
de atividade de 0,65.
os nodos resultante ao final do treinamento do CCMT com sucesso. J a Figura ??
mostra uma situao em que o CCMT falha ao construir a rede para os trs modos de
locomoo.
O limiar de atividade do CCMT foi configurado para 0, 65, valor com o qual as redes
geradas passaram a ter uma quantidade de nodos equivalente a quantidade de estados
das trajetrias originais. O fator de poda foi ajustado para 0, 8. Antes o valor padro do
fator de poda no CCMT era de 1,2. Com fator de poda em 1,2 o CCMT sempre falhava
ao construir as redes, j que com este valor do fator de poda, conexes entre estados
no vizinhos eram mantidas na etapa de poda do CCMT. Em todas as execues, o
CCMT com fator de poda em 0, 8 construiu as trs trajetrias completamente.
A Figura ?? deveria mostrar trs redes cclicas separadas, mas como o CCMT
no removeu conexes que representam de maneira inadequada a relao entre os
estados. Neste caso a rede contm estados conectados dois a dois que no representam
a sequncia de estados da trajetria original.
6.1.4
Dados Ruidosos
Esta etapa dos experimentos testa a capacidade do CCMT em lidar com dados ruidosos.
A partir das trs bases de dados originais, nove novas bases de dados foram criadas,
assim para cada modo de locomoo trs bases de dados foram elaboradas uma para
cada nvel de rudo. Os dados ruidosos foram criados a partir dos dados originais com
(a)
(b)
(c)
57
(a)
(b)
(c)
Figura 6.15: Resultados para os nveis mais altos de rudo: (a) o rudo criado com a
funo gaussiana com desvio padro de 0,01 no modo de locomoo mdio; (b) rudo
criado com a funo gaussiana com desvio padro 0,1 no modo de locomoo lento.
Os resultados obtidos neste experimento esto expressos nos grficos das Figuras
??, ?? e ?? para diferentes nveis de rudo e modos de locomoo. O grfico ?? foi obtido
com a configurao 1, o grfico ?? com a configurao 2 e assim sucessivamente. O
em 0, 1 gera um rudo intenso o bastante para misturar duas amostras que antes eram
representadas por nodos diferentes. Logo, o limiar de atividade precisou ser reduzido
para que cada nodo representasse uma regio maior do espao. Consequentemente
uma quantidade menor de nodos passou a representar uma trajetria. Valores mais
elevados de rudo resultam em trajetrias mais distantes das originais, j que os nodos
58
Locomoo
Lento
Lento
Lento
Mdio
Mdio
Mdio
Rpido
Rpido
Rpido
Rudo
0,001
0,010
0,100
0,001
0,010
0,100
0,001
0,010
0,100
Limiar de Atividade
0,900
0,890
0,460
0,540
0,550
0,465
0,700
0,660
0,480
DTW
6, 0103 106
5, 5686 104
1, 6560 101
7, 0740 106
6, 6158 104
1, 9200 101
4, 3887 106
3, 2041 103
1, 8443 101
so criados a partir de amostras ruidosas e distantes das originais, Tabela ??. A Figura
?? contm grficos do sinal do estado interno do oscilador CNN, o grfico ?? compara
a trajetria original do modo de locomoo mdio com a trajetria gerada pelo CCMT
a partir de dados ruidosos gerado com em 0,01, j o grfico ?? compara os dados
originais do modo de locomoo lento com a trajetria obtida pelo CCMT a partir de
dados com ruidosos gerados com em 0,1.
Em cada configurao contida na Tabela ?? o limiar de atividade precisou ser
ajustado. J que valores mais elevados do limiar de atividade a rede aprendia uma
quantidade maior de amostras ruidosas e baixos valores do limiar de atividade a rede
aprendia uma quantidade menor dos estados originais.
Em todas as situaes o CCMT conseguiu recuperar a trajetria original. Particularmente, nas situaes em que o rudo aplicado era mais elevado ( = 0, 1), linhas 3,
6 e 9 da Tabela ??, o CCMT conseguiu recuperar a trajetria original e ainda manteve
a distncia DTW prxima de zero. Com em 0, 01 e 0, 001, o CCMT gerou trajetrias
muito prximas s originais valores de DTW menores que 104 , ver grficos ??, ??, ??,
??, ??, ?? e Tabela ??. Por exemplo, para uma trajetria com dados ruidosos gerados
com em 0,01 e a mesma trajetria sem rudo os grficos ficam sobrepostos, ver Figura
??.
6.1.5
Gerenciamento de Locomoo
Esta seo descreve os resultados obtidos com o STRAGIC no gerenciamento de transio entre modos de locomoo. As trs bases de dados dos modos de locomoo lento,
mdio e rpido foram agrupadas em uma nica base de dados. STRAGIC identificou e
construiu uma sub-rede neural para cada um dos trs modos de locomoo, semelhante
59
60
(b)
(a)
Lento
Mpara
dio
para
mdio.
rpido.
(d)
(c)
RMpido
dio
para
lento.
(e)
Legenda.
(b)
(a)
Lento
Mpara
dio
para
mdio.
rpido.
(d)
(c)
RMpido
dio
para
mlento.
dio.
(e)
Legenda.
61
6.2
Dados Reais
Este experimento testa a capacidade do STRAGIC em ligar com dados obtidos a partir
da locomoo de um animal. O animal escolhido foi um cachorro de mdio porte, os
dados sobre a locomoo foram extrados de um vdeo, obtido no youtube. O vdeo
mostra um cachorro andando numa esteira, como visto na Figura ??. A base de dados1
armazena a posio ( x, y) de cada articulao dos membros esquerdos do cachorro. O
ponto (0, 0) est localizado no canto superior esquerdo da imagem, sendo que todos os
outros pontos da imagem assumem valores positivos. A Figura ?? serve de referncia
para identificar as articulaes dos membros do cachorro nas imagens obtidas a partir
do vdeo. As articulaes foram marcadas com a cor verde, para facilitar a segmentao
j que a cor verde aparentemente no esta presente nos quadros originais do vdeo.
A base de dados contm as coordenadas ( x, y) das articulaes do lado esquerdo
do animal coletadas de um passo do cachorro, contabilizando 17 quadros convertidos
em 17 amostras. Os quadros foram convertidos em imagens do tipo jpeg, ver Figura
??, as articulaes de cada imagem marcadas manualmente com uma ferramenta livre
de edio de imagem, Gimp2 (GNU Image Manipulation Program). O Algoritmo de
segmentao de imagem e deteco das regies marcadas e descrito a seguir:
1. Carregue um quadro do vdeo;
2. Faa uma varredura na imagem avaliando cada pixel, comeando do ponto (0, 0);
3. Caso o pixel encontrado seja verde, faa:
(a) Verifique se possui algum pixel vizinho verde;
(b) Se falso, crie um grupo para este pixel;
(c) Se verdadeiro, adicione este pixel ao grupo do seu vizinho;
4. Grupos com um tamanho abaixo de um determinado limiar so considerados
rudos e descartados;
5. Calcule a coordenada mdia de cada grupo e armazene em uma linha do arquivo
de dados;
1 http://orivaldo.net/web/dissertacao/experimentos/video.dat
2 http://www.gimp.org/
62
Desvio Padro
1,14000
1,02590
0,17403
Figura 6.19: Anatomia lateral do esqueleto de um cachorro usada como referncia para
marcar a posio das articulaes, fonte Wikipdia.
6. Volte ao passo 1, se ainda existir quadro para avaliar;
O STRAGIC foi configurado como descrito no incio da Seo ??. Mas, com um
limiar de atividade alto o suficiente para permitir que todos os estados fossem representados pelos nodos, valor do limiar de atividade foi de 0, 000001. O critrio de parada
utilizado foi a rede no crescer durante 15 iteraes consecutivas.
A Tabela ?? mostra a taxa de xito do STRAGIC ao criar uma rede capaz de gerar a
trajetria original. A taxa de xito definida como a porcentagem do total de execues
em que as redes resultantes so capazes de gerar um trajetria de estado idnticas a
original. O parmetro que influncia a taxa de xito o fator de poda, trs valores
diferentes do fator de poda foram avaliados, Tabela ??. Para obter esta taxa de xito, o
STRAGIC foi executado 1000 vezes. Para obter a taxa de xito mdia, 15 taxas de xitos
foram geradas. A melhor configurao dos parmetros obteve uma taxa de xito mdia
igual a 19,96 porcento.
6.2.1
Nos experimentos com dados artificiais a taxa de xito foi de 100%, isto significa dizer
que em todas as execues do STRAGIC com dados artificiais as redes resultantes
eram capazes de gerar uma trajetria de estados semelhante original. No entanto, as
trajetrias resultantes nem sempre eram idnticas (DTW = 0) as originais.
No experimento com dados reais os resultados no foram como esperado, j que a
taxa de xito foi muito baixa. Para o STRAGIC gerar um trajetria cclica com sucesso
um requisito bsico que todos os ns da rede tenham no mnimo dois vizinhos.
Algumas configuraes foram testadas e a melhor configurao rodada milhares de
vezes, obtendo assim uma taxa de xito em torno de 20%.
Figura 6.20: Marcao das articulaes do cachorro.
63
6.3. CONSIDERAES
6.3
Consideraes
64
7
Concluso e Trabalhos Futuros
65
7.1
Os resultados dos experimentos com dados reais sugerem que a maioria das redes
geradas no capaz de criar uma trajetria cclica, deste modo falhando ao controlar a
locomoo do rob. Este problema acontece quando a rede resultante possui neurnios
com um s vizinho, impossibilitando o algoritmo de gerao de trajetrias construir
trajetrias fechadas.
Alm do passo de insero de novos nodos, existem dois outros passos no algoritmo
STRAGEN onde as conexes podem ser modificadas. Um passo o de adaptao (passo
7) e o outro o passo de poda (passo 9). Durante a fase de treinamento quando todas
as amostras da base de dados so convertidas em nodos na rede, o passo de adaptao
no provoca nenhuma mudana na rede. J que a ao executada por este passo
mover o neurnio vencedor em direo a amostra de entrada, mas o neurnio vencedor
e a amostra de entrada so iguais, na situao descrita.
De acordo com anlise do comportamento do passo 7 e do passo 9, uma modificao
66
7.2
Trabalhos Futuros
Com os resultados dos experimentos ficou claro que algumas questes ainda precisam
ser tratadas no STRAGIC:
Realizar experimentos para diferentes tipos de robs com membros com o objetivo
de testar a capacidade do modelo em lidar com diferente anatomias de robs
caminhantes. Verificando assim, a capacidade do modelo proposto em controlar
diferentes robs independente da quantidade de membros e da anatomia.
Elaborar novos experimentos com dados reais e aprimorar a tcnicas de aquisio
de dados.
Durante a realizao dos experimentos com dados artificiais com rudo ou at
mesmo sem rudo o limiar de atividade precisou ser ajustado para maximizar a
taxa de exito. Uma possvel contribuio para o modelo gerar um mecanismo
ajuste automtico do limiar de atividade para gerar a melhor taxa de xito ou
uma taxa tima.
67
Aprofundar os estudos com osciladores neurais biologicamente inspirados implementlos e compar-los com o STRAGIC.
Investigar uma maneira de unir a modelagem matemtica de CPGs e os mapas
auto-organizveis.
Aprofundar a abordagem proposta no sentido de buscar plausibilidade biolgica
no funcionamento do sistema nervoso. Entender e modelar biologicamente,
na medida do possvel, o controle de um membro individualmente bem como
coordenao de todos os membros.
Implementar as modificaes no STRAGEN propostas na Seo ?? realizar experimentos para avaliar o resultado destas modificaes.
Sobre a instalao do ambiente de simulao, devido as dificuldades iniciais de
instalao principalmente em relao s dependncias de bibliotecas. Muitas
bibliotecas no esto instaladas por padro no sistema operacional utilizado e
no trivial encontrar qual biblioteca resolve um erro apresentado durante a compilao. Diante disto, um tarefa importante para facilitar novas instalaes gerar
um pacote de instalao (exemplo pacote Debian) do Gazebo para automatizar a
instalao do simulador sem necessitar compilar o cdigo fonte.
68
Appendices
69
A
Comportamento Dinmico de um
Sistema Autnomo
A.1
Este sistema de equaes possui dois termos de bias, i1 e i2 , um para cada equao de
estado. Para uma determinado valor dos parmetros e s este sistema no-linear oscila
estvel dentro de um ciclo limite no plano de fase. Este plano de fase possui como eixo
das abscissas o x1 e o das ordenas x2 ?).
Na regio linear Rl nenhuma varivel de estado est saturada:
Rl = { x R2 : | xi | < 1, i = 1, 2};
A.2
!
s
;
s
A.3
Para que o ponto de equilbrio esteja sempre dentro da regio linear os parmetros e
s tero sempre valores positivos ?).
O sistema de equaes no lineares ?? de uma clula CNN, para valores pequenos
dos estados internos, comporta-se semelhante a um sistema linear com autovalores
complexos. Isto porque, para x1 e x2 [1, 1] a funo de sada (ver figura ??) tem
70
(a)
(b)
plano
osdecifase
lax1es
vsx1
x2e
x2
variando
no
tempo
t
Figura A.1: Plano de fase e oscilaes no tempo, para assumindo valores negativos.
o comportamento exatamente igual ao estado interno, assim yi = xi para i {1, 2}.
Considerando i1 = 0 e i2 = 0 possvel chegar equao ?? na forma matricial a partir
do sistema de equaes ??.
!
s
x
s
x =
A.4
x 2 = x1 + sx2 .
A.5
tg = x1 /x2 .
(sec2 ) = ( x1 x 2 + x2 x 1 )/x12 .
A.6
A.7
71
(a)
(b)
plano
osdecifase
lax1es
vsx1
x2e
x2
variando
no
tempo
t
Figura A.2: Plano de fase e oscilaes no tempo para assumindo valores positivos.
e resolvendo a diferencial da equao ?? acima, resulta em:
A.8
r = cet ,
= s.
Logo,
= st + 0 ,
A.9
A.10
72
(a)
(b)
plano
osdecifase
lax1es
vsx1
x2e
x2
variando
no
tempo
t
A.11
73
B
O Simulador
74
A arquitetura do simulador ilustrada na figura ??. O componente World representa o conjunto de todos os modelos e as condies do ambiente como iluminao e
gravidade. As bibliotecas de terceiros fazem interface com o gazebo no mais baixo nvel
da arquitetura. Com isto, evita-se que os modelos criados para o gazebo se tornem
dependes de ferramentas especficas que podem mudar no futuro. Os clientes enviam
comandos e recebem dados atravs de uma interface de memria compartilhada. Um
modelo pode ter muitas interfaces para funes como controle de articulaes e captura
de imagens da cmera ?).
A ODE (Open Dynamics Engine) o motor de fsica mas amplamente utilizado na
comunidade de cdigo aberto (open source). Ele projetado para simular a dinmica e a
cinemtica relacionadas a corpos rgidos articulados. Este motor inclui muitos recursos,
tais como diversas articulaes, deteco de coliso, massa, funes de rotao e muitas
geometrias. Gazebo utiliza destes recursos fornecendo uma camada de abstrao
situada entre a ODE e seus modelos. Esta camada facilita a criao tanto de objetos
simples quanto abstratos mantendo toda as funcionalidades fornecidas pela ODE ?).
Para a visualizao o Gazebo utiliza a OpenGL e a GLUT (OpenGL Utility Toolkit)
por atender o requisito de ser rpido e sofisticado. A OpenGL uma biblioteca padro
para a criao de aplicaes 2D e 3D interativas. Ela uma plataforma independente,
altamente escalvel, estvel, e evolui continuamente. GLUT um conjunto de componentes bsicos para construo de interface grfica (janelas) para as aplicaes OpenGL.
75
Ele tambm fornece um mecanismo para interao com o usurio atravs de mouse e
teclado ?).
Um ambiente completo essencialmente uma coleo de modelos e sensores. O
cho e as construes representam modelos estacionrios enquanto o rob e outros
objetos so dinmicos. Os componentes gerais envolvidos na simulao so: modelos,
corpos e articulaes. Um modelo um objeto que mantm uma representao fsica.
Ele engloba desde uma simples forma geomtrica a complexos robs. Os modelos
so compostos de no mnimo um corpo rgido, zero ou mais articulaes, sensores,
e interfaces para facilitar o fluxo de dados. Os corpos representam os blocos bsicos
de um modelo. Sua representao fsica assume formas geomtricas como caixas,
esferas, cilindros, planos e linhas. Cada corpo possui massa, atrito, fator de elasticidade
e propriedades de renderizao (cor, textura, transparncia, etc.). As articulaes
fornecem o mecanismo para conectar corpos e formar relacionamentos cinemticos e
dinmicos. Vrias articulaes esto disponveis incluindo articulaes de rolagem.
Um cuidado especial precisa ser tomado quando muitas articulaes so conectadas
pois, a simulao pode perder a estabilidade se parmetros incorretos forem escolhidos
?).
A criao de modelos feita a mo. O processo comea com a escolha dos corpos
apropriados e das articulaes necessrias para construir um modelo correto em aparncia e funcionalidade. O passo seguinte juntar corpos utilizando articulaes. O
resultado final uma representao fsica completa de um modelo ?).
76