Você está na página 1de 9

!!

Definição de paradigma
!! Principais paradigmas da robótica:
!! Paradigma Hierárquico (Deliberativo)
!! Exemplos
Prof. Dr. Alexandre da Silva Simões !! Paradigma Reativo
UNESP !! Exemplos
!! Paradigma Híbrido (Reativo-Deliberativo)

Robótica Móvel
1 Prof. Dr. Alexandre da Silva Simões 2

!! Números romanos (!) e arábicos (!) : !! Paradigma: conjunto de suposições e/ou técnicas
I:1 V:5 X:10 L:50 C:100 D:500 M: que caracterizam uma abordagem para uma
1000 classe de problemas (Murphy, 2002)

XI:11, IX:9, XIX:19, MCMXXVIII:1928


XIX 19 !! Por que estudar paradigmas?
x IIV x 3 !! Para sistematizar o estudo de uma determinada área:
!! Realizar a operação: !! Para poder efetuar comparações entre códigos em alto
LVII 57 nível;
!! Conclusão: !! Para não perder tempo desenvolvendo coisas já
desenvolvidas (não reinventar a roda!!!!);
!! No domínio das operações aritméticas, considerando os
!! Para aproveitar os erros e acertos de outras pessoas no
paradigmas romano e arábico, a resolução do problema fica
passado.
muito mais simples quando se utiliza o paradigma arábico

Robótica Móvel
Robótica Móvel
Prof. Dr. Alexandre da Silva Simões 4
Prof. Dr. Alexandre da Silva Simões 3
!! Estabelecem a relação entre as primitivas !! Hierárquico
sentir, planejar e agir (ou deliberativo)
!! Sentir: como, quando e o quê observar?
!! Planejar: como determinar as ações corretas?
!! Reativo
!! Agir: como ativar os atuadores de forma
adequada?
Primitiva Entrada Saída
Sentir Dados Informações !! Híbrido
Planejar Informações (sentidas Diretivas
ou conhecidas)
Agir Informações ou diretiva Comandos aos
atuadores
Robótica Móvel Robótica Móvel
Prof. Dr. Alexandre da Silva Simões 5 Prof. Dr. Alexandre da Silva Simões 6

!! (1967-1990) !! Problema: um robô em uma sala S1


deseja ir para uma sala S2
!! O robô percebe:
!! Objetos móveis na sala, objetos
móveis próximos à porta
Sensor Dados Informações !! Situação da porta (aberta ou
fechada)
Planejamento Informações Diretivas !! Conexões entre as salas
!! Passos:
Ação Diretivas Comandos aos 1.! Construir uma representação do
atuadores mundo
2.! Determinar o estado atual e o
objetivo
3.! Definir operadores
4.! Determinar a seqüência ideal de
aplicação desses operadores
Robótica Móvel Robótica Móvel
Prof. Dr. Alexandre da Silva Simões 7 Prof. Dr. Alexandre da Silva Simões 8
!! Predicados: !! Estado inicial:

NA_SALA(ROBÔ, S1)
!! NA_SALA(x, s) onde x é um objeto móvel e s é uma
NA_SALA(PRESENTE, S2)
sala CONECTADA(P1, S1, S2)
!! PRÓXIMO_A(x, p) onde x é um objeto móvel e p é uma CONECTADA(P1, S2, S1)
porta SITUAÇÃO(P1, ABERTA)
!! SITUAÇÃO(p,sp) onde p é uma porta e sp assume
ABERTA ou FECHADA !! Estado final:
!! CONECTA (p, sa, sb) onde p é uma porta, sa e sb são
salas NA_SALA(ROBÔ, S2)
NA_SALA(PRESENTE, S2)
CONECTADA(P1, S1, S2)
Maiúsculo: predicados ou valores, minúsculo: variáveis CONECTADA(P1, S2, S1)
SITUAÇÃO (P1, ABERTA)

Robótica Móvel Robótica Móvel


Prof. Dr. Alexandre da Silva Simões 9 Prof. Dr. Alexandre da Silva Simões 10

Algoritmo: Resolução de diferenças


Operador Pré-condição Adicionar à lista Retirar da lista
1.! Computar a diferença entre o estado objetivo e o estado
atual usando uma função para determinação de diferença.
IR_PARA_PORTA NA_SALA (ROBÔ, sa) PRÓXIMO (ROBÔ, p)
(ROBÔ, p)
Se não há diferença, então fim.
CONECTADA (p, sa, sb)

