Controlo de Agentes Computacionais Reactivos ao Contexto: Aplicação à Ginástica do Trabalho Marco Cardoso Fac. de Ciências — U.P.
2008
Marco Cardoso (Fac. de Ciências — U.P.)
2008
1 / 25
1
Estado da arte Contextualização teórica Tecnologias computacionais
2
Especificação do sistema Arquitectura do sistema Modelação de agentes computacionais Reactividade ao contexto
3
Arquitectura e detalhes de implementação Modelo de classes Funcionalidades da interface gráfica (GUI)
4
Validação experimental Protocolo experimental Heurística 2
5
Conclusões
Marco Cardoso (Fac. de Ciências — U.P.)
2008
2 / 25
Estado da arte
Contextualização teórica
A actividade física e os benefícios para a saúde do trabalhador Problemas: Redução da utilização das potencialidades corporais. Alterações no sistema produtivo −→ automatização + mecanização.
Consequências: Aumento de distúrbios físicos e psicológicos.
Actividade física e saúde
Benefícios ao nível:
- Antropométrico; - Neuromuscular; - Metabólico; - Psicológico.
Redução da taxa de mortalidade e morbilidade ;
Redução do risco de desenvolvimento de:
- Doenças cardiovasculares; - Hipertensão; - Osteoporose; - Diabetes; - Doenças respiratórias; - Cancro; - Obesidade;
Influencia a reabilitação de determinadas patologias;
Marco Cardoso (Fac. de Ciências — U.P.)
2008
3 / 25
Estado da arte
Contextualização teórica
Ginástica do Trabalho
Exercício físico em contexto de trabalho em intervalos diários de 5 a 10 minutos. Grupos de risco → Utilizadores do computador
Benefícios Indivíduo Combate e prevenção das L.E.R. e das D.O.R.T., sedentarismo, stress, ansiedade e depressão; Melhoria da coordenação, força, agilidade, flexibilidade e resistência.
Entidade empregadora Redução de despesas por ausência do trabalhador; Diminuição de acidentes/lesões; Melhoria da imagem; Aumento da produtividade e qualidade.
Marco Cardoso (Fac. de Ciências — U.P.)
Adopção de posturas contraídas e pouco naturais; Reduzida necessidade de movimentos; Ergonomia dos equipamentos informáticos.
Exemplos em Portugal Secretaria Regional dos Assuntos Sociais, em Angra do Heroísmo - Açores; Pioneer Technology - Portugal; Câmara Municipal de Sintra.
2008
4 / 25
Estado da arte
Contextualização teórica
Software Educativo Finalidades Construção do conhecimento relativo a um conteúdo/área didáctica.
Potencialidades
(1)
Tutoriais
(7)
(2)
Jogos
Programação
Contextos mais enriquecedores - teorias de aprendizagem construtivistas;
Categorais de Software Educativo
(6)
Desenvolvimento de planos individuais com base em habilidades, conhecimentos e interesses; Criação de ambientes computacionais de aprendizagem mais dinâmicos e abertos.
Marco Cardoso (Fac. de Ciências — U.P.)
Simulação e modelagem
(3)
Aplicativos
5)
Multimédia e Internet
(4)
Exercícios e práticas
2008
5 / 25
Estado da arte
Contextualização teórica
Software educativo e Ginástica do Trabalho e Tai Chi Workrave
RSIGuard
OffFit 2.1
Tai Chi 3D
Marco Cardoso (Fac. de Ciências — U.P.)
2008
6 / 25
Estado da arte
Tecnologias computacionais
Modelação e animação de agentes computacionais Métodos de modelação Zeltzer → linguagem para descrição das articulações e segmentos do corpo humano relacionados; Boulic → Hierarchy 3D → esquema de hierarquia para modelos humanos articulados; Unuma et al → método para criar animações humanas baseadas em emoções; Wilhelms → método de modelação de qualquer animal que possua um endoesqueleto articulado; Soluções aplicacionais de modelação 3D (Maya, Blender, etc).
Modelos cinemáticos
Cinemática directa
Alteração da configuração de cada uma das juntas desde o ombro até ao pulso até à posição pretendida para o agente. Marco Cardoso (Fac. de Ciências — U.P.)
Cinemática inversa
Especificação da posição final do pé; O algoritmo de cinemática inversa determina a posição de cada um dos elos ao longo da animação. 2008
7 / 25
Estado da arte
Tecnologias computacionais
Visão computacional - Aproximações ao Motion Capture Métodos de detecção passiva
Métodos de detecção activa
(1)
Pré-processamento da imagem
Imagem (1)
Câmara-de-vídeo Identificação de pontos de referência
Componentes (x,y,z) dos pontos de referência
(2)
Funcionalidades do GUI
GUI Cãmara-de-vídeo/Sensor
Identificação (3) da posição e orientação dos elos/membros
Identificação (4) da configuração do utilizador
(2)
Identificação da configuração do utilizador
(5)
Modelo articulado do utilizador
Rendering/ Visualização TXT/XML
(8)
Configuração do agente
Motor da animação (1)
(3)
(2)
Importação/ Exportação
(9)
Cinemática inversa
(3)
(5)
Base-dados de (5) personagem e da Motor animação animação
Estrutura e geometria do personagem
(3)
(6)
Configuração do agente
(1)
Cinemática inversa
(6)
(7)
Comparador de configuração
Ajuste de velocidade
(4)
Comparador de configuração
Computação do fluxo da câmara
Marco Cardoso (Fac. de Ciências — U.P.)
(6)
Ajuste de velocidade
Imagem / stream video
2008
(6)
8 / 25
Especificação do sistema
Arquitectura do sistema
Arquitectura do sistema Funcionalidades da interface gráfica
GUI
Rendering/ Visualização TXT/XML
(3)
(2)
Importação/ Exportação
(5)
Base-dados do agente e animação
Estrutura e geometria do agente
(3)
Câmara-de-vídeo
(1)
Computação do fluxo do agente
(7)
(4)
Configuração do agente
Motor da animação
(1)
(1)
Comparador de fluxos Computação do fluxo de imagem
(6)
Marco Cardoso (Fac. de Ciências — U.P.)
(8)
Ajuste de velocidade
Imagem / stream vídeo
(9)
2008
9 / 25
Especificação do sistema
Modelação de agentes computacionais
Modelos 3D
Y
Ag ≡ ({link(li , . . .)}, {joint(i, j, θi ; ji , . . .)}), i
vectu y
----
----
-----
--
-----------------
i
-
i
vectu x
-----
---
---
vectu z
elo i
-----
---- ---------------
j
vectu z
---------
----
-----------------------------
-------
----
elo- pai j
elo j
----------------------------------------
----
elo k
---
----
elo-filho i
-------------------
----
j vectu x
-----------------------------------------------
j
vectu y
Elos estabelecem uma relação pai/filho;
X
-
---
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Extremidade proximal
Z
[ x’, i y’,z’ i i ]= M k M j Mi (l i ,0,0)
Extremidade distal
Árvore: estrutura de elos e juntas; Usam-se dois tipos de referenciais:
[xi1 , yi1 , zi1 , 1] = Mj0 · [li , 0, 0, 1]T ,
O → origem ≡ (0, 0, 0) fixo no espaço; Oi → colocado na extremidade distal ou proximal do elo i.
Marco Cardoso (Fac. de Ciências — U.P.)
0 0 [xi1 , yi1 , zi1 ] = . . . · Mi−2 · Mi−1 · [xi , yi , zi ]T ;
2008
10 / 25
Especificação do sistema
Modelação de agentes computacionais
Animação de agentes computacionais
Vector de Configuração
Configuração
→ vector que especifica a postura e posição-orientação no espaço.
C ≡ [x0 , y0 , z0 , θx0 , θy0 , θz0 , . . . , θxn , θyn , θzn ] Movimento
→ par ordenado de configurações.
Animação por interpolação de posturas
mv = [C0 , C1 , R]: Restrição de movimento R: R ≡ (linear , t1 ) → t1 especifica a duração do movimento.
C (t) = C0 · 1 − mv ≡ (C0 , C1 , R) Acto
→ sequência ordenada de movimentos.
A ≡ [mv 1 , mv 2 , . . . , mv n ]
Marco Cardoso (Fac. de Ciências — U.P.)
t t1
+ C1
t t1
Assume-se que em C (t), t está definido no intervalo [0, t1 ]; C (0) = C0 ; C (t1 ) = C1 .
2008
11 / 25
Especificação do sistema
Reactividade ao contexto
Correcção da velocidade de agentes computacionais Cálculo do fluxo de imagem Uso de sequências de imagens RGB em tempo real; img(x , y ; t) → valor do pixel (x , y ) da imagem no instante t;
φimg =
1 |D|
P (x ,y )∈D
||img(x , y ; t) − img(x , y ; t − 1)||m
|D| = wh =⇒ uso de todos os pixels das imagens; Os termos do somatório correspondem: || p1 − p0 || = ||p1 [r ] − p0 [r ]|| + ||p1 [g] − p0 [g]|| + ||p1 [b] − p0 [b]|| φ0img → valor médio de φimg nas últimas W0 amostragens.
Cálculo do fluxo do agente
φag = ||C (t) − C (t + 1)||m C (t) =⇒ configuração no instante t; C (t + 1) =⇒ configuração no instante t + 1;
||C (t) − C (t + 1)||m ≡
X
|C (t)[i] − C (t + 1)[i]|,
i
Marco Cardoso (Fac. de Ciências — U.P.)
2008
12 / 25
Especificação do sistema
Reactividade ao contexto
Heurísticas para correcção da velocidade de agentes Pressupostos: Assume-se sincronização de velocidade e fase utilizador/agente a maior parte do tempo; Movimento do agente → interpolação de configurações; O ajuste de velocidade → a variando dt;
Presença de sincronização =⇒ altera-se dt ∆ é um termo:
Ausência de sincronização:
n
t é incrementado em cada passo de animação de dt = dt0 ; 1 dt0 = Ns (Ns o número de passos de Ci para Ci+1 ).
∆ é um factor:
n
Marco Cardoso (Fac. de Ciências — U.P.)
dt(0) = dt0 dt(t + 1) = dt(t) + ∆
dt(0) = dt0 dt(t + 1) = dt(t) × (1 + ∆)
2008
13 / 25
Especificação do sistema
Reactividade ao contexto
Heurísticas para correcção da velocidade de agentes
Heurística 0 ∆ = K0 (φ0 (t + 1) − φ0 (t)), K0 relaciona as variações do fluxo de imagem com a variação da velocidade a impôr ao agente.
Heurística 1
( ∆=
← φ0 (t + 1) − φ0 (t) > β − ← φ0 (t + 1) − φ0 (t) < β . 0 ← cc
β =⇒ threshold (valor mínimo de variação do fluxo de imagem para ocorrer variação da velocidade do agente); é a correcção que é feita em dt.
Marco Cardoso (Fac. de Ciências — U.P.)
2008
14 / 25
Especificação do sistema
Reactividade ao contexto
Heurísticas para correcção da velocidade de agentes Heurística 2 Define-se η =⇒ factor de sincronização. Φ0 = E [Φ0 ] =
φ0img η=
φag
Φ0 E [Φ0 ]
E [φ0img ] Quando φag e φ0img são contantes, η → 1;
E [φag ]
Quando φ0img = 0, η toma o valor 1
∆=
n
(1 − η) · Kη ← η > 1 + β ∨ η < 1 − β 0 ← cc
β → threshold (indica qual o valor mínimo de desvio de 1 para η); Kη > 0 (constante a optimizar experimentalmente); φ0img aumenta significativamente =⇒ η > 1 + β =⇒ ∆ > 0 =⇒ velocidade do agente aumenta; φ0img diminui significativamente =⇒ η < 1 − β =⇒ ∆ < 0 =⇒ velocidade do agente diminui. η ≈ 1 não há correcção da velocidade do agente =⇒ o utilizador e agente sincronizados.
Marco Cardoso (Fac. de Ciências — U.P.)
2008
15 / 25
Arquitectura e detalhes de implementação
Modelo de classes
Modelo de classes
Marco Cardoso (Fac. de Ciências — U.P.)
2008
16 / 25
Arquitectura e detalhes de implementação
Funcionalidades da interface gráfica (GUI)
Funcionalidades da interface gráfica (GUI)
Marco Cardoso (Fac. de Ciências — U.P.)
2008
17 / 25
Validação experimental
Protocolo experimental
Protocolo experimental Configuração do sistema O agente realiza movimento numa junta e um grau-de-liberdade; Definição do ângulo de junta variável: θ(0 + k · T ) = θ0; θ 0 + k · T ± T2 = ±θmax ; θmax é o valor absoluto da amplitude máxima da junta-elo; T é o período de oscilação; k ∈ N; θ0 = 0 e θmax = 4π . 5
Definição do movimento do agente: mv 1 = (C0 , C1 ); mv 2 = (C1 , C2 ); mv 1 , mv 2 repetida n vezes; C0 tem θ = θ0 , C1 tem θ = θmax , C2 tem θ = −θmax
Marco Cardoso (Fac. de Ciências — U.P.)
>
I
II
III
IV
Séries temporais registadas para cada heurística φag (t); E [φag ](t); φimg (t) e φ0img (t); E [φ0 ](t); η(t)
2008
18 / 25
Validação experimental
Heurística 2
Experiência 1 Objectivo: criar um cenário de controlo. Protocolo experimental:
2.0 1.5
5
1.0
Eta
4 3
0.5
2
Média do Fluxo(Agente)
0.006 0.004
0.0
0
0.000
1
0.002
Fluxo S(Imagem)
0.008
6
0.010
φimg = 0,
0
100
200
300
400
500
600
t
0
100
200
300 t
400
500
600
0
100
200
300
400
500
600
t
φimg praticamente nulo; φag oscila para os instantes em que ocorre mudança de direcção do elo/braço e entre duas configurações; η oscila ligeiramente em torno de 1.
Marco Cardoso (Fac. de Ciências — U.P.)
2008
19 / 25
Validação experimental
Heurística 2
Experiência 2 Objectivo: averiguar se o comportamento do agente é perturbado pelo utilizador e em que medida. Protocolo experimental:
2.0 1.5
5
1.0
Eta
4 3
0.5
2
Média do Fluxo(Agente)
0.006 0.004
0.0
0
0.000
1
0.002
Fluxo S(Imagem)
0.008
6
0.010
φimg ≈ K ,
0
100
200
300
400
500
600
t
0
100
200
300
400 t
500
600
0
100
200
300
400
500
600
t
φimg mantém-se aproximadamente constante; φag oscila para os instantes em que ocorre mudança de direcção do elo/braço e entre duas configurações; η oscila em torno de 1.
Marco Cardoso (Fac. de Ciências — U.P.)
2008
20 / 25
Validação experimental
Heurística 2
Experiência 3 Objectivo: verificar se ocorre correcção de velocidade do agente e se essa correcção tem a direcção e duração necessária. Protocolo experimental:
2.0 1.5
5
1.0
Eta
4 3
0.5
2
Média do Fluxo(Agente)
0.006 0.004
0.0
0
0.000
1
0.002
Fluxo S(Imagem)
0.008
6
0.010
φimg (0...t0 )≈ K ; φimg (t0+1 ...t1 ) ≈ K + δK ;
0
100
200
300
400
500
600
t
0
100
200
300 t
400
500
600
0
100
200
300
400
500
600
t
φimg aumenta significativamente no instante t0 ≈ 300; φag respeita o regime imposto pelo utilizador (aumenta significativamete nos instantes em que o φimg aumenta; Quando o utilizador estabiliza a sua velocidade a velocidade do agente também estabiliza; Para t0 , o valor η mantém-se continuamente acima de 1 + β (velocidade do agente está a ser corrigida). A heurística não garante que para t > 300 agente e utilizador estejam em fase.
Marco Cardoso (Fac. de Ciências — U.P.)
2008
21 / 25
Validação experimental
Heurística 2
Experiência 5 Objectivo: verificar se o aumento do fluxo do agente a partir do instante t0 para a experiência 5-B é proporcional ao que é apresentado na experiência 5-A. Protocolo experimental:
5-B φimg (0...t0 )≈ K ,
5-A
φimg (t0+1 ...t1 ) ≈ K + K 00 ,
6 5 4 3 2
Média do Fluxo(Agente)
4 3 2
Média do Fluxo(Agente)
0.006 0.004
Fluxo S(Imagem) 0
100
200
300
400
500
600
0
t
100
200
300 t
400
500
600
1 0
0
0.000
0.000
1
0.002
0.004 0.002
Fluxo S(Imagem)
0.006
5
6
0.008
0.008
φimg (0...t0 )≈ K , φimg (t0+1 ...t1 ) ≈ K + K 0 ,
0
100
200
300 t
400
500
600
0
100
200
300
400
500
600
t
Resultados semelhantes aos da Experiência 3; As variações no φag e φimg têm a mesma direcção e são proporcionais; Não é possível verificar se o agente e utilizador ficam a movimentar-se à mesma velocidade e mesma fase.
Marco Cardoso (Fac. de Ciências — U.P.)
2008
22 / 25
Validação experimental
Heurística 2
Experiência 6 Objectivo: verificar se a velocidade de convergência do agente e do utilizador é a mesma. Protocolo experimental:
2.0 1.5
5
1.0
Eta
4 3
0.5
2
Média do Fluxo(Agente)
0.006 0.004
0.0
0
0.000
1
0.002
Fluxo S(Imagem)
0.008
6
0.010
φimg (0...t0 ) ≈ K , φimg (t0+1 ...t1 ) ≈ K + δK , φimg (t1+1 ...t2 ) ≈ K ,
0
200
400
600
800
t
0
200
400
600 t
800
0
200
400
600
800
t
t < t0 =⇒ φimg ≈ constante; t0 < t < t1 =⇒ aumento de φag (resposta ao aumento do fluxo de imagem); O agente pode não convergir para a fase do utilizador; t1 =⇒ diminuição de φag acompanha a redução φimg ; t ≈ t0 e t ≈ t1 , η sofre uma ligeira alteração (mudança de velocidade do utilizador); Tentativa de sincronização utilizador/agente no instante t1 =⇒ redução adicional na velocidade. Marco Cardoso (Fac. de Ciências — U.P.)
2008
23 / 25
Conclusões
Sumário de resultados Reactividade ao contexto Integridade =⇒ na ausência de sincronização, o comportamento do agente não é alterado; Estabilidade =⇒ a resposta do agente ao movimento do utilizador não cria um comportamento inesperado no primeiro; Reactividade =⇒ a resposta do agente às variações de velocidade do utilizador não apresenta uma latência significativa; Correspondência =⇒ a resposta do agente tem a mesma direcção que a do utilizador, isto é o agente aumenta ou reduz a sua velocidade de acordo com o aumento ou redução da velocidade do utilizador; Proporcionalidade =⇒ quanto maior for a variação da velocidade do utilizador, tanto maior será a variação da velocidade do agente. Limitações Não garante que a velocidade e a fases do agente e do utilizador convirjam para o mesmo valor; A sincronização do utilizador com o agente não é particularmente fácil.
Marco Cardoso (Fac. de Ciências — U.P.)
2008
24 / 25
Conclusões
Contribuições e trabalho futuro Desenvolvimento de um protótipo de software aplicado ao domínio da Ginástica do Trabalho; Implementação soluções de controlo para agentes reactivos ao contexto; Construção de um motor 3D simples em Python seguindo a filosofia de programação orientada a objectos; Utilização de arquivos padrão XML para armazenamento estruturado de dados. Trabalho futuro Comparação da distribuição espacial do φimg com o φag gerado por uma câmara virtual apontada a ele próprio;
Algoritmia capaz de inferir com precisão aceitável a configuração em tempo-real do utilizador; Importação de modelos de agentes e ambientes 3D mais realistas; Criação de uma base de dados com exercícios de Ginástica do Trabalho e Tai Chi; TESE =⇒ Ponto de partida
Marco Cardoso (Fac. de Ciências — U.P.)
2008
25 / 25