navegacao de robótica autônoma em ambientes dinâmicos

64
em Ambientes Dinâmicos Rodrigo Pasti rodrigo.pasti@gmail .com

Upload: lcon-mackenzie

Post on 19-Jun-2015

331 views

Category:

Education


3 download

TRANSCRIPT

Page 1: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Robótica Autônoma em Ambientes Dinâmicos

Rodrigo [email protected]

Page 2: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Seminário de hoje...

•Agentes Inteligentes•Robótica Autônoma •Sistemas Classificadores•Navegação em Ambientes Dinâmicos

Page 3: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Agentes Inteligentes

Page 4: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Agentes Inteligentes

•Considera-se uma agente inteligente, uma entidade artificial cuja pretensão é simular algum comportamento humano, ou até mesmo de outros animais▫Comportamento de formigas é fonte de inspiração

pra robótica, por exemplo.•Em alto nível, as partes que um agente possui

são:▫Sensores▫Processador de informações▫Atuadores

Page 5: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Agentes Inteligentes

•Neste sentido até mesmo um programa de computador pode ser visto como um agente.

•Porém, o enfoque é aqui é em um tipo específico de agente: robôs autônomos com as mais diversas aplicações.

•Se o programa for um simulador de robôs, a definição virtual deles são os agentes.

Page 6: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Agentes Inteligentes

Inteligente?

Page 7: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Robótica Autônoma: Motivação

• “Eu estou convencido que os robôs estão hoje onde os computadores estavam em 1978. Foi por volta daquele ano que os computadores começaram a aparecer em nosso meio do modo como os robôs estão surgindo agora. É claro, foram necessários ainda outros 15 anos até que os computadores realmente se difundissem nas nossas vidas. Eu penso que em 15 anos, os robôs estarão em todos os lugares, assim como se dá atualmente com o e-mail e a Internet.”▫Rodney Brooks, pesquisador e co-fundador da iRobot,

Technology Review, 2/2004

Page 8: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Robótica Autônoma: Motivação

• “O estágio atual da área de robótica se assemelha muito àquele em que se encontravam os computadores 30 anos atrás. Pode-se dizer que os braços robóticos industriais são hoje os robôs mais comuns, assim como os mainframes eram os computadores em destaque naquela época. Embora tenham sua importância, é evidente o quão limitados são (e eram) estes dispositivos. A partir do momento que os robôs se tornarem acessíveis aos consumidores, eles poderão causar um impacto tão grande quanto aquele dos PCs há três décadas.” ▫ Bill Gates, Scientific American, 16/12/2006

Page 9: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Robótica Autônoma: Motivação

•Sinais dessa proferida revolução começam a ser evidenciados.

•Pesquisas em universidades e empresas buscam criar novas tecnologias voltadas à robótica autônoma.

•Já existem também diversos produtos comerciais, indo de aspiradores de pó a brinquedos.

Page 10: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Robótica Autônoma: Aplicações

•Mars Exploration Rovers▫Veículos para a exploração de Marte▫Desenvolvidos pelo Jet Propulsion Laboratory da

NASA.

Page 11: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Robótica Autônoma: Aplicações•Spirit e Opportunity: atraso de 16 minutos na comunicação com a Terra

•Escolha de dezenas de possíveis caminhos levando em consideração a distância e segurança.

• Fatores de segurança:•Altura e densidade de

rochas e depressões.• Irregularidade do

terreno.

Page 12: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Robótica Autônoma: Aplicações•Competição da DARPA▫Em 2007, os veículos participantes deveriam navegar de

forma autônoma por uma área urbana que reproduzia o tráfego de uma cidade, respeitando todas as leis de trânsito e os demais carros. O vencedor, da universidade de Carnegie Mellon, foi capaz de cumprir o percurso de 96 km em pouco mais de 4 horas , sem acidentes e, o mais importante, sem qualquer intervenção humana.

Page 13: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Robótica Autônoma: Aplicações• Na indústria, os robôs já são bastante comuns e,

segundo a Federação Internacional da Robótica:▫O número de unidades tem crescido a uma média

anual de 5,5%.▫Mais de um milhão de robôs em funcionamento em

2010.• A fábrica mais da BMW em Leipzig, Alemanha, possui,

na seção responsável pela produção do chassi do carro, cerca de 700 braços robóticos.

• Roomba (produzido pela empresa iRobot), é um robô aspirador de pó com mais de 2 milhões de unidades vendidas.

Page 14: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Robótica Autônoma: Aplicações•Microsoft Amalga® desenvolvido pela Microsoft Health

