a framework for robots development and programming based on genetic algorithms palmeira p.f.m...
TRANSCRIPT
A Framework for Robot’s A Framework for Robot’s Development and ProgrammingDevelopment and Programming
Based on Genetic AlgorithmsBased on Genetic Algorithms
Palmeira P.F.M Palmeira P.F.M
Silvino J.S. Silvino J.S.
de Melo J.C.D de Melo J.C.D
DEE-UFMGDELT-UFMGDELT-UFMG
TópicosTópicos
IntroduçãoIntrodução PropostaProposta Implementação Implementação Validação Validação ConclusõesConclusões Modelo de DesenvolvimentoModelo de Desenvolvimento Propostas de ContinuaçãoPropostas de Continuação
ObjetivoObjetivo
Aplicação de técnicas Inteligência Aplicação de técnicas Inteligência Artificial no desenvolvimento de Artificial no desenvolvimento de Robôs autônomos em ambiente Robôs autônomos em ambiente não controlado.não controlado.
Ambiente ControladoAmbiente Controlado
Posições e deslocamentos conhecidos Posições e deslocamentos conhecidos
Trajetórias predeterminadas.Trajetórias predeterminadas.
Cinemática Inversa.Cinemática Inversa.
Geração de TrajetóriaGeração de Trajetória
(Ambiente Controlado)
Ambiente não ControladoAmbiente não Controlado
Posições e deslocamentos são Posições e deslocamentos são desconhecidos.desconhecidos.
Trajetórias não podem ser Trajetórias não podem ser predeterminadas. predeterminadas.
Dificuldade de se utilizar técnicas Dificuldade de se utilizar técnicas convencionais de programação e controle. convencionais de programação e controle.
TrajetóriaTrajetória
Problema do ControleProblema do Controle
Técnicas mais sofisticadas de controle.Técnicas mais sofisticadas de controle.
Tem sido propostas técnicas Tem sido propostas técnicas alternativas ao controle convencional alternativas ao controle convencional tais como Lógica Nebulosa e Redes tais como Lógica Nebulosa e Redes Neurais. Neurais.
O uso destas técnicas requer a O uso destas técnicas requer a aquisição de conhecimento humano.aquisição de conhecimento humano.
Propostas Atuais Propostas Atuais
Uso de lógica Uso de lógica fuzzyfuzzy com A.G.s. com A.G.s.
Uso de redes neurais com A.G.s. Uso de redes neurais com A.G.s.
TópicosTópicos
IntroduçãoIntrodução PropostaProposta Implementação Implementação Validação Validação ConclusõesConclusões Modelo de DesenvolvimentoModelo de Desenvolvimento Propostas de ContinuaçãoPropostas de Continuação
Proposta Proposta
Desenvolvimento de um ambiente Desenvolvimento de um ambiente interativo simulação dinâmica de robôs interativo simulação dinâmica de robôs autônomos.autônomos.
Uso de A.G para evoluir população de Uso de A.G para evoluir população de elementos de controle, baseados no elementos de controle, baseados no conhecimento humano.conhecimento humano.
Simulador será utilizado para a aquisição Simulador será utilizado para a aquisição do conhecimento humano e avaliação do conhecimento humano e avaliação
Rede Neural para armazenamento do Rede Neural para armazenamento do conhecimentoconhecimento
Algoritmo Genético IAlgoritmo Genético I
Algoritmos genéticos são utilizados Algoritmos genéticos são utilizados para evoluir uma população de para evoluir uma população de elementos de controle.elementos de controle.
Cada geração e formada pelos Cada geração e formada pelos elementos selecionados da geração elementos selecionados da geração anterior acrescida de novos, criados anterior acrescida de novos, criados por operadores genéticos.por operadores genéticos.
Simplicidade RobustezSimplicidade Robustez
Algoritmo Genético IIAlgoritmo Genético II
A mutação altera as características A mutação altera as características do elemento. do elemento.
O cruzamento age combinado dois O cruzamento age combinado dois elementos para produzir um elementos para produzir um terceiro.terceiro.
A evolução se da pela seleção dos A evolução se da pela seleção dos melhores indivíduos em cada melhores indivíduos em cada geração( Função de fitness). geração( Função de fitness).
Operações GenéticasOperações Genéticas
TópicosTópicos
IntroduçãoIntrodução PropostaProposta ImplementaçãoImplementação Validação Validação ConclusõesConclusões Modelo de DesenvolvimentoModelo de Desenvolvimento Propostas de ContinuaçãoPropostas de Continuação
Metodologias
Aquisição de conhecimentoAquisição de conhecimento
SimulaçãoSimulação• Simulação em tempo RealSimulação em tempo Real
ProgramaçãoProgramação• Abstração de dadosAbstração de dados
Otimização Otimização • Algoritmos genéticosAlgoritmos genéticos
Simulador 2DSimulador 2D
Ambiente gráfico interativo 2D.Ambiente gráfico interativo 2D.
Hierarquia de classes.Hierarquia de classes.
Dinâmica dos objetos.Dinâmica dos objetos.
Programação orientada por Programação orientada por objetos.objetos.
SimuladorSimulador
Controlador
Robô 1 Tarefa
Robô 2 Tarefa
Robô N Tarefa
conrole()Inercia()Move()
Robôs VirtuaisRobôs Virtuais
ControleControle– InteligênciaInteligência
Inércia Inércia – DinâmicaDinâmica
MoveMove– VisualizaçãoVisualização
Personagem
massa Inércia....
controle()Inércia()move()
RobôsRobôs
Personagem
Trainer PlayerTarget
abstrato
Objetos representados por uma hierarquia de classes.
DinâmicaDinâmica
( X,Y)
V
Eixo
Rodas
Função Inércia()Função Inércia()
IntegraçãoIntegração
ConstantesConstantes• Momento de Momento de
inércia.inércia.• Constante de atrito.Constante de atrito.• ..........
Dinâmica IDinâmica I
Modos do SimuladorModos do Simulador
Modo Autônomo:Modo Autônomo:• Controle: com o Player.Controle: com o Player.
Modo SupervisionadoModo Supervisionado• Interativo: com TrainerInterativo: com Trainer
Modo Treino Modo Treino • Algoritmo Genético evolui população de Algoritmo Genético evolui população de
Rede Neurais.Rede Neurais.
Ponto de PartidaPonto de Partida
TCad TCad • Ambiente para computação gráficaAmbiente para computação gráfica• Orientado por ObjetosOrientado por Objetos• Processador simbólicoProcessador simbólico
Framework sobre Algoritmos Framework sobre Algoritmos GenéticosGenéticos
TCadTCad
Processador de Listas
Processador de Eventos
Objetoscompostos
PLUG- IN
Lisp
GUI
TCadManTCadMan
Processador de listas
Processador de Eventos GUI
SimuladorSimulador
MasterTimer
controle de tarefasmodo autônomo
Controlador de Objetos gráficos
Implementação do Implementação do ControladorControlador
A classe Master A classe Master herdeira da herdeira da classe TCadMan.classe TCadMan.
Uma instância da Uma instância da classe Master é o classe Master é o controlador controlador mestre que mestre que controla e controla e coordena as coordena as tarefas filhas.tarefas filhas.
MasterTimer
controle de tarefasmodo autônomo
TCadManSuporte de Objetos gráficos
Objetos gráficosObjetos gráficos
Point
Linha
Arco
Círculo Referencia
List
Poligonal
Elipse
Implementação dos RobôsImplementação dos Robôs
Classe abstrata Personagem descendente da Classe abstrata Personagem descendente da classe List.classe List.
Personagem
Trainer PlayerTarget
List
Framework para GNAFramework para GNA
GNA
Algoritmo genético
Lista de IndivíduosEvolui
Indivíduo
Operadores genéticoscruzamento
mutação
Classe abstrata IndivíduoClasse GNA
Implementação do GNAImplementação do GNA
Evolui uma população de instancias de classes Evolui uma população de instancias de classes descendente de indivíduo.descendente de indivíduo.
MasterGNA
Mastertimer
controle de tarefasmodo autônomo
GNAalgoritmo genético
modo treino
Vista do SimuladorVista do Simulador
A classe TCadMan controla ambiente gráfico.A classe TCadMan controla ambiente gráfico.
Alteração de um RobôAlteração de um Robô
Console do TCadConsole do TCad
TópicosTópicos
IntroduçãoIntrodução PropostaProposta ImplementaçãoImplementação ValidaçãoValidação ConclusõesConclusões Modelo de DesenvolvimentoModelo de Desenvolvimento Propostas de ContinuaçãoPropostas de Continuação
Framework concluídoFramework concluído
Proposta Proposta
Rede Neural para armazenamento do Rede Neural para armazenamento do conhecimentoconhecimento
Simplicidade Simplicidade
RobustezRobustez
AplicaçãoAplicação
Rede Neural
Aproximador universal de funções
14 Entradas
2 Saídas
Uso de treinamento supervisionado, tendo Uso de treinamento supervisionado, tendo como referencia uma trajetória gravada, por como referencia uma trajetória gravada, por um treinador Humanoum treinador Humano..
Redes Neural 2 camadas 14x2Redes Neural 2 camadas 14x2• 14 entradas:14 entradas:
– x ,y , x ,y , em t , t-1, t-2 ... em t , t-1, t-2 ...
• 2 saídas: 2 saídas: – impulso linear Iimpulso linear ILL e impulso angular I e impulso angular Iaa..
A diferença entre as saídas gravadas e as A diferença entre as saídas gravadas e as calculadas pela rede é utilizada para se obter calculadas pela rede é utilizada para se obter o erro das RNAso erro das RNAs
Redes Neurais
Implementação das RNAImplementação das RNA
A classe Abstrata A classe Abstrata Indivíduo descreve o Indivíduo descreve o indivíduo da indivíduo da população.população.
A classe RedeNeural A classe RedeNeural implementa uma implementa uma RNA.RNA.
IndivíduoOperadoresgenéticos
Neural Playercontrole
RedeNeuralOperadoresgenéticos
PlayerInérciaMove
TópicosTópicos
IntroduçãoIntrodução PropostaProposta Implementação Implementação ValidaçãoValidação ConclusõesConclusões Propostas de ContinuaçãoPropostas de Continuação
Conclusões e PropostasConclusões e Propostas
Resultados Preliminares.Resultados Preliminares.• Comparação das Trajetórias.Comparação das Trajetórias.
Resultados Numéricos.Resultados Numéricos.• Influencia dos parâmetros genéticos.Influencia dos parâmetros genéticos.
Propostas para trabalhos futuros.Propostas para trabalhos futuros.
Trajetória ITrajetória I
Trajetória II Trajetória II
Trajetória ITrajetória I
Trajetória II Trajetória II
Resultados NuméricosResultados Numéricos
Influencia de mutação aleatória e Influencia de mutação aleatória e cruzamento.cruzamento.
Influencia da taxa de sobrevivência.Influencia da taxa de sobrevivência.
Influencia do tamanho da população.Influencia do tamanho da população.
Influencia do uso de backpropagation.Influencia do uso de backpropagation.
Taxa de Sobrevivência ITaxa de Sobrevivência I
Erro no Impulso Angular
0.001
0.01
0.1
1
10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
número de gerações X 50
err
o a
cu
mu
lad
o
sobrefat=10%
sobrefat=30%
sobrefat=50%
sobrefat=80%
Taxa de Sobrevivência IITaxa de Sobrevivência II
Erro no Impulso Linear
0.001
0.01
0.1
1
10
100
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
número de gerações X 50
err
o a
cu
mu
lad
o
sobrefat=10%
sobrefat=30%
sobrefat=50%
sobrefat=80%
Tamanho da população ITamanho da população I
Erro no Impulso Angular
0.001
0.01
0.1
1
10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
número de gerações X 50
err
o a
cu
mu
lad
o
npop=10
npop=20
npop=50
Tamanho da população IITamanho da população II
Erro no Impulso Linear
0.001
0.01
0.1
1
10
100
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
número de gerações X 50
err
o a
cu
mu
lad
o
npop =10
npop=20
npop=50
Erro Angular sem Erro Angular sem backpropagationbackpropagation
Erro no Impulso Angular
0.0001
0.001
0.01
0.1
1
10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
número de gerações X 50
err
o a
cu
mu
lad
o cru=0% rand=100%
cru=20% rand=80%
cru=40% rand=60%
cru=50% rand=50%
cru=60% rand=50%
cru=80% rand=20%
Influencia de Influencia de backpropagation backpropagation
Erro no Impulso Angular
0.0001
0.001
0.01
0.1
1
10
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
número de gerações X 50
erro
acu
mu
lad
o
cru=40 rand=60 back=0
cru=40 rand=56 back=4
cru=40 rand=52 back=8
cru=40 rand=48 back=12
cru=40 rand=44 back=16
Erro linear sem Erro linear sem backpropagationbackpropagation
Erro no Inpulso Linear
0.001
0.01
0.1
1
10
100
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
número de gerações X 50
err
o a
cu
mu
lad
o cru=0% rand=100%
cru=20% rand=80%
cru=40% rand=60%
cru=50% rand=50%
cru=60% rand=40%
cru=80% rand=20%
Influencia de Influencia de backpropagation IIbackpropagation II
Erro no Impulso Linear
0.001
0.01
0.1
1
10
100
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
número de gerações X 50
err
o a
cu
mu
lad
o
cru=40 rand=60 back=0
cru=40 rand=56 back=4
cru=40 rand=52 back=8
cru=40 rand=48 back=12
cru=40 rand=44 back=16
ConclusõesConclusões
Objetivo proposto foi alcançadoObjetivo proposto foi alcançado
Simulador se mostrou-se funcional nos Simulador se mostrou-se funcional nos seus três modos de funcionamento.seus três modos de funcionamento.
RNAs treinadas com A.G.s foram RNAs treinadas com A.G.s foram capazes de fazer o robô seguir as capazes de fazer o robô seguir as trajetórias idealizadas.trajetórias idealizadas.
ConclusõesConclusões
Taxa de sobrevivência e tamanho da Taxa de sobrevivência e tamanho da população influem na velocidade do população influem na velocidade do treinamento.treinamento.
Backpropagation pode perturbar Backpropagation pode perturbar mecanismo de seleção do algoritmo mecanismo de seleção do algoritmo genético.genético.
Uso de backpropagation aumenta o Uso de backpropagation aumenta o tempo de execução por geração do tempo de execução por geração do algoritmo genético. algoritmo genético.
TópicosTópicos
IntroduçãoIntrodução PropostaProposta Implementação Implementação Validação Validação ConclusõesConclusões Modelo de DesenvolvimentoModelo de Desenvolvimento Propostas de ContinuaçãoPropostas de Continuação
Modelo de Modelo de desenvolvimentodesenvolvimento
EspecificaçãoEspecificação
Implementação Implementação
Inserção Inserção
Especificação Especificação
Criação do Criação do novo novo modelo de modelo de RobôRobô
Player
controle()Inércia()move()
NovoTipo
ImplementaçãoImplementação
IndivíduoOperadoresgenéticos
NovoTipoPlayercontrole
NovoControleOperadoresgenéticos
PlayerInérciaMove
DerivaçãoDerivação• Redefinição Redefinição
das funçõesdas funções• controlecontrole• inérciainércia• movemove
novotipo.dllnovotipo.dll
InserçãoInserção
OriginalOriginal• TCad + robos.dllTCad + robos.dll
Inserção do novo tipo no ambienteInserção do novo tipo no ambiente• TCad + robos.dll+novotipo.dllTCad + robos.dll+novotipo.dll
InserçãoInserção
Processador de Listas
Processador de Eventos
Objetoscompostos
novotipo.dll
Lisp
GUI
TópicosTópicos
IntroduçãoIntrodução PropostaProposta Implementação Implementação Validação Validação ConclusõesConclusões Modelo de DesenvolvimentoModelo de Desenvolvimento Propostas de ContinuaçãoPropostas de Continuação
Propostas para Trabalhos Propostas para Trabalhos Futuros IFuturos I
Robôs com comportamento Robôs com comportamento cooperativo.cooperativo.
Outros modelos de dinâmicaOutros modelos de dinâmica
Implementação de outros elementos Implementação de outros elementos de Inteligência Artificialde Inteligência Artificial
Usar funções Lisp como funções, Usar funções Lisp como funções, “Controle()” e “Inércia()”“Controle()” e “Inércia()”
Usar funções Lisp como operadores Usar funções Lisp como operadores genéticos.genéticos.
Programação GenéticaProgramação Genética
Propostas para Trabalhos Propostas para Trabalhos FuturosFuturos II II
Programação GenéticaProgramação Genética