• Nenhum resultado encontrado

Estrutura da Apresentação

N/A
N/A
Protected

Academic year: 2021

Share "Estrutura da Apresentação"

Copied!
55
0
0

Texto

(1)

1

Programação do ERS210A

Programação do ERS210A

utilizando o OPEN

utilizando o OPEN

-

-

R SDK

R SDK

Luís Paulo Reis

Luís Paulo Reis

lpreis@fe.up.pt

lpreis@fe.up.pt

http://www.fe.up.pt/~lpreis

http://www.fe.up.pt/~lpreis

LIACC

LIACC

Lab

Lab

. Inteligência Artificial e Ciência de Computadores

. Inteligência Artificial e Ciência de Computadores

FEUP

FEUP

Faculdade de Engenharia da Universidade do Porto

Faculdade de Engenharia da Universidade do Porto

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 22

Estrutura da Apresentação

Estrutura da Apresentação

ƒ

ƒ

Introdução à Programação em OPEN-

Introdução à Programação em OPEN

-R SDK

R SDK

ƒ

ƒ

Comunicação entre Objectos

Comunicação entre Objectos

ƒ

ƒ

Comunicação com os Objectos do Sistema

Comunicação com os Objectos do Sistema

ƒ

ƒ

Utilização da Câmara

Utilização da Câmara

ƒ

ƒ

Combinação de Objectos

Combinação de Objectos

ƒ

(2)

2

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 33

Estrutura da Apresentação

Estrutura da Apresentação

ƒ

ƒ

Introdução à Programação em OPEN-

Introdução à Programação em OPEN

-R SDK

R SDK

ƒ

ƒ

Comunicação entre Objectos

Comunicação entre Objectos

ƒ

ƒ

Comunicação com os Objectos do Sistema

Comunicação com os Objectos do Sistema

ƒ

ƒ

Utilização da Câmara

Utilização da Câmara

ƒ

ƒ

Combinação de Objectos

Combinação de Objectos

ƒ

ƒ

Conclusões

Conclusões

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 44

Plataforma Robótica AIBO

(3)

3

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 55

OPEN

OPEN

-

-

R SDK

R SDK

-

-

Introdução

Introdução

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 66

OPEN

OPEN

-

-

R SDK

R SDK

-

-

Introdução

Introdução

ƒ

ƒ

OPEN

OPEN

-

-

R:

R:

Interface standard para robôs de entretenimento da

Interface standard para robôs de entretenimento da

Sony

Sony

ƒ

ƒ

OPEN

OPEN

-

-

R SDK

R SDK

(OPEN

(OPEN

-

-

R Software

R Software

Development

Development

Kit)

Kit)

Ambiente de desenvolvimento baseado no

Ambiente de desenvolvimento baseado no

gcc

gcc

(C++)

(C++)

Permite construir programas que correm no ERS

Permite construir programas que correm no ERS

-

-

210

210

Ferramentas de acesso livre

Ferramentas de acesso livre

Arquitectura modular de Hardware e Software

Arquitectura modular de Hardware e Software

(4)

4

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 77

OPEN

OPEN

-

-

R SDK

R SDK

-

-

Introdução

Introdução

ƒ

ƒ

Hardware Modular:

Hardware Modular:

Mudar a forma do Robô mudando os seus

Mudar a forma do Robô mudando os seus

módulos (por exemplo trocar uma perna ou a

módulos (por exemplo trocar uma perna ou a

cabeça!).

cabeça!).

Módulos conectados por um BUS série de alta

Módulos conectados por um BUS série de alta

velocidade com

velocidade com

autodetecção

autodetecção

da configuração

da configuração

do robô

do robô

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 88

OPEN

OPEN

-

-

R SDK

R SDK

-

-

Introdução

Introdução

ƒ

ƒ

Software Modular

Software Modular

Módulo de software são “

Módulo de software são “

Objects

Objects

Execução concorrente de objectos que

Execução concorrente de objectos que

comunicam uns com os outros

comunicam uns com os outros

Simples substituir objectos

Simples substituir objectos

Objectos são carregados do “

Objectos são carregados do “

Memory

Memory

Stick

Stick

ƒ

ƒ

Rede Wireless

Rede

Wireless

IEEE802.11b

IEEE802.11b

Wireless

Wireless

LAN (PC

LAN (PC

Card

Card

Slot

Slot

)

)

(5)

5

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 99

OPEN

OPEN

-

-

R SDK

R SDK

-

-

Introdução

Introdução

ƒ

ƒ