Solutions Group.▫É um sistema corporativo voltado ao uso de instituições da

área de saúde.▫Integra vários tipos de dados provenientes de diferentes

fontes. ▫Embora o Microsoft Amalga® seja bastante automatizado,

ele depende de intervenção humana para muitas tarefas, como por exemplo, a medição de temperatura de pacientes.

▫Solução: robôs que visitam os pacientes e colhem medições de temperatura.

Page 15: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Robótica Autônoma: Aplicações

•Patrulhar áreas de segurança.•Limpar ambientes.•Transportar materiais.•Fazer inspeção em tubulações e fiações.•Coletar objetos ou dados.•Guiar pessoas•Dentre muitas outras...

Page 16: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Robótica Autônoma: Aplicações•Todas as tarefas apresentadas são distintas entre

si, porém possuem algo em comum:▫O robô navega de um local de origem até outro de

destino, executando tarefas específicas, durante o trajeto e/ou ao seu final.

• Independente do ambiente, meio de locomoção e arquitetura, o projeto de construção de um robô autônomo segue basicamente a mesma premissa.

•Há um conjunto finito de tarefas base, relacionadas ao processo de navegação do robô, que são portáveis entre aplicações.

Page 17: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Definições e Especificações de Sistemas de Navegação Autônomos

Page 18: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Autonomia de Robôs

•A construção de robôs é uma tarefa multidisciplinar, que envolve desde a concepção do hardware:▫Sensores, atuadores e processamento.

•E software:▫Processamento de informações advindas de

sensores.▫Controle autônomo e pré-programado do robô.▫Acionamento de atuadores dado a informação de

entrada e o processamento ocorrido.

Page 19: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Autonomia de Robôs•Obviamente o papel fundamental da IA é com o

software, que será o controle do robô.•A robótica autônoma pode estar inserida dentro da

pesquisa em controle de sistemas.•Várias das teorias clássicas de controle de sistemas

são voltada a cenários específicos e limitados.•Um robô deve ser capaz de aprender, se adaptar e

evoluir, pois está sujeito a variações de ambientes.•Um robô deve ser capaz de navegar por ambientes

dinâmicos!

Page 20: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Autonomia de Robôs• Neste sentido a implementação do software de controle

do robô deve levar em consideração▫A adaptação a diferentes situações não vistas.▫Aquisição e incorporação de novos conhecimentos

relevantes.▫Evolução de regras de controle.

• Sendo assim algoritmos e ferramentas de IA são amplamente utilizadas no desenvolvimento da autonomia de robôs (seja qual for seu objetivo).

• Ferramentas como Redes Neurais Artificiais e Algoritmos Evolutivos são largamente utilizadas, por apresentarem as características desejáveis.

Page 21: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Comportamento e Arquitetura

•Ao se projetar e desenvolver um sistema de navegação autônomo é necessário determinar suas especificações em diversos âmbitos.

•Parte destas decisões derivam diretamente de fatos conhecidos, como o problema a ser tratado e o(s) robô(s) utilizado(s).

•Por outro lado, há decisões que não são tão óbvias e requerem maior atenção. A arquitetura do sistema é uma delas.

Page 22: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Comportamento e Arquitetura

•De acordo com o problema, ou seja, o ambiente e as tarefas enfrentados, é possível definir que tipos de comportamentos serão exigidos do robô.

•A partir do comportamento, determina-se a arquitetura do sistema:▫Como é a organização e composição interna do

sistema.▫E como estas manifestam suas ações externas

como comportamentos do robô.

Page 23: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Comportamento e Arquitetura

•A arquitetura deve levar em consideração essencialmente o comportamento que deseja-se obter, os quais destacam-se:▫Puramente reativo.▫Puramente deliberativo.▫Híbrido.

Page 24: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Comportamento e Arquitetura

Page 25: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Aprendizagem

•Tarefas elementares:▫Navegar pelo ambiente.▫Desviar de obstáculos.▫Capturar um alvo.

Page 26: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Aprendizagem

•Em robótica autônoma, aprendizagem é um princípio fundamental.

•Um robô com capacidade de aprendizado é potencialmente mais autônomo que outro incapaz de aprender.

•Aprendizagem significa se adaptar a novos ambientes e situações antes desconhecidos.

Page 27: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Aprendizagem

•Processos de aprendizagem de interesse:▫Introdução ou aquisição de novos conhecimentos.▫Generalização a partir de conhecimentos

específicos ou especificação de conceitos genéricos.

