O documento discute robótica autônoma em ambientes dinâmicos. Em 3 frases:
1) Apresenta agentes inteligentes e sistemas classificadores para navegação autônoma.
2) Discute aplicações de robôs autônomos como Mars Rovers e competições da DARPA.
3) Propõe o uso de sistemas classificadores evolutivos para guiar robôs em ambientes desconhecidos capturando alvos e desviando de obstáculos.
4. 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
5. 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.
7. 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
8. 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
9. 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.
10. Robótica Autônoma: Aplicações
• Mars Exploration Rovers
▫ Veículos para a exploração de Marte
▫ Desenvolvidos pelo Jet Propulsion Laboratory da
NASA.
11. 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.
12. 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.
13. 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.
14. 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.
15. 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...
16. 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.
18. 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.
19. 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!
20. 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.
21. 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.
22. 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ô.
23. 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.
26. 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.
27. 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.
28. 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.
29. 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?
30. 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.
34. 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ção
Tomada de
decisão
Percepção
35. • 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
36. • 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
37. • Supondo ambiente dinâmico
Ambiente Sistema
Agente
mudanças
estruturais
Ambiente Sistema
Agente
mudanças
operacionais
Auto
adaptação
38. • 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
40. 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.
41. 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).
42. 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.
43. 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.
44. Sistemas Classificadores
• Sistema classificador e ambiente
Ambiente Sistema
Classificador
Atuação
Tomada de
decisão
Percepção /
Entradas
46. Sistemas Classificadores
• Estrutura de Sistema Classificador com Aprendizado
Sistema
Classificador
Classificadores
C1
C2
C3
.
.
.
Cn
Entradas
Saída
Algoritmo
Evolutivo
Espaço de Busca*
(*todos os possíveis
classificadores)
47. 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...
48. 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.
50. 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
51. Especificações do Robô
• Possui 8 sensores infravermelhos:
▫ Medida de luminosidade (captura de alvo)
▫ Medida de distância para objetos
52. 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.
53. 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
54. SCA para Navegação Autônoma
• Composição de regras (classificadores)
• Se <antecedente> então <consequente>
56. 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
64. 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/theses/
• Robótica Coletiva: de Castro, L. N. (2006),
“Fundamentals of natural computing: basic
concepts, algorithms, and applications”, CRC
Press.