Math.IA
Curso basAR
Christopher Shneider Cerqueira – christophercerqueira@gmail.com
Claudio Kirner – ckirner@gmail.com
https://sites.google.com/site/christophercerqueira/projetos/ear/basar
http://www.ckirner.com/basar
1
Requisitos
• Windows
• basAR
– Download:
• https://sites.google.com/site/christophercerqueira/proj
etos/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
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/
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/
basAR
5
basAR: Math.IA
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
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/
• 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/
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/
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/
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/
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/
• 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/
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/
• 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/
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/
• 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/
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/
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/
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/
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/
• 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/
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/
• 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/
COMPORTAMENTO DE CLICKS
Criando
24
basAR: Math.IA
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
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/
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/
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/
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
Controlled
User controlled
Release point
Test relseaseAttract point
Repels point
Reactive zone: collision of the moving point with others
action points
SelectionManipulationRelease
Point selected
If selectable
Configure
System
Release point
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/
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/
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/
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/
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/
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/
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/
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/
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/
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/
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/
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/
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/
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/
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/
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/
Fluxograma
45
basAR: Math.IA
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
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/
RESUMO
47
basAR: Math.IA
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
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/
Ajuda online
• Videos exemplificando cada comportamento
disponível e os arquivos utilizados neste
tutorial estão disponíveis em:
https://sites.google.com/site/christophercerquei
ra/projetos/ear/basar/cursos
49
basAR: Math.IA
sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
Math.IA
Curso basAR
Christopher Shneider Cerqueira – christophercerqueira@gmail.com
Claudio Kirner – ckirner@gmail.com
https://sites.google.com/site/christophercerqueira/projetos/ear/basar
http://www.ckirner.com/basar
50

Curso basAR e Funções

  • 1.
    Math.IA Curso basAR Christopher ShneiderCerqueira – christophercerqueira@gmail.com Claudio Kirner – ckirner@gmail.com https://sites.google.com/site/christophercerqueira/projetos/ear/basar http://www.ckirner.com/basar 1
  • 2.
    Requisitos • Windows • basAR –Download: • https://sites.google.com/site/christophercerqueira/proj etos/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
  • 3.
    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/
  • 4.
    Introdução • Criar umcená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/
  • 5.
  • 6.
    basAR: Behavioral AuthoringSystem 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/
  • 7.
    • Infraestrutura: especificara á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/
  • 8.
    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/
  • 9.
    Hierarquia de arquivos config_basAR config_behavior config_base config_actuator app_pointM1 m1.dat m1.wrl app_arduinoapp_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/
  • 10.
    INFRAESTRUTURA, ESTRUTURA, CONTEÚDO EATUAÇÃO Criando 10 basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 11.
  • 12.
    • Configura: – aprimeira 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/
  • 13.
  • 14.
    • correlação entreo 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/
  • 15.
  • 16.
    • Pontos doespaç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/
  • 17.
    Exemplo com 3pontos … 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/
  • 18.
    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/
  • 19.
    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/
  • 20.
  • 21.
    • objetos 3De á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/
  • 22.
  • 23.
    • Interação dousuá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/
  • 24.
    COMPORTAMENTO DE CLICKS Criando 24 basAR:Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 25.
    Comportamento? • Controle dofeedback 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/
  • 26.
    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/
  • 27.
    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/
  • 28.
    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 Controlled User controlled Release point Test relseaseAttract point Repels point Reactive zone: collision of the moving point with others action points SelectionManipulationRelease Point selected If selectable Configure System Release point
  • 29.
    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/
  • 30.
    Tipos de estados Estadode 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/
  • 31.
    Comando que habilitamudanç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/
  • 32.
    Funções de controlematemá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/
  • 33.
    Variáveis por ponto 33 AB 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/
  • 34.
    Comandos entre asvariá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/
  • 35.
    Comandos de carregarvalor • 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/
  • 36.
    Comandos para adicionarvalor • 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/
  • 37.
    Comandos para subtrairentre 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/
  • 38.
    Comandos para invertersinal • 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/
  • 39.
    Comandos para multiplicarvalor • 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/
  • 40.
    Comando de trocaentre 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/
  • 41.
    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/
  • 42.
    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/
  • 43.
  • 44.
    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/
  • 45.
  • 46.
    Arquivo de Comportamento BEGIN_STATE1 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/
  • 47.
  • 48.
    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/
  • 49.
    Ajuda online • Videosexemplificando cada comportamento disponível e os arquivos utilizados neste tutorial estão disponíveis em: https://sites.google.com/site/christophercerquei ra/projetos/ear/basar/cursos 49 basAR: Math.IA sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/
  • 50.
    Math.IA Curso basAR Christopher ShneiderCerqueira – christophercerqueira@gmail.com Claudio Kirner – ckirner@gmail.com https://sites.google.com/site/christophercerqueira/projetos/ear/basar http://www.ckirner.com/basar 50