▫Reuso de experiências passadas.▫Reorganização interna do sistema.▫Criação ou descoberta de soluções para tarefas

ou problemas sendo tratados.

Page 28: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Otimização

•Sistemas de controle de robôs autônomos são projetados visando a otimização de alguns fatores específicos:▫Minimização de algum tipo de erro; ▫Minimização do consumo de energia; ▫Minimização do tempo de resposta a uma dada

entrada; ▫Maximização da velocidade para atingir um

objetivo.

Page 29: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Otimização

•A otimização relacionada com aprendizagem é fundamental no projeto de um robô.

•Pode ser vista como um complemento à aprendizagem, de modo que pode quantificar ou qualificar diferentes situações a serem aprendidas.

•Otimização e aprendizagem: que tipo de aprendizagem isso nos remete?

Page 30: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Aprendizagem+Otimização•Suponha uma aplicação em que o robô deve

coletar objetos no ambiente. •Primeiramente, o robô precisa aprender como

encontrar e coletar os objetos. •Em seguida, espera-se que o robô consiga

maximizar a quantidade de objetos coletados e minimizar o tempo gasto nesta tarefa.

•Enquanto a aprendizagem é fundamental, a otimização é determinante para que robôs possam não apenas cumprir suas tarefas, mas também executá-las com eficiência.

Page 31: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Ambiente e Robô

•Ambientes e robôs virtuais

Page 32: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Ambiente e Robô

•Ambientes e robôs reais

Page 33: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Navegação em Ambientes Dinâmicos

Page 34: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Navegação em Ambientes Dinâmicos•Sistemas de tomadas de decisão (controle).•Dada uma entrada qual decisão tomar?•Em outras palavras, como atuar no ambiente?

Ambiente Sistema

AtuaçãoTomada de decisão

Percepção

Page 35: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

•Ambientes dinâmicos: requerem aprendizado constante.

• Intervenção externa na síntese de processos é algo não admitido:▫Inserir conhecimento em um sistema pode ser

inútil, pois o conhecimento pode não ser mais válido em instantes seguintes.

•Como adaptar um sistema que está sendo aplicado em um ambiente em mudanças constantes?

Navegação em Ambientes Dinâmicos

Page 36: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

•Palavra chave: auto adaptação.•Um sistema que opera em ambientes dinâmicos

deve ser capaz de se adaptar às mudanças.•Para isto lança mão de métodos que

reorganizam sua estrutura de forma automática.•Com isso pretende-se criar adaptações

automáticas dados novos cenários produzidos pelo ambiente.

Navegação em Ambientes Dinâmicos

Page 37: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

•Supondo ambiente dinâmico

Ambiente Sistema

Agentemudanças estruturais

Ambiente Sistema

Agentemudanças

operacionais

Auto adaptação

Page 38: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

•Auto adaptação está relacionada à aprendizagem.

•Que no caso se resume em aprender com o ambiente. Quatro dificuldades inerentes:▫Ocorrência continuada de novidades no ambiente

e dados ruidosos.▫Exigência de tomada de ações em tempo real.▫Objetivos do sistema são implícitos ou imprecisos,

além de serem múltiplos e possivelmente conflitantes;

▫Dependência de longas sequencias de ações ou eventos para obtenção de realimentação acerca da qualidade das ações.

Navegação em Ambientes Dinâmicos

Page 39: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Sistemas Classificadores

Page 40: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Sistemas Classificadores

•Com o objetivo de contemplar a capacidade de aprendizagem por meio de classificação das regularidades de ambiente dinâmicos temos os Sistemas Classificadores com Aprendizagem (SCA).▫Learning Classifier Systems

•Podemos ver os SCA como uma mistura de sistemas especialistas e algoritmos evolutivos.

Page 41: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Sistemas Classificadores

•Sistemas classificadores são métodos para criação e atualização de regras de inferência, chamadas classificadores.

•Codificam eventuais ações a serem tomadas por um agente sob condições específicas do ambiente.

•Um dos componentes fundamentais do sistema, responsável pela atualização do conteúdo das regras são os algoritmos evolutivos (AEs) (ou genéticos).

Page 42: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Sistemas Classificadores

•Os AEs conferem o caráter evolutivo aos sistemas classificadores.

•São capazes de combinar, em um único sistema, evolução e aprendizagem de forma integrada.

•Os sistemas classificadores podem ser considerados modelos apropriados para a síntese de sistemas adaptativos.

Page 43: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Sistemas Classificadores

•Veremos então um sistema de navegação autônomo evolutivo fundamentado na teoria dos sistemas classificadores com aprendizagem.

