50
Math.IA Curso basAR Christopher Shneider Cerqueira – [email protected] Claudio Kirner – [email protected] https://sites.google.com/site/christophercerqueira/projetos/ear/basar http://www.ckirner.com/basar 1

Curso basAR e Funções

Embed Size (px)

Citation preview

Page 1: Curso basAR e Funções

Math.IA Curso basAR

Christopher Shneider Cerqueira – [email protected]

Claudio Kirner – [email protected]

https://sites.google.com/site/christophercerqueira/projetos/ear/basar http://www.ckirner.com/basar

1

Page 2: Curso basAR e Funções

Requisitos

• Windows

• basAR – Download:

• https://sites.google.com/site/christophercerqueira/projetos/ear/basar

• http://www.ckirner.com/basar

• Alguns modelos 3D em VRML

• Editor de texto simples, como o Bloco de Notas.

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

2

Page 3: Curso basAR e Funções

Roteiro

• Introdução: Metas

• basAR

• Criando infraestrutura, estrutura e conteúdo

• Criando comportamento com controle matemático. – Conceitos:

• Mudança de estado

• Lógicas de controle.

– Comandos

– Atividade

3

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 4: Curso basAR e Funções

Introdução

• Criar um cenário de Realidade Aumentada. – Dois pontos de seleção e um ponto de exibição

• Utilizar o software basAR.

• Entender a construção do cenário.

• Entender os conceitos de mudança de estado e mudança de atributos

4

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 5: Curso basAR e Funções

basAR

5

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 6: Curso basAR e Funções

basAR: Behavioral Authoring System for Augmented Reality

• Meta-ferramenta de autoria de ambientes inteligentes de realidade aumentada .

– Estrutura de comportamento baseada em pontos de ação

– Cross-Reality

• COMPORTAMENTO DINÂMICO entre PONTOS DE AÇÃO

Comportamento

Pontos de ação

Hardware Externo

basAR

6

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 7: Curso basAR e Funções

• Infraestrutura: especificar a área de trabalho (workspace) da aplicação

• Estrutura: os posicionamentos dos pontos de ação sobre a infraestrutura.

• Contexto: modelos, sons e outros objetos definidos na estrutura.

• Atuação: método de interação com a estrutura.

• Comportamento: regras de interação entre os atuadores e a estrutura.

Aplicação em camadas

7

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 8: Curso basAR e Funções

Hierarquia de objetos

basAR

Behavior

Base

Actuator

point1 ... pointK

app_pointM1

m1.dat

m1.wrl

...

...

...

Feedback

Feedback

Feedback

Click1.mp3

Error.mp3

Turn real motor ON

...

app_pointK

m1.dat

m1.wrl

m2.dat

M2.wrl

8

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 9: Curso basAR e Funções

Hierarquia de arquivos config_basAR

config_behavior

config_base

config_actuator

app_pointM1

m1.dat

m1.wrl

app_arduino app_pointK

m1.dat

m1.wrl

m2.dat

M2.wrl

9

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 10: Curso basAR e Funções

INFRAESTRUTURA, ESTRUTURA, CONTEÚDO E ATUAÇÃO

Criando

10

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 11: Curso basAR e Funções

Sistema config_basAR

config_behavior

config_base

config_actuator

app_pointM1

m1.dat

m1.wrl

app_arduino app_pointK

m1.dat

m1.wrl

m2.dat

M2.wrl

11

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 12: Curso basAR e Funções

• Configura:

– a primeira interligação dos objetos;

– modo de exibição da janela;

– objetos padrões.

• Arquivo:

{basAR}/Data/config_basAR

Sistema

12

#config_basAR basAR

WINDOWED VRML wrl/action/ballBlue.dat VRML Wrl/Action/ballGreen.dat VRML Wrl/Action/ballRED.dat VRML Wrl/action/tampa.dat Audio/explosion.wav 0.5 Audio/backTrack.mp3 LOOP 0.3 Audio/bell.wav ONCE 0.5 Data/config_behavior # Rule Machine # Bases 1 Data/config_base1 # Actuators 1 ARTKSM Data/config_transport

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 13: Curso basAR e Funções

Infraestrutura config_basAR

config_behavior

config_base

config_actuator

app_pointM1

m1.dat

m1.wrl

app_arduino app_pointK

m1.dat

m1.wrl

m2.dat

M2.wrl