Sistema Operativo (tempo-

Sistema Operativo (tempo

-real):

real):

Aperios

Aperios

ƒ

ƒ

Programas escritos em OPEN-

Programas escritos em OPEN

-R SDK

R SDK

www.jp.aibo.com/openr

www.jp.aibo.com/openr

ƒ

ƒ

Memory

Memory

Sticks

Sticks

(gravador ou via wireless

(gravador ou via

wireless)

)

ƒ

ƒ

OPEN-

OPEN

-R

R Objects

Objects:

:

Executáveis com a extensão .BIN

Executáveis com a extensão .BIN

Comunicam com outros objectos por

Comunicam com outros objectos por

mensagens

mensagens

Semelhantes a processos UNIX

Semelhantes a processos UNIX

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 10Slide Nº 10

OPEN

OPEN

-

-

R SDK

R SDK

-

-

Documentação

Documentação

ƒ

ƒ

Sistema:

Sistema:

Open

Open

-

-

R SDK

R SDK

-

-

Versão

Versão

1.1.3

1.1.3

Open

Open

-

-

R SDK

R SDK

-

-

Upgrade

Upgrade

Versão

Versão

1.1.3 (release 2)

1.1.3 (release 2)

ƒ

ƒ

Programas Exemplo:

Programas Exemplo:

Open

Open

-

-

R SDK

R SDK

-

-

Sample Programs

Sample Programs

(

(

código

código

C++)

C++)

ƒ

ƒ

Documentação:

Documentação:

Open

Open

-

-

R SDK

R SDK

-

-

Installation Guide

Installation Guide

Open

Open

-

-

R SDK

R SDK

-

-

Programmer's Guide

Programmer's Guide

Open

Open

-

-

R SDK

R SDK

-

-

Model Information for ERS210

Model Information for ERS210

Open

Open

-

-

R SDK

R SDK

-

-

Level 2

Level 2

-

-

Reference Guide

Reference Guide

pen

pen

-

-

R SDK

R SDK

-

-

Internet Protocol

Internet Protocol

-

-

Version 4

Version 4

(6)

6

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 11Slide Nº 11

OPEN

OPEN

-

-

R SDK

R SDK

-

-

Potencialidades

Potencialidades

ƒ

ƒ

Movimentar juntas do robô independentemente

Movimentar juntas do robô independentemente

ƒ

ƒ

Ler os ângulos das juntas

Ler os ângulos das juntas

ƒ

ƒ

Ligar e desligar os

Ligar e desligar os

leds

leds

da cabeça e cauda

da cabeça e cauda

ƒ

ƒ

Tocar áudio PCM

Tocar áudio PCM

ƒ

ƒ

Ler a imagem da câmara

Ler a imagem da câmara

ƒ

ƒ

Ler informação áudio

Ler informação áudio

ƒ

ƒ

Ler a data/hora, nível de bateria,

Ler a data/hora, nível de bateria,

etc

etc

ƒ

ƒ

Ler informação de todos os sensores do robô

Ler informação de todos os sensores do robô

ƒ

ƒ

Enviar e receber dados via rede

Enviar e receber dados via rede

Wireless

Wireless

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 12Slide Nº 12

Conhecimentos Prévios

Conhecimentos Prévios

ƒ

ƒ

Experiência em Programação em C++

Experiência em Programação em C++

ƒ

ƒ

Algoritmos e Estruturas de Dados

Algoritmos e Estruturas de Dados

ƒ

ƒ

Inteligência Artificial e Robótica

Inteligência Artificial e Robótica

ƒ

ƒ

Utilização de ferramentas de

Utilização de ferramentas de

desenvolvimento GNU

desenvolvimento GNU

ƒ

ƒ

Como usar UNIX / ferramentas Cygwin

Como usar UNIX / ferramentas

Cygwin:

:

Bash

Bash

,

,

tar

tar

,

,

ls

ls

,

,

etc

etc

.

.

ƒ

(7)

7

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 13Slide Nº 13

Estrutura da Apresentação

Estrutura da Apresentação

ƒ

ƒ

Introdução à Programação em OPEN-

Introdução à Programação em OPEN

-R SDK

R SDK

ƒ

ƒ

Comunicação entre Objectos

Comunicação entre Objectos

ƒ

ƒ

Comunicação com os Objectos do Sistema

Comunicação com os Objectos do Sistema

ƒ

ƒ

Utilização da Câmara

Utilização da Câmara

ƒ

ƒ

Combinação de Objectos

Combinação de Objectos

ƒ

ƒ