•Objetivos: ▫Guiar um robô por ambientes desconhecidos▫Desviar de obstáculos▫Capturar alvos

•Princípio: sistema reativo com aquisição e evolução de conhecimentos.

Page 44: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Sistemas Classificadores

•Sistema classificador e ambiente

Ambiente SistemaClassificador

AtuaçãoTomada de decisão

Percepção /Entradas

Page 45: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Sistemas Classificadores

•Estrutura de Sistema Classificador

SistemaClassificador

ClassificadoresC1C2C3...

CnEntradas

Saída

Page 46: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Sistemas Classificadores•Estrutura de Sistema Classificador com Aprendizado

SistemaClassificador

ClassificadoresC1C2C3...

CnEntradas

Saída

Algoritmo Evolutivo

Espaço de Busca*

(*todos os possíveis classificadores)

Page 47: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Sistemas Classificadores

•O núcleo de um SCA é um conjunto de regras (ou classificadores) que são como as regras de inferência:▫Se <condição> Então <ação>

•<condição> e <ação> podem ser representados por valores nos mais diversos espaços de busca:▫Binários▫Inteiros▫Reais▫Etc...

Page 48: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Sistemas Classificadores

•Dado um ‘pool’ de classificadores•A cada t classificações ou seja a cada t

recebimento de entradas costuma-se recorrer ao AE para a atualização do ‘pool’ de classificadores.

•Esta atualização é baseada no desempenho do sistema nas t classificações.

•O desempenho obviamente é medido de acordo com a aplicação.

Page 49: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Navegação Através de Sistemas Classificadores com Aprendizado

Page 50: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Especificações do Robô•Utilização de um robô real: Khepera II▫Diâmetro: 80 mm ▫Altura: 30 mm▫Peso: 80 g

•Movimenta-se através de duas rodas controladas por motores de passo▫Controle de direção +15º (horário) ou 15º (anti

horário)▫Velocidade máxima: 1 m/s

Page 51: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Especificações do Robô•Possui 8 sensores infravermelhos:▫Medida de luminosidade (captura de alvo)▫Medida de distância para objetos

Page 52: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Especificações do Robô

•Quando o robô colide gira 180º em um efeito reativo.

•Possui ainda um sensor interno com o objetivo de capturar estados internos do sistema:▫Por exemplo, estados de monotonia onde há falta

de objetividade.▫Por exemplo, o robô não está mais capturando

alvos por um longo período de tempo.

Page 53: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

SCA para Navegação Autônoma• Início do SCA através de geração aleatória de

classificadores• Início do recebimento de entradas. ▫Receber uma mensagem do ambiente▫Iniciar processo de seleção do classificador

Comparar todos os classificadores com a msg. Escolher o mais adequado (mais semelhante).

▫Executar ação do classificador▫Detectar eventos de colisão, captura ou monotonia▫Caso seja detectado algum evento então acionar o

algoritmo evolutivo•Fim do recebimento de entradas

Page 54: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

SCA para Navegação Autônoma•Composição de regras (classificadores)•Se <antecedente> então <consequente>

Page 55: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

SCA para Navegação Autônoma

•Exemplos de regras:

Page 56: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

SCA para Navegação Autônoma•Evolução de regras•Aplica-se um AE para gerar novos conjuntos de

regras.•Reprodução e Mutação nas regras existentes•Avaliação de regras (função de fitness):▫Disparadas segundo algum evento: colisão, captura

de alvo e monotonia•Supondo colisão▫O sensor captura a situação de colisão▫Regras que mais se assemelham a situação de

colisão possui menos probabilidade de reproduzirem

Page 57: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

SCA para Navegação Autônoma

•Vídeos

Page 58: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Alguns Robôs Voltados à Pesquisa e Ensino

Page 59: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Khepera III

Page 60: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

E-Puck

Page 61: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Kilobot

Page 62: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Skybotix CoaX

Page 63: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

ROBOTIS Bioloid GP

Page 64: Navegacao de Robótica Autônoma em Ambientes Dinâmicos

Referências•Aula baseada na tese de doutorado de Renato

Reder Cazangi: “Síntese de Controladores Autônomos em Robótica Móvel por meio de Computação Bio-inspirada”, FEEC/Unicamp, 2008.▫ftp://ftp.dca.fee.unicamp.br/pub/docs/vonzuben/th

eses/tese_Cazangi.pdf•Robótica Coletiva: de Castro, L. N. (2006),

“Fundamentals of natural computing: basic concepts, algorithms, and applications”, CRC Press.