13

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 14: Curso basAR e Funções

• correlação entre o mundo real e o mundo virtual

• Definição de base

• Arquivo:

{basAR}/Data/config_base

Infraestrutura

#config_base1 # This file contains the setup for a workspace BASE1 # Single ARToolKit Marker configuration ARTKSM Data/Markers/base.patt 53.0 0.0 0.0 USE_DEFAULT # Workspace Sounds Audio/bell.wav ONCE 0.5 # Visible Sound Audio/explosion.wav 0.5 # Error sound wrl/action/status.dat

14

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 15: Curso basAR e Funções

Estrutura config_basAR

config_behavior

config_base

config_actuator

app_pointM1

m1.dat

m1.wrl

app_arduino app_pointK

m1.dat

m1.wrl

m2.dat

M2.wrl

15

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 16: Curso basAR e Funções

• Pontos do espaço virtual com esferas de ação, modelos associados e comportamento.

• Localização, orientação e escala dos objetos virtuais.

• Arquivo:

{basAR}/Data/config_base

… Pen # Point Name DEFAULT_IPOINT # Action Model File Data/app_pen # OBJECT Model File 20.0 20.0 0.0 # Translation 0.0 0.0 0.0 # Rotation 1.0 1.0 1.0 # Scale 900.0 # Action radius

Estrutura

16

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 17: Curso basAR e Funções

Exemplo com 3 pontos

3

Ponto1

DEFAULT_IPOINT

NO_OBJECT

100.0 100.0 25.0

0.0 0.0 0.0

1.0 1.0 1.0

300.0

Ponto2

DEFAULT_IPOINT

NO_OBJECT

100.0 -100.0 25.0

0.0 0.0 0.0

1.0 1.0 1.0

300.0

pontoVisual

DEFAULT_IPOINT

Data/App/app_obj

100.0 0.0 25.0

0.0 0.0 0.0

1.0 1.0 1.0

0

{basAR}/Data/config_base 17

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 18: Curso basAR e Funções

Arquivo config_base completo _p1

BASE1 ARTKSM Data/Markers/base.patt 53.0 0.0 0.0 USE_DEFAULT Audio/bell.wav ONCE 0.5 Audio/explosion.wav 0.5 wrl/action/status.dat

3 Ponto1 DEFAULT_IPOINT NO_OBJECT 100.0 100.0 25.0 0.0 0.0 0.0 1.0 1.0 1.0 300.0

18

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 19: Curso basAR e Funções

Arquivo config_base completo _p2

Ponto2

DEFAULT_IPOINT

NO_OBJECT

100.0 -100.0 25.0

0.0 0.0 0.0

1.0 1.0 1.0

300.0

pontoVisual

DEFAULT_IPOINT

Data/App/app_obj

100.0 0.0 25.0

0.0 0.0 0.0

1.0 1.0 1.0

0

19

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 20: Curso basAR e Funções

Conteúdo config_basAR

config_behavior

config_base

config_actuator

app_pointM1

m1.dat

m1.wrl

app_arduino app_pointK

m1.dat

m1.wrl

m2.dat

M2.wrl

20

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 21: Curso basAR e Funções

• objetos 3D e áudios que são utilizados.

• Arquivos:

{basAR}/Data/App/app_obj

{basAR}/Wrl/quad.dat

{basAR}/Wrl/triang.dat

{basAR}/Wrl/quad.wrl

{basAR}/Wrl/triang.wrl

#app_obj 2 # Number of objects MODEL3D VRML Wrl/quad.dat MODEL3D VRML Wrl/triang.dat

Conteúdo

#quad.dat quad.wrl 0 0 0 0 90 0 0 0 0

21

# triang.dat triang.wrl 0 0 0 0 90 0 0 0 0

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 22: Curso basAR e Funções

Atuação config_basAR

config_behavior

config_base

config_actuator

app_pointM1

m1.dat

m1.wrl

app_arduino app_pointK

m1.dat

m1.wrl

m2.dat

M2.wrl

22

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 23: Curso basAR e Funções

• Interação do usuário com o sistema

#config_tranport ARTKSM1 # Single ARToolKit Marker configuration Data/Markers/shovell.patt # Marker 37.0 # Width(mm) 0.0 0.0 # Central USE_DEFAULT # Marker cover VRML wrl/Action/ssd.dat # Symbolic

