A Framework for Robots Development and Programming Based on Genetic Algorithms Palmeira P.F.M...

Preview:

Citation preview

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