ATRAVESSAR CONECTADA (p, sa, sb) NA_SALA (ROBÔ, sb) NA_SALA (ROBÔ, sa)
(ROBÔ, p) PRÒXIMO (ROBÔ, p)
SITUAÇÂO (p, ABERTA)
NA_SALA (ROBÔ, sa)

Robótica Móvel
Robótica Móvel
Prof. Dr. Alexandre da Silva Simões 12
Prof. Dr. Alexandre da Silva Simões 11
2.! Reduzir a diferença selecionando o primeiro operador da 3.! Examinar as pré-condições para ver se um conjunto de condições
tabela de diferença cuja adição à lista inclua um predicado verdadeiras para a variável em questão pode ser encontrado.
Se nem todas forem encontradas, tomar a primeira pré-
que nega a diferença condição falsa, fazê-la o novo objetivo e armazenar o objetivo
anterior no stack. Recursivamente reduzir esta diferença repetindo
Operador Pré-condição Adicionar à lista Retirar da lista os passos 2 e 3.
IR_PARA_PORTA NA_SALA (ROBÔ, sa) PRÓXIMO (ROBÔ, p) Operador Pré-condição Adicionar à lista Retirar da lista
(ROBÔ, p) CONECTADA (p, sa, sb) IR_PARA_PORTA NA_SALA (ROBÔ, sa) PRÓXIMO (ROBÔ, p)
(ROBÔ, p) CONECTADA (p, sa, sb)
ATRAVESSAR CONECTADA (p, sa, sb) NA_SALA (ROBÔ, sb) NA_SALA (ROBÔ, sa)
(ROBÔ, p) PRÒXIMO (ROBÔ, p) ATRAVESSAR CONECTADA (p, sa, sb) NA_SALA (ROBÔ, sb) NA_SALA (ROBÔ, sa)
SITUAÇÂO (p, ABERTA) (ROBÔ, p) PRÒXIMO (ROBÔ, p)
Estado:
NA_SALA (ROBÔ, sa) SITUAÇÂO (p, ABERTA)
NA_SALA(ROBÔ, S1)
NA_SALA (ROBÔ, sa) NA_SALA(PRESENTE, S2)
OBs: variável sa instanciada com o valor S1
Variáveis instanciadas: CONECTADA(P1, S1, S2)
sa=S1, p=P1, sb = S2 CONECTADA(P1, S2, S1)
SITUAÇÂO(P1, ABERTA)
Robótica Móvel Robótica Móvel
Prof. Dr. Alexandre da Silva Simões 13 Prof. Dr. Alexandre da Silva Simões 14

!! Objetivo: PROXIMO (ROBÔ, p) !! Objetivo: PROXIMO (ROBÔ, p)

Operador Pré-condição Adicionar à lista Retirar da lista Operador Pré-condição Adicionar à lista Retirar da lista
IR_PARA_PORTA NA_SALA (ROBÔ, sa) PRÓXIMO (ROBÔ, p) IR_PARA_PORTA NA_SALA (ROBÔ, sa) PRÓXIMO (ROBÔ, p)
(ROBÔ, p) CONECTADA (p, sa, sb) (ROBÔ, p) CONECTADA (p, sa, sb)

ATRAVESSAR CONECTADA (p, sa, sb) NA_SALA (ROBÔ, sb) NA_SALA (ROBÔ, sa) ATRAVESSAR CONECTADA (p, sa, sb) NA_SALA (ROBÔ, sb) NA_SALA (ROBÔ, sa)
(ROBÔ, p) PRÒXIMO (ROBÔ, p) (ROBÔ, p) PRÒXIMO (ROBÔ, p)
SITUAÇÂO (p, ABERTA) Estado : SITUAÇÂO (p, ABERTA) Estado :
NA_SALA (ROBÔ, sa) NA_SALA(ROBÔ, S1) NA_SALA (ROBÔ, sa) NA_SALA(ROBÔ, S1)
NA_SALA(PRESENTE, NA_SALA(PRESENTE,
S2) S2)
Variáveis instanciadas: CONECTADA(P1, S1, S2) Variáveis instanciadas: CONECTADA(P1, S1, S2)
sa: S1, p: P1, sb: S2 CONECTADA(P1, S2, S1) CONECTADA(P1, S2, S1)
sa: S1, p: P1, sb: S2
SITUAÇÂO(P1, ABERTA) SITUAÇÂO(P1, ABERTA)
Robótica Móvel Robótica Móvel
Prof. Dr. Alexandre da Silva Simões 15 Prof. Dr. Alexandre da Silva Simões 16
4.! Quando todas as pré-condições para um operador forem possíveis, Estado inicial:
colocar o operador no stack e atualizar uma cópia do modelo do
NA_SALA(ROBÔ, S1)
mundo. Retornar ao operador cujas pré-condições falharam e
NA_SALA(PRESENTE, S2)
então aplicar seu operador ou retornar a uma outra pré-condição
CONECTADA(P1, S1, S2)
falha.
CONECTADA(P1, S2, S1)
Operador Pré-condição Adicionar à lista Retirar da lista SITUAÇÂO(P1, ABERTA)
IR_PARA_PORTA NA_SALA (ROBÔ, sa) PRÓXIMO (ROBÔ, p)
(ROBÔ, p) CONECTADA (p, sa, sb)