model # Collision point DEFAULT_IPOINT # Point model 20.0 0.0 0.0 # Translation (x,y,z) (mm) 400.0 # Action radius of the point

Atuação

23

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 24: Curso basAR e Funções

COMPORTAMENTO DE CLICKS Criando

24

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 25: Curso basAR e Funções

Comportamento?

• Controle do feedback do sistema ao receber estimulo do usuário.

• Baseado em máquina de estados (grafo de cena).

• Ações Comandos

• Estados Blocos de comandos

25

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 26: Curso basAR e Funções

Exemplo de estado

• Inicia estado

• Ponto 1 estático, exibe tudo

• Ponto 1 estático, exibe tudo

• Ponto 1 estático, exibe tudo

• Finaliza estado

• Outros comandos vide manual do basAR!

BEGIN_STATE 1

1 STAT BOTH

2 STAT BOTH

3 STAT BOTH

END_STATE

26

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 27: Curso basAR e Funções

O que é click?

• Seleção Ação Liberação

• Selecionar um ponto onde a ação é alterar o fluxo de execução para outro estado, onde as ações e atributos dos pontos podem ser alterados.

27

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 28: Curso basAR e Funções

Mapa de atitudes:

• Clicando um ponto

– Configuração do sistema • Modelos do ponto

• Posicionamento do ponto

– Animações simuladas

• Matrizes de posicionamento

28

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/ Collision between actuator

and action point

Move action

point

System

ControlledUser controlled

Release point

Test relseaseAttract point

Repels point

Reactive zone: collision of the moving point with others

action points

Se

lec

tio

nM

an

ipu

lati

on

Re

lea

se

Point selected

If selectable

Configure

System

Release point

Page 29: Curso basAR e Funções

Mudança de estado

• A mudança de estado pode ser realizada pelo sucesso dos comandos de movimentação (Vide tutorial sobre movimentação) ou utilizando um ponto com uma ação de mudança de estado.

• Com o click do atuador no ponto de mudança de estado é possível mudar os atributos e reconfigurar a atitude e exibição do ambiente.

29

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 30: Curso basAR e Funções

Tipos de estados

Estado de trabalho

• Este tipo de estado espera uma ação ser completada para que ocorra mudança de estado

BEGIN_STATE 4

1 ...

2 ...

END_STATE

Estado de configuração

• Este tipo de estado, após aplicar as alterações de comportamento, altera automaticamente o estado.

BEGIN_STATE 4

1 ...

2 ...

END_STATE GO_TO 5

30

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 31: Curso basAR e Funções

Comando que habilita mudança de estado

• Mudar estado (Change State)

– CHGST

• 1 CHGST ONLY_OBJECT 4

31

Point ID CHGST Audio OverplayNextStateShowMode

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 32: Curso basAR e Funções

Funções de controle matemáticas

• Permitem a construção de lógicas para auxiliar no controle do fluxo do programa.

• Permitem loops (For, while, do-while)

• Permitem colocar peso nos nós ( Inteligência Artificial)

32

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 33: Curso basAR e Funções

Variáveis por ponto

33

A B

Subsistema de comandos

matemáticas

• Cada ponto tem uma variável A e B.

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 34: Curso basAR e Funções

Comandos entre as variáveis

• Carregar Valor:

• Adicionar valor

• Subtrair entre variaveis

• Swap

• Inverter sinal

• Multiplicar

• Comparar

34

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 35: Curso basAR e Funções

Comandos de carregar valor

• Carregar valor na variável A. A <= Value

– LOADA

– 1 LOADA 25.5

• Carregar valor na variável B. B<= Value

– LOADB

– 1 LOADB 30

35

Point ID LOADA Value

Point ID LOADB Value

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 36: Curso basAR e Funções

Comandos para adicionar valor

• Somar valor em A. A <= A + Value

– ADDA

– 1 ADDA 15

• Somar valor em B. B <= B + Value

– ADDB

– 1 ADDB 35 36

Point ID ADDB Value

Point ID ADDA Value

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 37: Curso basAR e Funções

Comandos para subtrair entre variáveis

• Subtrair B de A. A <= A - B

– AMB

– 1 AMB

• Subtrair A de B B <= B - A

– BMA

– 1 BMA 37

Point ID AMB

Point ID BMA

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 38: Curso basAR e Funções

Comandos para inverter sinal

• Inverte o sinal de A. A <= - A

– NEGA