Conclusões

Conclusões

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 14Slide Nº 14

Objectos em OPEN

Objectos em OPEN-

-R

R

ƒ

ƒ

Software OPEN-

Software OPEN

-R são diversos objectos

R são diversos objectos

(semelhantes a ficheiros executáveis)

(semelhantes a ficheiros executáveis)

ƒ

ƒ

Objectos correm concorrentemente

Objectos correm concorrentemente

ƒ

ƒ

Objectos comunicam por passagem de

Objectos comunicam por passagem de

mensagens

mensagens

ƒ

ƒ

Objectos possuem múltiplos pontos de

Objectos possuem múltiplos pontos de

entrada

(8)

8

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 15Slide Nº 15

Envio e Recepção de Dados

Envio e Recepção de Dados

ƒ

ƒ

Comunicação entre objectos estabelecida pelo

Comunicação entre objectos estabelecida pelo

subject

subject

e pelo

e pelo

observer

observer

(incluídos no “

(incluídos no “

object

object

”)

”)

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 16Slide Nº 16

Envio e Recepção de Dados

Envio e Recepção de Dados

ƒ

(9)

9

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 17Slide Nº 17

Envio e Recepção de Dados

Envio e Recepção de Dados

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 18Slide Nº 18

Envio e Recepção de Dados

Envio e Recepção de Dados

ƒ

ƒ

Para colocar os dados na área comum:

Para colocar os dados na área comum:

(10)

10

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 19Slide Nº 19

Envio e Recepção de Dados

Envio e Recepção de Dados

ƒ

ƒ

Para receber os dados da área comum:

Para receber os dados da área comum:

Event.Data(0)

Event.Data(0)

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 20Slide Nº 20

Subjects

Subjects

e Observers

e

Observers

ƒ

ƒ

Objecto que envia dados é um “Subject

Objecto que envia dados é um “

Subject”

ƒ

(11)

11

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 21Slide Nº 21

Comunicação entre Objectos

Comunicação entre Objectos

ƒ

ƒ

Quando um observer

Quando um

observer

está pronto envia uma

está pronto envia uma

mensagem ASSERT_READY ao

mensagem ASSERT_READY ao subject

subject

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 22Slide Nº 22

Comunicação entre Objectos

Comunicação entre Objectos

ƒ

ƒ

Quando um subject

Quando um

subject

recebe um

recebe um

ASSERT_READY

ASSERT_READY

, pode enviar dados a um

, pode enviar dados a um

observer

(12)

12

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 23Slide Nº 23

Comunicação entre Objectos

Comunicação entre Objectos

ƒ

ƒ

Depois de um “observer

Depois de um “

observer” ter processado os

” ter processado os

dados, envia um novo ASSERT_READY

dados, envia um novo ASSERT_READY

para receber mais dados

para receber mais dados

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 24Slide Nº 24

Comunicação entre Objectos

Comunicação entre Objectos

(13)

13

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 25Slide Nº 25

Comunicação entre Objectos

Comunicação entre Objectos

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 26Slide Nº 26

Comunicação entre Objectos

Comunicação entre Objectos

(14)

14

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 27Slide Nº 27

Comunicação entre Objectos

Comunicação entre Objectos

ƒ

ƒ

Linha Dedicada unidireccional entre os Objectos!

Linha Dedicada unidireccional entre os Objectos!

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 28Slide Nº 28

Comunicação entre Objectos

Comunicação entre Objectos

ƒ

ƒ