ATRAVESSAR CONECTADA (p, sa, sb) NA_SALA (ROBÔ, sb) NA_SALA (ROBÔ, sa)
(ROBÔ, p) PRÒXIMO (ROBÔ, p)
SITUAÇÂO (p, ABERTA)
NA_SALA (ROBÔ, sa)

!! Plano para o robô:


!! IR_PARA_PORTA (ROBÔ, P1)
!! ATRAVESSAR (ROBÔ, P1)
Robótica Móvel Robótica Móvel
Prof. Dr. Alexandre da Silva Simões 17 Prof. Dr. Alexandre da Silva Simões 18

Estado inicial: Estado inicial:


NA_SALA(ROBÔ, S1) NA_SALA(ROBÔ, S1)
NA_SALA(PRESENTE, S2) NA_SALA(PRESENTE, S2)
CONECTADA(P1, S1, S2) CONECTADA(P1, S1, S2)
CONECTADA(P1, S2, S1) CONECTADA(P1, S2, S1)
SITUAÇÂO(P1, ABERTA) SITUAÇÂO(P1, ABERTA)

Robótica Móvel Robótica Móvel


Prof. Dr. Alexandre da Silva Simões 19 Prof. Dr. Alexandre da Silva Simões 20
Estado inicial: Estado : Estado inicial: Estado :
NA_SALA(ROBÔ, S1) NA_SALA(ROBÔ, S1) NA_SALA(ROBÔ, S1) NA_SALA(ROBÔ, S1)
NA_SALA(PRESENTE, S2) NA_SALA(PRESENTE, S2) NA_SALA(PRESENTE, S2) NA_SALA(PRESENTE, S2)
CONECTADA(P1, S1, S2) CONECTADA(P1, S1, S2) CONECTADA(P1, S1, S2) CONECTADA(P1, S1, S2)
CONECTADA(P1, S2, S1) CONECTADA(P1, S2, S1) CONECTADA(P1, S2, S1) CONECTADA(P1, S2, S1)
SITUAÇÂO(P1, ABERTA) SITUAÇÂO(P1, ABERTA) SITUAÇÂO(P1, ABERTA) SITUAÇÂO(P1, ABERTA)
PRÓXIMO (ROBÔ, P1) PRÓXIMO (ROBÔ, P1)

Robótica Móvel Robótica Móvel


Prof. Dr. Alexandre da Silva Simões 21 Prof. Dr. Alexandre da Silva Simões 22

Estado inicial: Estado : Estado inicial: Estado :


NA_SALA(ROBÔ, S1) NA_SALA(ROBÔ, S1) NA_SALA(ROBÔ, S1) NA_SALA(ROBÔ, S1)
NA_SALA(PRESENTE, S2) NA_SALA(PRESENTE, S2) NA_SALA(PRESENTE, S2) NA_SALA(PRESENTE, S2)
CONECTADA(P1, S1, S2) CONECTADA(P1, S1, S2) CONECTADA(P1, S1, S2) CONECTADA(P1, S1, S2)
CONECTADA(P1, S2, S1) CONECTADA(P1, S2, S1) CONECTADA(P1, S2, S1) CONECTADA(P1, S2, S1)
SITUAÇÂO(P1, ABERTA) SITUAÇÂO(P1, ABERTA) SITUAÇÂO(P1, ABERTA) SITUAÇÂO(P1, ABERTA)
PRÓXIMO (ROBÔ, P1) PRÓXIMO (ROBÔ, P1)