– 1 NEGA

• Inverte o sinal de B. B <= -B

– NEGB

– 1 NEGB 38

Point ID NEGB

Point ID NEGA

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 39: Curso basAR e Funções

Comandos para multiplicar valor

• Multiplica valor em A. A <= A * Valor

– MULA

– 1 MULA 5

• Multiplica valor em B. B <= B * Valor

– MULB

– 1 MULB 3 39

Point ID MULB Value

Point ID MULA Value

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 40: Curso basAR e Funções

Comando de troca entre variáveis

• Trocar variáveis. A <= B e B <= A

– SWAB

– 1 SWAB

40

Point ID SWAB

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 41: Curso basAR e Funções

Comandos de comparação

• Compara A com B. Com condições. Se comparação é válida muda de estado.

– A > B ( GREATER)

– A < B ( LESSER)

– A = B (EQUALS)

– CMP

– 1 CMP LESSER 7

41

Point ID CMP TYPE NextState

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 42: Curso basAR e Funções

Comandos de comparação

• Compara A com Value. Com condições. Se comparação é válida muda de estado.

– A > Value ( GREATER)

– A < Value ( LESSER)

– A = Value (EQUALS)

– CMP

– 1 CMP 35.5 LESSER 7

42

Point ID CMPV TYPE NextStateValue

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 43: Curso basAR e Funções

Comportamento config_basAR

config_behavior

config_base

config_actuator

app_pointM1

m1.dat

m1.wrl

app_arduino app_pointK

m1.dat

m1.wrl

m2.dat

M2.wrl

43

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 44: Curso basAR e Funções

Exemplo de Loop

• Exemplo 1. Criar loop para contar Clicks.

• Arquivo de comportamento:

{basAR}/Data/config_behavior

• Clicando em qualquer ponto soma contador e quando houver um total de 6 clicks para a aplicação

44

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 45: Curso basAR e Funções

Flu

xogr

ama

45

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 46: Curso basAR e Funções

Arquivo de Comportamento BEGIN_STATE 1

1 CHGST ONLY_BALL 2

2 CHGST ONLY_BALL 3

3 CHGST ONLY_BALL 4

END_STATE

BEGIN_STATE 2

1 STAT ONLY_BALL

END_STATE GO_TO 5 AFTER 1

BEGIN_STATE 3

2 STAT ONLY_BALL

END_STATE GO_TO 5 AFTER 1

BEGIN_STATE 4

3 STAT ONLY_BALL

END_STATE GO_TO 5 AFTER 1

BEGIN_STATE 5

1 ADDA 1

END_STATE GO_TO 6

BEGIN_STATE 6

1 CMPV 6 EQUALS 7

END_STATE GO_TO 1

BEGIN_STATE 7

1 STAT ONLY_BALL

1 STAT ONLY_BALL

1 STAT ONLY_BALL

END_STATE

46

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 47: Curso basAR e Funções

RESUMO

47

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 48: Curso basAR e Funções

Resumo comandos utilizados

– STAT: [PointID] STAT [ShowMode] <AUDIO> <OVER?>

– CHGST: [PointID] CHGST [ShowMode] [NextState] <AUDIO> <OVER?>

– LOADA: [PointID] LOADA [Value]

– LOADB: [PointID] LOADB [Value

–ADDA: [PointID] ADDA [Value]

–ADDB: [PointID] ADDB [Value]

–AMB: [PointID] AMB

–BMA: [PointID] BMA

–NEGA: [PointID] NEGA

–NEGB: [PointID] NEGB

–MULA: [PointID] MULA [Value]

–MULB: [PointID] MULB [Value]

– CMP: [PointID] CMP [GREATER/LESSER/EQUALS] [NEXTSTATE]

– CMPV: [PointID] CMPV [Value] [GREATER/LESSER/EQUALS] [NEXTSTATE] 48

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 49: Curso basAR e Funções

Ajuda online

• Videos exemplificando cada comportamento disponível e os arquivos utilizados neste tutorial estão disponíveis em:

https://sites.google.com/site/christophercerqueira/projetos/ear/basar/cursos

49

basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 50: Curso basAR e Funções

Math.IA Curso basAR

Christopher Shneider Cerqueira – [email protected]

Claudio Kirner – [email protected]

https://sites.google.com/site/christophercerqueira/projetos/ear/basar http://www.ckirner.com/basar

50