Um objecto pode estar conectado a múltiplos objectos (1

Um objecto pode estar conectado a múltiplos objectos (1

linha dedicada para cada ligação unidireccional!)

(15)

15

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 29Slide Nº 29

Comunicação entre Objectos

Comunicação entre Objectos

ƒ

ƒ

É necessário criar uma lista com todos os

É necessário criar uma lista com todos os

objectos:

objectos: object.cfg

object.cfg

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 30Slide Nº 30

Exemplo de Comunicação

Exemplo de Comunicação

(16)

16

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 31Slide Nº 31

Exemplo de Comunicação

Exemplo de Comunicação

“SampleSubject.h”

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 32Slide Nº 32

Exemplo de Comunicação

Exemplo de Comunicação

(17)

17

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 33Slide Nº 33

Comunicação entre Objectos

Comunicação entre Objectos

ƒ

ƒ

Numa aplicação OPEN

Numa aplicação OPEN

-

-

R existem normalmente

R existem normalmente

diversos objectos, incluindo objectos que não

diversos objectos, incluindo objectos que não

comunicam com os outros

comunicam com os outros

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 34Slide Nº 34

Estrutura da Apresentação

Estrutura da Apresentação

ƒ

ƒ

Introdução à Programação em OPEN-

Introdução à Programação em OPEN

-R SDK

R SDK

ƒ

ƒ

Comunicação entre Objectos

Comunicação entre Objectos

ƒ

ƒ

Comunicação com os Objectos do Sistema

Comunicação com os Objectos do Sistema

ƒ

ƒ

Utilização da Câmara

Utilização da Câmara

ƒ

ƒ

Combinação de Objectos

Combinação de Objectos

ƒ

(18)

18

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 35Slide Nº 35

Objectos do Sistema

Objectos do Sistema

ƒ

ƒ

OVirtualRobotComm.Sensor

OVirtualRobotComm.Sensor

ƒ

ƒ

Estrutura dos Inputs

Estrutura dos

Inputs

dos Sensores:

dos Sensores:

OSensorFrameVectorData

OSensorFrameVectorData

ƒ

ƒ

OVirtualRobotComm.Effector

OVirtualRobotComm.Effector

ƒ

ƒ

Estrutura de dados para Output

Estrutura de dados para

Output

para os

para os

actuadores:

actuadores:

OCommandVectorData

OCommandVectorData

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 36Slide Nº 36

Objectos do Sistema

Objectos do Sistema

-

-

Exemplo

Exemplo

ƒ

ƒ

Exemplo: Piscar um olho do AIBO (ver

Exemplo: Piscar um olho do AIBO (ver

sample

sample

BlinkingLed

(19)

19

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 37Slide Nº 37

Objectos do Sistema

Objectos do Sistema

-

-

Exemplo

Exemplo

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 38Slide Nº 38

Objectos do Sistema

Objectos do Sistema

-

-

Exemplo

Exemplo

ƒ

ƒ

Forma de Comunicar com

Forma de Comunicar com

OVirtualRobotComm

OVirtualRobotComm

:

:

1. Abrir cada

1. Abrir cada

device

device

Led

Led

e tirar o seu “

e tirar o seu “

primitive

primitive

ID”

ID”

2. Criar comandos para piscar os

2. Criar comandos para piscar os

Leds

Leds

3. Fazer 1 e 2 na

3. Fazer 1 e 2 na

inicialização

inicialização

(

(

DoInit

DoInit

)

)

4. Preparar para apagar os

(20)

20

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 39Slide Nº 39

Objectos do Sistema

Objectos do Sistema

-

-

Exemplo

Exemplo

1. Abrir cada

1. Abrir cada device

device

Led

Led

e tirar o seu “primitive

e tirar o seu “

primitive

ID”

ID”

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 40Slide Nº 40

Objectos do Sistema

Objectos do Sistema

-

-

Exemplo

Exemplo

2. Criar comandos para piscar os

(21)

21

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 41Slide Nº 41

Objectos do Sistema

Objectos do Sistema

-

-

Exemplo

Exemplo

2. Criar comandos para piscar os

2. Criar comandos para piscar os

Leds

Leds

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 42Slide Nº 42

Objectos do Sistema

Objectos do Sistema

-

-

Exemplo

Exemplo

ƒ

(22)

22

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 43Slide Nº 43

Objectos do Sistema

Objectos do Sistema

-

-

Exemplo

Exemplo

3. Fazer 1 e 2 na

3. Fazer 1 e 2 na

inicialização

inicialização

(

(

DoInit

DoInit

)

)

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 44Slide Nº 44

Objectos do Sistema

Objectos do Sistema

-

-

Exemplo

Exemplo

4. Preparar para apagar os

(23)

23

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 45Slide Nº 45

Objectos do Sistema

Objectos do Sistema

-

-

Exemplo

Exemplo

ƒ

ƒ

Execução do Programa

Execução do Programa

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 46Slide Nº 46

Objectos do Sistema

(24)

24

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 47Slide Nº 47

Objectos do Sistema

Objectos do Sistema

-

-

Exemplo

Exemplo

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 48Slide Nº 48

Objectos do Sistema

Objectos do Sistema

-

-

Exemplo

Exemplo

ƒ

(25)

25

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 49Slide Nº 49

Objectos do Sistema

Objectos do Sistema

ƒ

ƒ

Objectos do “Layer

Objectos do “

Layer” de sistema

” de sistema

ƒ

ƒ

Comunica-

Comunica

-se com o objecto

se com o objecto

OVirtualRobotComm.Sensor

OVirtualRobotComm.Sensor

ƒ

ƒ

Para implementar isto o nosso programa é

Para implementar isto o nosso programa é

um

um Observer

Observer

e OVirtualRobotComm.Sensor

e

OVirtualRobotComm.Sensor

é um

é um Subject

Subject

ƒ

ƒ

Estrutura de dados para Input

Estrutura de dados para

Input

dos sensores

dos sensores

é

é OSensorFrameVectorData

OSensorFrameVectorData

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 50Slide Nº 50

OSensorFrameVectorData

OSensorFrameVectorData

ƒ

ƒ

Os valores de dados (chamados “frames

Os valores de dados (chamados “

frames”)

”)

dos sensores são guardados aqui

dos sensores são guardados aqui

ƒ

ƒ

Guarda vários valores de vários sensores

Guarda vários valores de vários sensores

ƒ

ƒ

Método GetData(

Método

GetData() permite aceder a uma

) permite aceder a uma

(26)

26

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 51Slide Nº 51

OSensorValue

OSensorValue

ƒ

ƒ

Estrutura de dados genérica para uma “

Estrutura de dados genérica para uma “

frame

frame

ƒ

ƒ

Contido no interior de

Contido no interior de

OSensorFrameData

OSensorFrameData

ƒ

ƒ

Deve ser “

Deve ser “

tipado

tipado

” para um tipo apropriado

” para um tipo apropriado

ƒ

ƒ

Exemplo: Para valores das juntas deve ser

Exemplo: Para valores das juntas deve ser

tipado

tipado

” par

” par

OJointValue

OJointValue

ƒ

ƒ

Exemplo:

Exemplo:

OForce

OForce

para valores de pressão

para valores de pressão

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 52Slide Nº 52

Sensores

Sensores -

-

Utilização

Utilização

ƒ

ƒ

Obter dados dos sensores é idêntico a

Obter dados dos sensores é idêntico a

comunicar com outros objectos:

comunicar com outros objectos:

1.

1.

Seleccionar Sensores a Ler

Seleccionar Sensores a Ler

2.

2.

Enviar ASSERT_READY a

Enviar ASSERT_READY a

OVirtualRobotComm.Sensor

OVirtualRobotComm.Sensor

3.

3.

Obter

Obter

OSensorFrameVectorData

OSensorFrameVectorData

de

de

OVirtualRobotComm.Sensor

OVirtualRobotComm.Sensor

4.

4.

Utilizar os métodos em

Utilizar os métodos em

OSensorFrameVectorData

OSensorFrameVectorData

para obter os

para obter os

OSensorValue

OSensorValue

5.

5.

Tipar

Tipar

” os

” os

OSensorValue

OSensorValue

para o tipo apropriado a

para o tipo apropriado a

cada sensor

(27)

27

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 53Slide Nº 53

Movimentação das Juntas

Movimentação das Juntas

ƒ

ƒ

Objecto que recebe os comando chama-

Objecto que recebe os comando chama

-se

se

OVirtualRobotComm.Effector

OVirtualRobotComm.Effector

ƒ

ƒ

Tipo de dados é OCommandVectorData

Tipo de dados é

OCommandVectorData

Pode conter múltiplos comandos

Pode conter múltiplos comandos

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 54Slide Nº 54

OCommandInfo

OCommandInfo

ƒ

(28)

28

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 55Slide Nº 55

Estrutura da Apresentação

Estrutura da Apresentação

ƒ

ƒ

Introdução à Programação em OPEN-

Introdução à Programação em OPEN

-R SDK

R SDK

ƒ

ƒ

Comunicação entre Objectos

Comunicação entre Objectos

ƒ

ƒ

Comunicação com os Objectos do Sistema

Comunicação com os Objectos do Sistema

ƒ

ƒ

Utilização da Câmara

Utilização da Câmara

ƒ

ƒ

Combinação de Objectos

Combinação de Objectos

ƒ

ƒ

Conclusões

Conclusões

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 56Slide Nº 56

Visão do AIBO

Visão do AIBO

Exemplo 1

Exemplo 1

ƒ

ƒ

Analisar imagem da câmara do AIBO

Analisar imagem da câmara do AIBO

ƒ

ƒ

O

O

Sample

Sample

Image

Image

Observer

Observer

Tipos de Imagem

Tipos de Imagem

ƒ

ƒ

Comunicação entre objectos com imagem

Comunicação entre objectos com imagem

ƒ

ƒ

Retirar a Imagem de

Retirar a Imagem de

OVirtualRobotComm

OVirtualRobotComm

Abrir o Sensor de Imagem (Câmara) e retirar o

Abrir o Sensor de Imagem (Câmara) e retirar o

primitive

primitive

ID (em

ID (em

DoInit

DoInit

)

)

Construir uma tabela de detecção de cor (em

Construir uma tabela de detecção de cor (em

DoInit

DoInit

)

)

Parar a recepção de imagem (em

Parar a recepção de imagem (em

DoStop

DoStop

)

)

ƒ

ƒ

Receber dados em event.Data(0) e fazer

Receber dados em event.Data(0) e fazer

AssertReady(

(29)

29

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 57Slide Nº 57

Visão do AIBO

Visão do AIBO

Exemplo 1

Exemplo 1

Retirar Dados da Câmara

Retirar Dados da Câmara

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 58Slide Nº 58

Visão do AIBO

Visão do AIBO

Exemplo 1

Exemplo 1

Tipos de Imagem

Tipos de Imagem

(30)

30

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 59Slide Nº 59

Visão do AIBO

Visão do AIBO

Exemplo 1

Exemplo 1

Comunicação entre Objectos

Comunicação entre Objectos

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 60Slide Nº 60

Visão do AIBO

Visão do AIBO

Exemplo 1

Exemplo 1

Estrutura Geral da Captura de Imagem

Estrutura Geral da Captura de Imagem

(31)

31

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 61Slide Nº 61

Visão do AIBO

Visão do AIBO

Exemplo 1

Exemplo 1

Abrir o Sensor de Imagem e retirar “

Abrir o Sensor de Imagem e retirar “Primitive

Primitive

ID”

ID”

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 62Slide Nº 62

Visão do AIBO

Visão do AIBO

Exemplo 1

Exemplo 1

Tabela de Detecção (“

(32)

32

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 63Slide Nº 63

Visão do AIBO

Visão do AIBO

Exemplo 1

Exemplo 1

Tabela de Detecção (“

Tabela de Detecção (“Pink

Pink

”)

”)

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 64Slide Nº 64

Visão do AIBO

Visão do AIBO

Exemplo 1

Exemplo 1

Construção da Secção

Construção da Secção

DoInit

DoInit

ƒ

(33)

33

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 65Slide Nº 65

Visão do AIBO

Visão do AIBO

Exemplo 1

Exemplo 1

Construção da Secção

Construção da Secção DoStop

DoStop

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 66Slide Nº 66

Visão do AIBO

Visão do AIBO

Exemplo 1

Exemplo 1

Recepção dos Dados

Recepção dos Dados

ƒ

ƒ

Receber Dados: event.Data[0]

Receber Dados: event.Data[0]

ƒ

(34)

34

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 67Slide Nº 67

Visão do AIBO

Visão do AIBO

Exemplo 1

Exemplo 1

Sumário

Sumário

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 68Slide Nº 68

Visão do AIBO

Visão do AIBO

RGB

(35)

35

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 69Slide Nº 69

Visão do AIBO

Visão do AIBO

A Tabela de Detecção de Cores

A Tabela de Detecção de Cores

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 70Slide Nº 70

Visão do AIBO

Visão do AIBO

Exemplo 2

Exemplo 2

Gravação de Imagens em

(36)

36

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 71Slide Nº 71

Visão do AIBO

Visão do AIBO

Exemplo 2

Exemplo 2

Gravação de Imagens em

Gravação de Imagens em Bitmap

Bitmap

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 72Slide Nº 72

Visão do AIBO

Visão do AIBO

Exemplo 2

Exemplo 2

Conversão de

(37)

37

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 73Slide Nº 73

Visão do AIBO

Visão do AIBO

Exemplo 2

Exemplo 2

Utilização dos Dados da Detecção

Utilização dos Dados da Detecção –

Layer

Layer

C

C

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 74Slide Nº 74

Visão do AIBO

Visão do AIBO

Exemplo 2

Exemplo 2

Introdução do Tempo, Data e

(38)

38

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 75Slide Nº 75

Visão do AIBO

Visão do AIBO

Exemplo 2

Exemplo 2

Gravação de Imagens

Gravação de Imagens Raw

Raw

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 76Slide Nº 76

Visão do AIBO

Visão do AIBO

Exemplo 2

Exemplo 2

Sumário

Sumário

(39)

39

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 77Slide Nº 77

Estrutura da Apresentação

Estrutura da Apresentação

ƒ

ƒ

Introdução à Programação em OPEN-

Introdução à Programação em OPEN

-R SDK

R SDK

ƒ

ƒ

Comunicação entre Objectos

Comunicação entre Objectos

ƒ

ƒ

Comunicação com os Objectos do Sistema

Comunicação com os Objectos do Sistema

ƒ

ƒ

Utilização da Câmara

Utilização da Câmara

ƒ

ƒ

Combinação de Objectos

Combinação de Objectos

ƒ

ƒ

Conclusões

Conclusões

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 78Slide Nº 78

Combinação de Objectos

Combinação de Objectos

Programa de Captura de Imagem (PCI)

Programa de Captura de Imagem (PCI)

(40)

40

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 79Slide Nº 79

Combinação de Objectos

Combinação de Objectos

PCI

PCI –

Funções Desejadas

Funções Desejadas

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 80Slide Nº 80

Combinação de Objectos

Combinação de Objectos

PCI

(41)

41

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 81Slide Nº 81

Combinação de Objectos

Combinação de Objectos

PCI

PCI -

-

Ficheiros Necessários

Ficheiros Necessários

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 82Slide Nº 82

Combinação de Objectos

Combinação de Objectos

PCI

PCI –

Modificação da Makefile

Modificação da

Makefile

(MoNet

(

MoNet

)

)

Qualquer Makefile podia ser modificada mas esta exige apenas pequenas modificações

(42)

42

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 83Slide Nº 83

Combinação de Objectos

Combinação de Objectos

Construção do Ficheiro

Construção do Ficheiro

Connect.cfg

Connect.cfg

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 84Slide Nº 84

Combinação de Objectos

Combinação de Objectos

Construção do Ficheiro

(43)

43

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 85Slide Nº 85

Combinação de Objectos

Combinação de Objectos

PCI

PCI –

4 Funções Combinadas

4 Funções Combinadas

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 86Slide Nº 86

Combinação de Objectos

Combinação de Objectos

Sumário

Sumário

(44)

44

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 87Slide Nº 87

Combinação de Objectos

Combinação de Objectos

PCI

PCI –

Modificações dos Objectos

Modificações dos Objectos

ƒ

ƒ

Modificar MoNet

Modificar

MoNet:

:

DoStart

DoStart

: Robô coloca

: Robô coloca

-

-

se em pé

se em pé

Ready

Ready

: Robô permanece em pé

: Robô permanece em pé

ƒ

ƒ

Modificar Image

Modificar

Image

Observer:

Observer

:

Tirar fotografia quando o sensor do queixo é

Tirar fotografia quando o sensor do queixo é

pressionado

pressionado

Gravar todos os formatos de imagem e um BMP

Gravar todos os formatos de imagem e um BMP

do formato

do formato

Layer

Layer

H

H

Número dos ficheiros incrementado em sequência

Número dos ficheiros incrementado em sequência

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 88Slide Nº 88

Combinação de Objectos

Combinação de Objectos

PCI

(45)

45

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 89Slide Nº 89

Combinação de Objectos

Combinação de Objectos

PCI

PCI –

Modificações dos Objectos

Modificações dos Objectos

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 90Slide Nº 90

Combinação de Objectos

Combinação de Objectos

PCI

(46)

46

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 91Slide Nº 91

Combinação de Objectos

Combinação de Objectos

PCI

PCI –

Dados dos Sensores do Queixo e Trás

Dados dos Sensores do Queixo e Trás

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 92Slide Nº 92

Combinação de Objectos

Combinação de Objectos

PCI

(47)

47

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 93Slide Nº 93

Combinação de Objectos

Combinação de Objectos

PCI

PCI –

Dados dos Sensores do Queixo e Trás

Dados dos Sensores do Queixo e Trás

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 94Slide Nº 94

Combinação de Objectos

Combinação de Objectos

Quando um dos Sensores é Pressionado

Quando um dos Sensores é Pressionado

Tirar uma Fotografia

Tirar uma Fotografia

(48)

48

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 95Slide Nº 95

Combinação de Objectos

Combinação de Objectos

Verificar se um Ficheiro Existe

Verificar se um Ficheiro Existe

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 96Slide Nº 96

Combinação de Objectos

Combinação de Objectos

Gravar um Ficheiro

Gravar um Ficheiro

(49)

49

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 97Slide Nº 97

Combinação de Objectos

Combinação de Objectos

Sumário

Sumário

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 98Slide Nº 98

A Core

(50)

50

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº 99Slide Nº 99

Métodos Principais da Core

Métodos Principais da Core

Class

Class

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 100100

Outros Métodos da Core

(51)

51

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 101101

Macros dos Métodos “Do”

Macros dos Métodos “Do”

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 102102

Macros dos Métodos “Do”

Macros dos Métodos “Do”

(52)

52

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 103103

Passagem de Mensagens

Passagem de Mensagens

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 104104

Ficheiro

(53)

53

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 105105

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 106106

Escrever o Ficheiro .

Escrever o Ficheiro .

ocf

ocf

(54)

54

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 107107

Desenvolvimento de Programas

Desenvolvimento de Programas

1.

1.

Projectar quais os objectos e suas funções

Projectar quais os objectos e suas funções

2.

2.

Decidir as estruturas de dados para a

Decidir as estruturas de dados para a

comunicação inter

comunicação inter

-

-

objectos

objectos

3.

3.

Escrever o ficheiro

Escrever o ficheiro

stub.cfg

stub.cfg

4.

4.

Escrever a classe “core” com as funções membro

Escrever a classe “core” com as funções membro

necessárias

necessárias

5.

5.

Escrever o ficheiro

Escrever o ficheiro

connect.cfg

connect.cfg

e o ficheiro .

e o ficheiro .

ocf

ocf

6.

6.

Compilar e

Compilar e

Linkar

Linkar

7.

7.

Escrever os ficheiros

Escrever os ficheiros

object.cfg

object.cfg

e

e

designdb.cfg

designdb.cfg

8.

8.

Executar no AIBO

Executar no AIBO

9.

9.

Teste e

Teste e

Debug

Debug

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 108108

Estrutura da Apresentação

Estrutura da Apresentação

ƒ

ƒ

Introdução à Programação em OPEN-

Introdução à Programação em OPEN

-R SDK

R SDK

ƒ

ƒ

Comunicação entre Objectos

Comunicação entre Objectos

ƒ

ƒ

Comunicação com os Objectos do Sistema

Comunicação com os Objectos do Sistema

ƒ

ƒ

Utilização da Câmara

Utilização da Câmara

ƒ

ƒ

Combinação de Objectos

Combinação de Objectos

ƒ

(55)

55

LIACC

LIACC--FEUPFEUP Luís Paulo Reis / 2003Luís Paulo Reis / 2003 Slide Nº Slide Nº 109109

Conclusões

Conclusões

ƒ

ƒ

“Samples

Samples” do OPEN

” do OPEN-

-R SDK contêm:

R SDK contêm:

Leitura de todos os sensores

Leitura de todos os sensores

Utilização de todos Actuadores

Utilização de todos Actuadores

Comunicação

Comunicação

Wireless

Wireless

ƒ

ƒ

Analisar, Compilar, Experimentar e Alterar

Analisar, Compilar, Experimentar e Alterar

as “

as “Samples

Samples

” fornecidas

” fornecidas

ƒ

ƒ

Combinar “Samples

Combinar “

Samples” para criar novos

” para criar novos

programas

programas

Parte do Material Incluído nestes slides é copyright da Sony.

Referências

Documentos relacionados

Mas que essas críticas não abalam os valores culturais guarani que é o mais importante em tudo que se vive, seja isso na escola, na aldeia assim como na casa de

Este processo seletivo destina-se ao preenchimento da (s) vaga (s) constante (s) na TABELA I deste descritivo, podendo os candidatos aprovados, respeitando a

Resumo: O presente trabalho teve com objetivo avaliar a influência de diferentes alturas de corte sobre as características morfológicas e crescimento do capim

Proprietário: HARAS SANTA LUZIA DA ÁGUA BRANCA AGENTE: APPS FIRST AMERICAN USA - 1996 FORTUNE COOKIE BRZ - 1993 Quiet American In Jubilation Ghadeer Ma Belle Fappiano Demure Isgala

A torre interna possui, na sua parte interna inferior, um suporte plano fixado com solda MIG, fabricada em chapa de aço carbono com dimensões 36 X 115mm e com

Média e desvio padrão dos concluintes das questões discursivas no Componente de Formação Geral quanto a IES, UF, Grande Região, Categoria Administrativa, Organização Acadêmica

Qualidade e Políticas Públicas na Educação 3 Capítulo 13 116 INTERDISCIPLINARIDADE NA ESCOLA ATUAL: UMA EXPERIÊNCIA ENTRE GEOGRAFIA E EDUCAÇÃO FÍSICA NO ENSINO DA HISTÓRIA E

Também afirmou que, na ocasião, ao se pronunciar sobre norma da FCC que definia essa atividade como serviços de informação e não como serviços