Estado final :
NA_SALA(ROBÔ, S1)
NA_SALA(PRESENTE, S2)
CONECTADA(P1, S1, S2)
CONECTADA(P1, S2, S1)
SITUAÇÂO(P1, ABERTA)
PRÓXIMO (ROBÔ, P1)
NA_SALA (ROBÔ, S2)

Robótica Móvel Robótica Móvel


Prof. Dr. Alexandre da Silva Simões 23 Prof. Dr. Alexandre da Silva Simões 24
!! Provê uma relação ordenada entre as primitivas: !! Considerado o primeiro
sentir, planejar e agir com foco no planejamento robô móvel “inteligente”
!! Instituição responsável:
!! Desenvolvidos para aplicações específicas
Artificial Intelligence
!! Algoritmos de planning muito pesados.
Center no Stanford
Usualmente requerem linguagens como LISP e Research Institute
PROLOG
!! Problemas:
!! Vídeo:
!! Observações dos sensores são fundidas em uma estrutura
global (mapa do mundo), onde estão presentes muitas Skakey
informações irrelevantes, o que dificulta o planejamento !! Documentos:
!! “Uma rocha está caindo sobre mim. Para onde devo ir?”
Technical note
Robótica Móvel Robótica Móvel
Prof. Dr. Alexandre da Silva Simões 25 Prof. Dr. Alexandre da Silva Simões 26

!! (1988 - ?) Decomposto horozontalmente:

Sensor Dados Observação extração de combina planeja executa controle dos


sensores características tarefas tarefas motores atuadores
características
no modelo
- - -

Ação Observação Comandos aos SENTIR PLANEJAR AGIR


atuadores

!! Movimento dos pesquisadores de IA investigando biologia,


etologia (estudo do comportamento animal) e psicologia
cognitiva (estudo de como humanos pensam e representam
conhecimento)

Robótica Móvel
Robótica Móvel
Prof. Dr. Alexandre da Silva Simões 27
Prof. Dr. Alexandre da Silva Simões 28
!! A literatura etológica sugere que a inteligência seja !! Camadas provêm comportamentos que vão do
formada em camadas verticais: nível mais baixo (sobrevivência) ao mais alto;
!! Se algo acontecer com um comportamento de nível
Construir mapas mais alto, o inferior ainda estará operando
!! C o m p o r t a m e n t o p o d e m i n i b i r o u t r o s
SENSORES ATUADORES
Explorar
Perambular comportamentos ou acioná-los de forma paralela
Evitar colisões para produzir comportamentos de mais alto nível;
!! A percepção dos comportamentos é propositada
(sensoriamento pode ser local)
!! Paradigma reativo não é propício a provas
Alto nível SENTIR AGIR Construir mapas

AGIR
matemáticas demonstrando que alguns
comportamentos são suficientes e corretos para
SENTIR Explorar

SENTIR AGIR Perambular


uma tarefa
Baixo nível
(sobrevivência) SENTIR AGIR Evitar colisões
Robótica Móvel Robótica Móvel
Prof. Dr. Alexandre da Silva Simões 29 Prof. Dr. Alexandre da Silva Simões 30

(1980-?)

Arquiteturas para
programação reativa
•! Procura fundir as vantagens dos robôs deliberativos com a
simplicidade dos robôs reativos;
•! Robô decompõe uma tarefa em subtarefas (de forma deliberativa),
e depois decide quais são os comportamentos (reativos) mais
adequados para cumprir cada subtarefa, estabelecendo uma
organização planejar, sentir-agir. abrir

Robótica Móvel
Robótica Móvel
Prof. Dr. Alexandre da Silva Simões 31
Prof. Dr. Alexandre da Silva Simões 32
!! MURPHY, Robin R. Introduction to AI robotics. MIT
Press, 2002.
!! DUDEK, Gregory; JENKIN, Michael. Computational
Principles of mobile robotics. Cambridge Press,
2000.
!! RUSSEL, S. NORVIG, P. Artificial Intelligence: a
modern approach. Prentice Hall, 2002.
!! B R O O K S , R o d n e y A . I n t e l l i g e n c e w i t h o u t
representation. Artificial Intelligence, 47:139-159,
1991.
!! BRATKO, I. PROLOG: programming for artificial
intelligence. Addison Wesley, 2nd edition, 1990.

Robótica Móvel
Prof. Dr. Alexandre da Silva Simões 33

Você também pode gostar