Integração do Tracker ao Tewnta para simulação física de futebol de robôs
1. ´ ´
UNIVERSIDADE TECNOLOGICA FEDERAL DO PARANA
ˆ ˆ ´
DEPARTAMENTOS ACADEMICOS DE ELETRONICA E INFORMATICA
¸˜
CURSO DE ENGENHARIA DE COMPUTACAO
AGNALDO CESAR COELHO
´
ANDRE LUIZ CONSTANTINO BOTTA
LEANDRO ALVES DOS SANTOS
¸˜ ´
INTEGRACAO DO TRACKER AO TEWNTA: A FISICA NO
ˆ
FUTEBOL DE ROBOS
˜
PROJETO DE TRABALHO - VERSAO 0.2 - MONOGRAFIA 11A
29/06/2011
CAMPUS CURITIBA
2011
2. AGNALDO CESAR COELHO
´
ANDRE LUIZ CONSTANTINO BOTTA
LEANDRO ALVES DOS SANTOS
¸˜ ´
INTEGRACAO DO TRACKER AO TEWNTA: A FISICA NO
ˆ
FUTEBOL DE ROBOS
`
Este Projeto foi apresentado a Unidade Curricular
¸˜
de Oficina de Integracao 1 do Curso de Engenharia
¸˜
de Computacao da Universidade Tecnol´ gica Fede-
o
¸˜
ral do Paran´ como requisito para aprovacao.
a
Orientador: Jo˜ o Alberto Fabro
a
Co-orientador: Nestor Cortez Savedra Filho
CAMPUS CURITIBA
2011
3. ¸˜
Integracao do Tracker ao Tewnta: A F´sica no Futebol de Robˆ s
ı o
Agnaldo Cesar CoelhoAndr´ Luiz Constantino Botta Leandro Alves dos Santos
e
Autor da imagem da capa: Rafael Jaime Sunyˆ Guinart
e
4. RESUMO
Agnaldo Cesar Coelho; Andr´ Luiz Constantino Botta; Leandro Alves dos Santos. Integracao
e ¸˜
do Tracker ao Tewnta: A F´sica no Futebol de Robˆ s. 60 f. Projeto de Trabalho - Vers˜ o 0.2 -
ı o a
¸˜
Monografia 11a 29/06/2011 – Curso de Engenharia de Computacao, Universidade Tecnol´ gica o
Federal do Paran´ . Campus Curitiba, 2011.
a
Pretende-se neste projeto aperfeicoar o software simulador de Futebol de Robˆ s Tewnta, para
¸ o
que o mesmo possa, da forma mais fiel poss´vel, representar as caracter´sticas e comportamen-
ı ı
a ¸˜
tos, tais como velocidade m´ xima, aceleracao e torque de cada robˆ simulado, quando compa-
o
´
rado ao comportamento f´sico real. Para isso, e utilizado o software Tracker como ferramenta
ı
b´ sica para a obtenca
a ¸ ˜ o de dados.
Palavras-chave: Simulacao, Futebol de Robˆ s, Tewnta, Tracker
¸˜ o
Areas de Conhecimento:
5. AGRADECIMENTOS
Agradecemos aos professores orientadores Jo˜ o Alberto Fabro e Nestor Cortez Saavedra
a
Filho por terem nos auxiliado durante todo o projeto. Ao aluno Leonardo Pressoto Oliveira
¸˜
pela contribuicao ao dividir conosco seus conhecimentos a respeito do Tracker. Aos alunos
Geison Dartora e Matheus Ara´ jo por nos auxiliarem, principalmente, no inicio deste projeto.
u
¸˜
E tamb´ m aos professores da disciplina de Oficinas de Integracao: Arandi Ginane Bezerra
e
J´ nior, Andr´ Fabiano Steklain e Luiz Ernesto Merkle por nos ensinarem como proceder na
u e
¸˜
realizacao de pesquisa cient´fica e na escrita de uma monografia.
ı
6. LISTA DE FIGURAS
¸˜ ¸˜
FIGURA 1 – VARIACAO DA POSICAO DE UM OBJETO EM FUNCAO DO TEMPO. 13 ¸˜
´ ´
FIGURA 2 – METODO PARA O CALCULO DA VELOCIDADE INSTANTANEA (TI- ˆ
PLER, 2009). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
FIGURA 3 – LIGA INFANTIL - HUMANOID LEAGUE KIDSIZE. . . . . . . . . . . . . . . . . 18
FIGURA 4 – MIDDLE SIZE LEAGUE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
ˆ
FIGURA 5 – ROBOS UTILIZADOS NA SMALL SIZE LEAGUE. . . . . . . . . . . . . . . . . . 19
FIGURA 6 – CAMPO OFICIAL DA SSL LEAGUE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
FIGURA 7 – TELA DE UMA PARTIDA SOCCER SIMULATION LEAGUE 2D. . . . . 20
FIGURA 8 – DESLOCAMENTO DE UMA BOLA EM FUNCAO DO TEMPO. . . . . . 21 ¸˜
´
FIGURA 9 – TRAJETORIA DO CENTRO DE MASSA. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
ˆ
FIGURA 10 – CAMPO DE FUTEBOL DE ROBOS UTILIZADO NAS FILMAGENS. 22
´
FIGURA 11 – UM REFERENCIAL METRICO, CANTO SUPERIOR ESQUERDO, E ´
ˆ
UTILIZADO AO FILMAR OS ROBOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
FIGURA 12 – CAMPO DE FUTEBOL DE ROBOS ˆ UTILIZADO NAS FILMAGENS. 24
FIGURA 13 – COMANDO IMPORT LOCALIZADO EM FILE → IMPORT → VIDEO. 25
FIGURA 14 – COMANDO CLIP SETTINGS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
FIGURA 15 – COMANDO CALIBRATION TAPE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
FIGURA 16 – SISTEMA DE COORDENADAS CARTESIANAS. . . . . . . . . . . . . . . . . . . . 27
¸˜
FIGURA 17 – CRIACAO DE UM NOVO PONTO DE MASSA. . . . . . . . . . . . . . . . . . . . . . 27
¸˜
FIGURA 18 – CONFIGURACAO DO NOVO PONTO DE MASSA CRIADO. . . . . . . . 28
FIGURA 19 – ABA TEMPLATE DEFINE A IMAGEM A SER CAPTURADA EM CADA
FRAME DE V´ IDEO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
FIGURA 20 – A ABA TARGET DETERMINA UM ”ALVO”COMO O PONTO PRIN-
CIPAL A SER CAPTURADO EM CADA FRAME. . . . . . . . . . . . . . . . . . . . . . 29
FIGURA 21 – NA ABA ACCEPT DETERMINA-SE UM N´ IVEL DE PRECISAO PARA ˜
A CAPTURA DO MOVIMENTO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
´
FIGURA 22 – NA ABA SEARCH E DISPONIBILIZADO UM RETANGULO TRACE- ˆ
´
JADO PARA DEMARCAR A AREA DE PROCURA. ESSE RETANGULO ˆ
´
DEVE TER EM MEDIA O TAMANHO DO OBJETO PROCURADO. . . . 30
FIGURA 23 – ´
ICONES DE VELOCIDADE E ACELARACAO DENTRO DO RETANGULO. 31 ¸˜ ˆ
FIGURA 24 – ROBO ˆ EM MOVIMENTO ANGULAR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
¸˜
FIGURA 25 – CONFIGURACAO PARA O SISTEMA DE COORDENADAS ACOM-
ˆ
PANHAR O CENTRO DO ROBO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
´
FIGURA 26 – TABELAS E GRAFICOS EXIBIDOS NO CANTO DIREITO DA TELA. 33
´
FIGURA 27 – GRAFICO DO MOVIMENTO ANGULAR, EM THETA RADIANOS,
¸˜
COM RELACAO AO TEMPO EM SEGUNDOS. O ROBO ROTACIONA ˆ
´
NO SENTIDO HORARIO COM VELOCIDADE CONSTANTE. . . . . . . . . . 34
´
FIGURA 28 – GRAFICO DO MOVIMENTO ANGULAR, EM THETA RADIANOS,
¸˜
COM RELACAO AO TEMPO EM SEGUNDOS. O ROBO ROTACIONA ˆ
´
NO SENTIDO HORARIO COM TORQUE INICIAL. . . . . . . . . . . . . . . . . . . . 34
´
FIGURA 29 – GRAFICO DO MOVIMENTO ANGULAR, EM THETA RADIANOS,
¸˜
COM RELACAO AO TEMPO EM SEGUNDOS AO QUADRADO. ESTE
7. ´
GRAFICO FOI OBTIDO AO LINEARIZAR O GRAFICO DA FIGURA ´
ANTERIOR. O ROBO ˆ ROTACIONA NO SENTIDO HORARIO COM TOR- ´
QUE INICIAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
´
FIGURA 30 – GRAFICO DO MOVIMENTO ANGULAR, EM THETA RADIANOS,
¸˜
COM RELACAO AO TEMPO EM SEGUNDOS. O ROBO ROTACIONA ˆ
´
NO SENTIDO ANTI-HORARIO COM VELOCIDADE CONSTANTE. . . 35
´
FIGURA 31 – GRAFICO DO MOVIMENTO ANGULAR, EM THETA RADIANOS,
¸˜
COM RELACAO AO TEMPO EM SEGUNDOS. O ROBO ROTACIONA ˆ
´
NO SENTIDO ANTI-HORARIO COM TORQUE INICIAL. . . . . . . . . . . . . . 36
´
FIGURA 32 – GRAFICO DO MOVIMENTO ANGULAR, EM THETA RADIANOS,
¸˜
COM RELACAO AO TEMPO EM SEGUNDOS AO QUADRADO. ESTE
´
GRAFICO FOI OBTIDO LINEARIZANDO O GRAFICO DA FIGURA ??. ´
ˆ
O ROBO ROTACIONA NO SENTIDO ANTI-HORARIO COM TORQUE ´
INICIAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
´
FIGURA 33 – GRAFICO DO DESLOCAMENTO, EM X (METROS), EM FUNCAO ¸˜
DO TEMPO EM SEGUNDOS. O ROBO SE MOVIMENTA COM ACELERACAO ˆ ¸˜
INICIAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
´
FIGURA 34 – GRAFICO DO DESLOCAMENTO, EM X (METROS), EM FUNCAO ¸˜
DO TEMPO EM SEGUNDOS AO QUADRADO. ESTE GRAFICO FOI ´
OBTIDO LINEARIZANDO O GRAFICO DA FIGURA ??. O ROBO SE ´ ˆ
¸˜
MOVIMENTA COM ACELERACAO INICIAL. . . . . . . . . . . . . . . . . . . . . . . . . 37
´
FIGURA 35 – GRAFICO DO DESLOCAMENTO, EM Y (METROS), EM FUNCAO ¸˜
DO TEMPO EM SEGUNDOS. O ROBO SE MOVIMENTA COM ACELERACAO ˆ ¸˜
INICIAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
´
FIGURA 36 – GRAFICO DO DESLOCAMENTO, EM Y (METROS), EM FUNCAO ¸˜
DO TEMPO EM SEGUNDOS AO QUADRADO. ESTE GRAFICO FOI ´
OBTIDO LINEARIZANDO O GRAFICO DA FIGURA ??. O ROBO SE ´ ˆ
¸˜
MOVIMENTA COM ACELERACAO INICIAL. . . . . . . . . . . . . . . . . . . . . . . . . 38
´
FIGURA 37 – GRAFICO DO DESLOCAMENTO, EM Y (METROS), EM FUNCAO ¸˜
DO TEMPO EM SEGUNDOS. O ROBO SE MOVIMENTA COM ACELERACAO ˆ ¸˜
INICIAL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
´
FIGURA 38 – GRAFICO DO DESLOCAMENTO, EM Y (METROS), EM FUNCAO ¸˜
DO TEMPO EM SEGUNDOS AO QUADRADO. ESTE GRAFICO FOI ´
OBTIDO LINEARIZANDO O GRAFICO DA FIGURA ??. O ROBO SE ´ ˆ
¸˜
MOVIMENTA COM ACELERACAO INICIAL. . . . . . . . . . . . . . . . . . . . . . . . . 39
´
FIGURA 39 – GRAFICO DO DESLOCAMENTO, EM X (METROS), EM FUNCAO ¸˜
DO TEMPO EM SEGUNDOS. O ROBO ˆ SE MOVIMENTA COM VELO-
CIDADE CONSTANTE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
´
FIGURA 40 – INTERFACE GRAFICA DO SIMULADOR TEWNTA. . . . . . . . . . . . . . . . 41
¸˜
FIGURA 41 – DIAGRAMA DE COMUNICACAO (APERFEICOAMENTO DO SIMULADOR DE RO
2011). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
FIGURA 42 – DIAGRAMA DE FLUXO (APERFEICOAMENTO DO SIMULADOR DE ROBOS TEW ˆ
2011). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
FIGURA 43 – PROPETIES. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
FIGURA 44 – CLASSE INDEPENDENTROBOT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
FIGURA 45 – CLASSE INDEPENDENTROBOT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
FIGURA 46 – ENCAPSULAMENTO ALTERADO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
FIGURA 47 – ISINDEPENDENTROBOT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
9. LISTA DE TABELAS
TABELA 1 – DADOS PARA MOVIMENTO LINEAR. . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
TABELA 2 – DADOS PARA MOVIMENTO ANGULAR . . . . . . . . . . . . . . . . . . . . . . . . 34
10. LISTA DE SIGLAS
UTFPR Universidade Tecnol´ gica Federal do Paran´
o a
SSL Small Size League
UFRGS Universidade Federal do Rio Grande do Sul
ETL Electro Technical Laboratory
IJCAI Conferˆ ncia Internacional de Inteligˆ ncia Artificial
e e
GNU Genereal Public License
13. 10
1 ¸˜
INTRODUCAO
1.1 ¸˜
DELIMITACAO DO TEMA
¸˜ ´
O ambiente de simulacao e amplamente utilizado em ambiente cient´fico. Simulam-se
ı
o e a `
fenˆ menos da natureza, circuitos el´ tricos e muitos outros desafios que s˜ o propostos a hu-
¸˜
manidade. A simulacao proporciona resultados mais confi´ veis, agilidade nos experimentos,
a
e a ¸˜
economia de recursos materiais e financeiros, etc. Por´ m tudo est´ condicionado a utilizacao de
um software que seja capaz de simular o evento em estudo de forma real e confi´ vel.
a
Os estudos envolvendo Rob´ tica se encaixam perfeitamente na vantagem de se utilizar um
o
¸˜ ¸˜
software de simulacao. Este trabalho esta focado no software de simulacao de Futebol de Robˆ
o
Tewnta, utilizado na categoria de robˆ s F-180 da RoboCup, assim como no programa Tracker.
o
Pretende-se mostrar que e poss´vel melhorar o Tewnta atrav´ s dos dados coletados pelo Tracker,
ı e
tornando assim poss´vel obter como resultado final um simulador que seja capaz de representar
ı
cada robˆ de forma individual, sabendo que os robˆ s n˜ o apresentam as mesmas caracter´sticas
o o a ı
de hardware, ou seja, eles respondem de forma diferente ao mesmo comando.
Este projeto da continuidade ao trabalho realizado por uma equipe do segundo semestre
¸˜
de 2010 na disciplina de Oficina de Integracao I. A equipe era composta por Matheus Ara´ jo,
u
Geison Dartora, Mayara Lorenzi e Cristiano Ribas, cujo foco foi melhorar o simulador, por´ m,
e
ı ´
segundo as caracter´sticas de um unico robˆ .
o
1.2 O PROBLEMA
o ´ ¸˜
O Futebol de Robˆ s e fonte de inspiracao, leva aos jovens o esp´rito da ciˆ ncia, pois pro-
ı e
move a interdisciplinaridade, envolvendo pesquisa principalmente em Inteligˆ ncia Artificial,
e
F´sica e Matem´ tica (FIRA, 2011).
ı a
A UTFPR trabalha na pesquisa de um time de Futebol de Robˆ s da categoria F-180 da
o
RoboCup SSL. Para auxiliar no desenvolvimento de estrat´ gias de jogo a UTFPR utiliza o
e
´
simulador Tewnta, que e um software open source da SSL, desenvolvido na UFRGS por Gabriel
14. 11
¸˜ ¸˜
Girardello Detoni em 2008 (TEWNTA, 2011). No entanto, h´ algumas limitacoes na simulacao
a
o o ¸˜
dos movimentos dos robˆ s. Cada robˆ possui aceleracoes e velocidades diferentes, tanto linear
quanto angular. O Tewnta n˜ o leva em conta essas caracter´sticas, sendo que para uma melhor
a ı
¸˜
simulacao esses atributos devem ser considerados. Atrav´ s do Tracker, software open source
e
para an´ lise e modelagem de v´deos, pode-se coletar esses dados de forma precisa e ent˜ o
a ı a
adicion´ -los ao Tewnta.
a
1.3 OBJETIVOS
´
O objetivo e aperfeicoar o software Tewnta, simulador de Futebol de Robˆ s para a liga
¸ o
F-180, para que este reproduza com precis˜ o os movimentos de cada um dos cinco robˆ s que
a o
comp˜ em a equipe de Futebol de Robˆ s da UTFPR.
o o
1.4 OBJETIVOS ESPEC´
IFICOS
• Simulacao da aceleracao linear e angular, espec´fica de cada robˆ .
¸˜ ¸˜ ı o
• Simulacao da velocidade linear e angular de cada robˆ .
¸˜ o
1.5 JUSTIFICATIVA
´
Duas principais areas do conhecimento est˜ o relacionadas no desenvolvimento deste pro-
a
a e ¸˜
jeto, sejam elas a inform´ tica atrav´ s de aplicacao no desenvolvimento de software de compu-
¸˜
tador na linguagem de programacao Java, afim de melhorar o simulador de Futebol de Robˆ s
o
¸˜
Tewnta, assim como grandezas f´sicas, tais como aceleracao e velocidade, angular e linear.
ı
¸˜ ´
Pois, para se ter uma simulacao virtual o mais pr´ xima poss´vel da realidade e preciso levar em
o ı
¸˜
consideracao os efeitos de eventos f´sicos.
ı
1.6 ´
METODOS DE PESQUISA
O m´ todo empregado neste projeto consiste em pesquisa experimental auxiliado pelo soft-
e
¸˜
ware Tracker, software este que a partir de v´deos fornece dados como velocidade e aceleracao
ı
de um ou mais objetos. Para alcancar os objetivos deste projeto s˜ o seguidos os seguintes pas-
¸ a
sos:
• Coleta de dados dos robˆ s em movimento retil´neo e angular, utilizando uma cˆ mera de
o ı a
15. 12
ı ı ´
v´deo e o software Tracker. O v´deo e importado pelo programa Tracker. Este, por sua
¸˜
vez, fornece informacoes acerca dos movimentos de cada robˆ .
o
• Criacao de novas classes e m´ todos no c´ digo fonte do Tewnta para insercao dos dados
¸˜ e o ¸˜
no c´ digo fonte afim de representar individualmente os robˆ s. Esses m´ todos reprodu-
o o e
ı o ¸˜
zem os movimentos caracter´sticos dos robˆ s, levando em consideracao toda e qualquer
deficiˆ ncia existente.
e
• Testes comparativos das aceleracoes e velocidades, angular e linear, de cada robˆ , no
¸˜ o
¸˜
simulador, com as respectivas aceleracoes e velocidades dos robˆ s reais.
o
16. 13
2 ¸˜ ´
INTRODUCAO TEORICA
2.1 MOVIMENTO LINEAR
2.1.1 Velocidade Linear
Velocidade M´ dia
e
¸˜ ¸˜ ¸˜
Ao representar-se a posicao de um objeto em funcao do tempo ( notacao: x(t), sendo x
¸˜
a posicao e t o tempo), obt´ m-se um gr´ fico (figura 1), que revela com que rapidez o objeto
e a
se move. V´ rias grandezas est˜ o associadas com a express˜ o “com que rapidez”, entre elas, a
a a a
´
velocidade m´ dia, que e a raz˜ o entre o deslocamento
e a x e o intervalo de tempo t, durante o
qual esse deslocamento ocorre (HALLIDAY DAVID; RESNICK, 2009):
x x2 − x1
vmed = = (1)
t t2 − t1
´
A velocidade, assim como o deslocamento, e uma grandeza vetorial, portanto possui um
¸˜ ¸˜ ¸˜
Figura 1: Variacao da posicao de um objeto em funcao do tempo.
¸˜ ´ ¸˜
m´ dulo e uma orientacao. O m´ dulo e o valor absoluto da inclinacao da reta, e um valor posi-
o o
e ¸˜
tivo para a velocidade m´ dia (e para a inclinacao) significa que a reta est´ inclinada para cima da
a
¸˜
esquerda para a direita; um valor negativo para a velocidade m´ dia(e para a inclinacao) significa
e
17. 14
que a reta est´ inclinada para baixo da esquerda para a direita (HALLIDAY DAVID; RESNICK,
a
2009).
Velocidade Instantˆ nea
a
`
Analisando o gr´ fico da (figura 2), a medida que considera-se intervalos de tempo sucessiva-
a
¸˜
mente menores, iniciando em tp, a velocidade m´ dia para o intervalo se aproxima da inclinacao
e
da reta tangente em tp.
Figura 2: M´ todo para o c´ lculo da velocidade instantˆ nea (TIPLER, 2009).
e a a
¸˜ ´
Define-se a inclinacao desta tangente como a velocidade instantˆ nea. Esta tangente e o
a
x
limite da raz˜ o de
a t quando t tende a zero (TIPLER, 2009).
x dx
v = lim = (2)
t→0 t dt
2.1.2 ¸˜
Aceleracao
¸˜
Quando a velocidade de uma objeto ou part´cula varia, diz-se que este sofreu uma aceleracao
ı
¸˜
(ou foi acelerado) (HALLIDAY DAVID; RESNICK, 2009). A aceleracao m´ dia em um inter-
e
valo de tempo ´
t e:
v v2 − v1
amed = = (3)
t t2 − t1
18. 15
v
¸˜ ´
A acelerecao instantˆ nea e o limite da raz˜ o de
a a t quando t tende a zero (TIPLER, 2009).
v dv
a = lim = (4)
t→0 t dt
¸˜ ´ ¸˜
Assim, a aceleracao e a derivada da velocidade v em relacao ao tempo. Como a velocidade
´ ¸˜ ¸˜ ¸˜ ´
e a derivada da posicao x em relacao ao tempo t, a aceleracao e a derivada de segunda ordem de
¸˜
x em relacao a t (HALLIDAY DAVID; RESNICK, 2009).
dv d dx d 2 x
a= = = 2 (5)
dt dt dt dt
2.2 MOVIMENTO ANGULAR
¸˜
Para o movimento rotacional tem-se equacoes an´ logas ao do movimento linear:
a
2.2.1 Velocidade Angular
¸˜ ¸˜
Um corpo em rotacao est´ na posicao angular θ1 no instante t1 , e na angular θ2 no instante
a
t2 . Define-se como velocidade angular m´ dia do corpo no intervalo de tempo
e t (YOUNG
HUGH D.; FREEDMAN, 2009):
θ2 − θ1 θ
ω= = (6)
t2 − t1 t
´ ¸˜
A velocidade angular (instantˆ nea) ω e o limite da raz˜ o da equacao da velocidade angular
a a
m´ dia quando
e tt tende a zero (YOUNG HUGH D.; FREEDMAN, 2009):
θ dθ
ω = lim = (7)
t→0 t dt
2.2.2 ¸˜
Aceleracao Angular
¸˜ a ´
Se a velocidade angular de um corpo em rotacao n˜ o e constante, o corpo possui uma
¸˜
aceleracao angular. Sejam ω1 e ω2 as velocidades nos instantes t1 e t2, respectivamente. A
¸˜ ¸˜ ´
aceleracao angular m´ dia do corpo em rotacao no intervalo t1 at´ t2 e definida atrav´ s da
e e e
¸˜
equacao (8) (YOUNG HUGH D.; FREEDMAN, 2009):
ω2 − ω1 ω
αmed = = (8)
t2 − t1 t
19. 16
¸˜ ´
A aceleracao angular (instantˆ nea) α e o limite dessa grandeza quando
a t tende a zero (YOUNG
HUGH D.; FREEDMAN, 2009):
ω dω
α = lim = (9)
t→0 t dt
20. 17
3 ROBOCUP
´
E jogado por robˆ s especializados em reproduzir diversos eventos que ocorrem em um jogo
o
¸˜
de futebol real. As principais competicoes s˜ o organizadas pela Fira e RoboCup e ocorrem a
a
cada ano (ROBOT, 2011).
3.1 ´
UMA BREVE HISTORIA
Em outubro de 1992 um grupo de pesquisadores japoneses, com o objetivo de discutir pro-
blemas desafiadores em inteligˆ ncia artificial, organizou um Workshop na cidade de T´ quio,
e o
Jap˜ o. Este encontro os levou a crer que seria poss´vel usar o futebol para promover ciˆ ncia e
a ı e
tecnologia. Ap´ s muitos estudos sobre viabilidade financeira, tecnol´ gica e poss´veis impactos
o o ı
sociais eles decidiram dar inicio ao futebol de robˆ s, elaborando regras e inclusive desenvol-
o
o ¸˜
vendo prot´ tipos e sistemas de simulacao. Ap´ s esse encontro em junho 1993, um grupo de
o
pesquisadores, incluindo Minoru Asada, Yasuo Kuniyoshi e Hiroaki Kitano, decidiu lancar
¸
¸˜ ¸˜
uma competicao, provisoriamente chamado de Robˆ J-League. Essa competicao teve reper-
o
cuss˜ o internacional e diversos pesquisadores de outros pa´ses se interessaram na ideia. Devido
a ı
a isso, eles alteraram o nome do projeto para Robot World Cup Initiative, ”RoboCup”. Pouco
tempo depois, Itsuki Noda pesquisador da ETL, desenvolveu um simulador que mais tarde se
tornaria o servidor de futebol oficial da RoboCup (ROBOT, 2011).
O an´ ncio para realizar a primeira Copa do Mundo de Futebol de Robˆ s foi feita durante
u o
a (IJCAI-95) IJCAI realizada em Montreal, Canad´ , agosto de 1995. Mas a primeira Copa
a
oficial de robos ocorre 1997 e foi um sucesso. Mais de quarenta equipes de varias partes do
mundo participaram, al´ m disso o n´ mero de espectadores foi maior que cinco mil (ROBOCUP,
e u
2011a).
Alcancando o Estado da Arte
¸
¸˜ ´
A intencao dos fundadores da RoboCup e utilizar esta para promover a rob´ tica e pesquisa
o
em inteligˆ ncia artificial. Para eles, construir um robˆ para jogar futebol em si n˜ o gera impacto
e o a
21. 18
¸˜ ´
social e econˆ mico significativo, mas a realizacao certamente e considerada como uma grande
o
conquista do campo (ROBOCUP, 2011b).
A RoboCup possui atualmente as seguintes modalidades: RoboCup Rescue, RoboCup@Home,
´
RoboCup Junior e RoboCup Soccer, sendo esta ultima foco de nosso estudo.
3.1.1 Categorias RoboCup Soccer
Humanoid League
Nesta liga, robˆ s autˆ nomos parecidos com humanos disputam uns contra os outros. Est´
o o a
´
e a categoria mais complexa da RoboCup, pois os robˆ s tem que chutar a bola, ter um andar
o
a ı e ¸˜
dinˆ mico e correr sem perder o equil´brio, al´ m da necessidade de haver a percepcao visual da
bola, por parte deles. Os melhores robˆ s human´ ides do mundo disputam nesta liga (HUMA-
o o
NOID LEAGUE, 2011).
´
Esta liga e divida em trˆ s subligas: KidSize (pequeno) com medidas 30 cm a 60 cm de
e
altura, TeenSize (m´ dio) de 100 cm a 120 cm, e AdultSize (grande) de 130 cm ou maior (HU-
e
MANOID LEAGUE, 2011).figura 3
Figura 3: Liga infantil - Humanoid League KidSize.
Middle Size League
Robˆ s de tamanho m´ dio n˜ o superior a 50 cm de diˆ metro disputam em equipes de no
o e a a
m´ ximo seis, com bola de futebol de tamanho regular da FIFA em um campo similar a um
a
campo de futebol em escala humana. Todos os sensores s˜ o on-board e os robˆ s podem usar a
a o
rede sem fio para se comunicar (MIDDLE SIZE LEAGUE, 2011).figura 4
Soccer Small Size League
Nesta liga se encaixam os robˆ s da UTFPR, o objetivo de pesquisa deste trabalho. Esta
o
22. 19
Figura 4: Middle Size League.
´
categoria de tamanho pequeno ou liga F180, e uma das mais antigas da RoboCup. Incide sobre
¸˜
o problema da cooperacao multi-robot agente inteligente e controle em um ambiente altamente
dinˆ mico, com um sistema h´brido centralizado/distribu´do.figura 5
a ı ı
Figura 5: Robˆ s utilizados na Small Size League.
o
As equipes s˜ o formadas por no m´ ximo cinco robˆ s. Eles possuem 18 cm de diˆ metro e
a a o a
n˜ o s˜ o maiores que 15 cm de altura. Os robˆ s jogam com uma bola de golfe laranja em um
a a o
campo verde de dimens˜ es de 605 cm de comprimento por 405 cm de largura (SMALL SIZE LEAGUE,
o
2011). figura 6
Figura 6: Campo oficial da SSL league.
Todos os objetos no campo s˜ o controlados por um sistema de vis˜ o padronizado que pro-
a a
cessa os dados fornecidos pelas duas cˆ meras que est˜ o ligados a uma barra de cˆ mera locali-
a a a
´
zada 4 m acima do campo. O sistema de vis˜ o chamado SSL-Vision e um projeto open source
a
mantido pela comunidade da liga (SMALL SIZE LEAGUE, 2011).
23. 20
Soccer Simulation League
Nesta categoria n˜ o h´ robˆ s reais em cena. Jogadores virtuais e independentes (agentes)
a a o
jogam futebol num campo virtual dentro de um computador. H´ duas subligas: 2D e 3D (STAN-
a
DARD PLATFORM SOCCER, 2011).figura 7
Figura 7: Tela de uma partida Soccer Simulation League 2D.
Soccer Standard Platform League
o e a a ´
Nesta liga todas as equipes utilizam robˆ s idˆ nticos e a vis˜ o omnidirecional n˜ o e permi-
tida. O campeonato substituiu o Four-Legged League, baseada em robˆ s c˜ es AIBO da Sony,
o a
´
e agora e baseada em human´ ides Aldebaran de Nao (STANDARD PLATFORM SOCCER,
o
2011).
24. 21
4 TRACKER
´
O Tracker e um software open source licenciado sobre os termos de GNU General Public
License para an´ lise e modelagem de v´deos. Foi projetado por Douglas Brown com o objetivo
a ı
de auxiliar no estudo da F´sica (TRACKER, 2011). Esta ferramenta pode ser utilizada em
ı
¸˜ ´
diversas situacoes onde se queira analisar o movimento de objetos no tempo. Com ele e poss´vel
ı
¸˜
obter gr´ ficos da aceleracao angular e linear, velocidade angular e linear, deslocamento, energia
a
cin´ tica, momento linear, etc. A figura 8 mostra o gr´ fico do deslocamento de uma bola em
e a
¸˜
funcao do tempo, obtido com Tracker.
¸˜
Figura 8: Deslocamento de uma bola em funcao do tempo.
Para utilizar o Tracker basta gravar um v´deo do(s) objeto (s), em movimento, que se quer
ı
ı a ¸˜
analisar e importar este v´deo para o programa. Ent˜ o com a opcao Autotrack obt´ m-se a
e
o ´
trajet´ ria dos itens selecionados. O diferencial neste software e a eficiˆ ncia em capturar essa
e
trajet´ ria. Pode-se tamb´ m obter o trajeto do centro de massa de um sistema formado por
o e
v´ rios objetos. A figura 9 mostra uma trajet´ ria do centro de massa do sistema formado por
a o
duas part´culas, obtido com Tracker.
ı
A partir dos dados coletados, atrav´ s do Autotrack ou manualmente, o Tracker ent˜ o dispo-
e a
¸˜
nibiliza tabelas e gr´ ficos com praticamente todas as informacoes referentes ao deslocamento
a
¸˜
da(s) part´cula(s) em estudo. Para fazer o download do Tracker e manual de instrucao do
ı
25. 22
Figura 9: Trajet´ ria do centro de massa.
o
mesmo, basta acessar http://www.cabrillo.edu/ dbrown/tracker/. Recomenda-se sempre veri-
¸˜ ¸˜
ficar por novas atualizacoes desse software. Nas secoes que seguem s˜ o descritos todos os
a
¸˜ ¸˜
procedimentos utilizados at´ a obtencao dos dados para as tabelas, gr´ ficos e equacoes de mo-
e a
vimento de cada robˆ , empregando o Tracker.
o
4.1 ¸˜
PREPARACAO DO AMBIENTE PARA FILMAGEM
¸˜ ´
Primeiramente, antes de iniciar as gravacoes dos robˆ s em movimento, e feito o ajuste
o
correto da cˆ mera, de modo que seja poss´vel visualizar todo o campo figura 10. Neste caso, a
a ı
cˆ mera fica posicionada a aproximadamente dois metros acima do centro do campo.
a
Figura 10: Campo de futebol de robˆ s utilizado nas filmagens.
o
O uso de uma superf´cie que diminui o reflexo da luz, como o carpete na figura 10, e uma
ı
a e ¸˜ ´
cˆ mera de boa qualidade, de preferˆ ncia acima de oito megapixels de resolucao, e muito im-
¸˜
portante. Pois, facilita-se a obtencao da trajet´ ria dos robˆ s com uso do Autotrack, ferramenta
o o
a ¸˜ o a ´
que ser´ melhor detalhada nas secoes seguintes. Ap´ s os ajustes de cˆ mera e campo e definido
´
um referencial m´ trico, como o mostrado no canto superior esquerdo da figura 11. Este e fu-
e
turamente configurado no Tracker. O software define uma medida, relacionando a quantidade
26. 23
¸˜
de pixels ao valor aferido para o objeto. Para a determinacao deste referencial recomenda-se
o uso de algum objeto como, por exemplo, uma r´ gua de um metro ou mesmo marcas sobre o
e
campo. O valor aferido ao objeto ser´ futuramente configurado no Tracker. Pois, este define
a
uma medida, relacionando a quantidade de pixeis ao valor aferido para o objeto. No caso da
´
figura 11, o valor de 8.820E-1 significa que a medida entre os extremos da seta e de 0,882
metros.
e ´
Figura 11: Um referencial m´ trico, canto superior esquerdo, e utilizado ao filmar os robˆ s.
o
4.2 ˆ
FILMAGEM DOS ROBOS EM MOVIMENTO
´
A cˆ mera e, preferencialmente, conectada a um computador onde as imagens capturadas
a
´ ¸˜
s˜ o armazenadas. Desta maneira, e poss´vel parar e iniciar gravacoes sem a necessidade de
a ı
mexer na filmadora j´ devidamente ajustada. Para isso, utiliza-se um software de captura e
a
¸˜
reproducao de v´deos como, por exemplo, o Xuggle (programa usado pelo Tracker para an´ lise
ı a
e modelagem de v´deos). Observa-se tamb´ m, a facilidade em administrar os arquivos de v´deo
ı e ı
quando estes s˜ o armazenados, em tempo real, no computador.
a
o ´
Para a filmagem dos robˆ s, e ideal que se reproduza o mesmo movimento por no m´nimo
ı
¸˜
trˆ s vezes. Pois, geralmente ocorre pequena variacao no percurso de cada um deles. Fazendo
e
isto, pode-se escolher um trajeto no qual o robˆ tende a reproduzir com mais frequˆ ncia. Nos
o e
experimentos deste projeto, foi repetido por quatro vezes cada movimento (movimento linear e
angular para a direita e esquerda) dos robˆ s 03, 07, 08 e robˆ 10. O robˆ 04 n˜ o foi filmado de-
o o o a
vido a este estar com problemas. Cada ente rob´ tico foi acionado por meio de um computador.
o
¸˜ o ´
A comunicacao deste com os robˆ s e feita atrav´ s de ondas de r´ dio FM. Para determinar em
e a
´
que sentido cada robˆ deve dirigir-se e utilizado software de controle instalado no computador
o
em quest˜ o.
a
27. 24
4.3 ¸˜
DISTORCOES NAS MEDIDAS
Foram realizadas medidas do campo filmado e comparado com as medidas, deste campo,
obtidas com o Tracker (figura 12). Observou-se ent˜ o, exceto no centro, algumas diferencas.
a ¸
¸˜
Isso ocorre devido as distorcoes causadas pela lente da filmadora. Quanto mais longe do centro
´ ¸˜
do campo maior e essa distorcao. Por exemplo, o comprimento real das linhas laterais do campo
´
e de 232,5 cm, enquanto que com o Tracker foi obtido uma medida de 224,4 cm. Pode-se
verificar outras medidas na figura 12.
¸ a ¸˜
Essas diferencas n˜ o foram levadas em consideracao. Por´ m, para minimizar este pro-
e
´ ¸˜ ´
blema, foram coletadas imagens dos robˆ s em movimento nas areas onde esta distorcao e me-
o
nor ou praticamente nula. Por exemplo, para a captura do movimento angular os robˆ s foram
o
mantidos pr´ ximos ao c´rculo central do campo.
o ı
Figura 12: Campo de futebol de robˆ s utilizado nas filmagens.
o
4.4 ¸˜
OBTENCAO DOS DADOS UTILIZANDO O TRACKER
4.4.1 ¸˜
Configuracao Inicial
a ı ´
Para iniciar a an´ lise de um v´deo, o primeiro passo e carregar o v´deo, fazendo uma
ı
importacao deste atrav´ s do comando import, localizado no menu file → import → video
¸˜ e
28. 25
Figura 13: Comando import localizado em file → import → video.
Para an´ lise e modelagem dos v´deos o Tracker utiliza o Xuggle, software open source que
a ı
”lˆ ”diversos formatos de arquivos de v´deo, inclusive AVI E MPG (j´ incluso no pacote de
e ı a
¸˜ ¸˜
instalacao do Tracker 4.0). Ap´ s a importacao do v´deo deve-se configurar o intervalo a ser
o ı
analisado. Isto e feito, definindo o frame inicial e final. Ao clicar no ´cone Clip Settings (´cone
´ ı ı
de v´deo indicado pela flecha na figura 14) uma janela, Clip Settings, para os ajustes do v´deo
ı ı
´
e aberta. Na primeira e terceira caixas de di´ logo, Start frame e End frame, define-se o frame
a
inicial e o frame final, respectivamente.
Figura 14: Comando Clip Settings.
Na caixa de di´ logo Step size determina-se a quantidade de frames que o programa deve
a
¸˜ ´
”pular”em cada iteracao, sendo o padr˜ o 1. Em Frame e mostrado a taxa de frames por segundo,
a
a ´
a ser considerado, sendo que o valor padr˜ o e o m´ ximo determinado pelo equipamento de fil-
a
¸˜
magem. Na sequˆ ncia, determina-se a relacao entre quantidade de pixels e unidades de medida,
e
29. 26
como cent´metros, metros, polegadas, etc. Para isto, basta clicar no ´cone (figura 15) ao lado
ı ı
do ´cone de v´deo e escolher, preferencialmente, Calibration Tape. Ent˜ o uma seta com duas
ı ı a
´
pontas e mostrado. Os extremos da seta s˜ o fixados de acordo com o referencial m´ trico esco-
a e
lhido (discutido anteriormente), arrastando-se a flecha ou qualquer uma de suas pontas. Ap´ s,
o
define-se a medida de um extremo ao outro (metros, cent´metros ou qualquer outra unidade de
ı
medida) clicando no centro da seta ou pela caixa de di´ logo length.
a
Figura 15: Comando Calibration Tape.
´ ´
O ultimo referencial a ser verificado e o sistema de coordenadas cartesianas. Para configur´ -
a
lo e necess´ rio clicar no ´cone mostrado na figura 16. Ap´ s isto, o sistema de coordenadas fica
´ a ı o
a e ¸˜
vis´vel, podendo-se em seguida arrast´ -lo at´ a posicao referenciada como origem ou at´ mesmo
ı e
ˆ ´
alterar seu angulo. Um ponto de origem e definido, arrastando-se o sistema de coordenadas. Da
´ ˆ
mesma forma, e poss´vel, inclusive, alterar o angulo do sistema.
ı
4.5 ¸˜ ¸˜
CRIACAO DO PONTO DE MASSA E OBTENCAO DOS DADOS MANUAL E AU-
TOMATICAMENTE
¸˜ ´
Ap´ s a configuracao inicial, deve-se criar um novo Ponto de Massa. Este m´ todo e utilizado
o e
para an´ lise individual de objetos em movimento (se for necess´ rio analisar o movimento de um
a a
¸˜
sistema de part´culas, pode-se utilizar a opcao Centro de Massa, abaixo de Point of Mass). Para
ı
criar o Ponto de Massa (figura 17) deve-se clicar no menu Tracks → New → Point of Mass.
Logo ap´ s, a janela Track Control torna-se vis´vel, sendo ent˜ o poss´vel determinar a trajet´ ria
o ı a ı o
do Ponto de Massa mencionado.
´ a o ´
E necess´ rio, agora, relacionar o trajeto do robˆ ao Ponto de Massa. Isto e poss´vel fazer
ı
30. 27
Figura 16: Sistema de coordenadas cartesianas.
¸˜
Figura 17: Criacao de um novo Ponto de Massa.
tanto manual quanto automaticamente. Para obter o percurso do robˆ manualmente, coloca-
o
o ¸˜
se o robˆ na posicao inicial e ent˜ o com a tecla Shift pressionada clica-se, utilizando o bot˜ o
a a
o o ´
esquerdo do mouse, sobre o centro do robˆ . Logo ap´ s, o frame seguinte e mostrado. Essa
¸˜ ¸˜
operacao deve ser repetida at´ a obtencao do trajeto total desejado. Para obter o percurso au-
e
tomaticamente, deve-se clicar sobre o novo Ponto de Massa criado, item destacado na Janela
Track Control (figura 18). Nesta etapa determina-se automaticamente o trajeto do robˆ . Em
o
31. 28
´
seguida, uma janela do Autotracker e aberta, sendo necess´ rio clicar sobre o robˆ para iniciar a
a o
¸˜
configuracao.
¸˜
Figura 18: Configuracao do Novo Ponto de Massa Criado.
A aba Template, na janela Autotracker (figura 19), define a imagem a ser capturada em cada
ı ı ´
frame de v´deo. Um c´rculo e disponibilizado para selecionar o objeto a ser capturado. Para um
´
melhor desempenho recomenda-se envolver, com esse c´rculo, apenas uma pequena area com
ı
maior contraste no objeto, como o que foi feito com o robˆ da (figura 19) . A barra Evolution
o
`
Rate define a rapidez com que Template se adapta a mudanca de forma e cor do objeto com o
¸
tempo, sendo 10 % a taxa padr˜ o.
a
¸˜
Na aba Target os passos ser˜ o marcados em relacao a Template. O Tracker seleciona o
a
centro do c´rculo por padr˜ o (sinal de + no centro da (figura 20). Para alterar basta arrastar, para
ı a
qualquer lado, o ponto considerado como ”alvo”.
´
Na aba Accept e determinado um n´vel de precis˜ o para a captura do movimento. Redu-
ı a
zindo o valor da barra Accept Scores Above aumenta a probabilidade de erros. Recomenda-se
´
utilizar o padr˜ o do software que e de quatro unidades.
a
´ ´ ´
A aba Search e utilizada para determinar a area de procura do objeto. Nesta guia e dispo-
a ´
nibilizado um retˆ ngulo tracejado para delimitar a area de procura. Esse retˆ ngulo deve ter em
a
m´ dia o tamanho do objeto procurado. A cada frame seguinte, o Tracker tenta atualizar essa
e
´ ¸˜
area de acordo com a posicao atual do objeto. Para melhorar a busca, recomenda-se demarcar o
¸˜
campo com, aproximadamente, as dimens˜ es do objeto. A caixa de selecao Look Ahead deve
o
32. 29
Figura 19: Aba Template define a imagem a ser capturada em cada frame de v´deo.
ı
Figura 20: A aba Target determina um ”alvo”como o ponto principal a ser capturado em cada
frame.
estar assinalada.
Feito os devidos ajustes, pode-se agora determinar a trajet´ ria do robˆ , clicando no bot˜ o
o o a
´
Search (figura 22). Na figura 23 e mostrada a trajet´ ria de um robˆ obtida com o Autotracker.
o o
Clicando sobre os ´cones de velocidade ou aceleracao (´cones envolvidos pela caixa retangular
ı ¸˜ ı
´
preta, figura 23) e poss´vel visualizar ou ocultar os respectivos vetores.
ı
´ a
Para utilizar o Autotracker, e v´ lido lembrar que o v´deo a ser analisado deve ter uma boa
ı
¸˜
definicao e conter imagens n´tidas, como citado anteriormente. Do contr´ rio, recomenda-se
ı a
obter manualmente o percurso do robˆ .
o
33. 30
Figura 21: Na aba Accept determina-se um n´vel de precis˜ o para a captura do movimento.
ı a
´ ´
Figura 22: Na aba Search e disponibilizado um retˆ ngulo tracejado para demarcar a area de
a
procura. Esse retˆ ngulo deve ter em m´ dia o tamanho do objeto procurado.
a e
4.6 ¸˜
PASSOS PARA OBTENCAO DOS DADOS COM MOVIMENTO LINEAR
Para obter o percurso do robˆ em movimento linear basta seguir os passos citados at´ aqui.
o e
34. 31
´ ¸˜
Figura 23: Icones de velocidade e acelaracao dentro do retˆ ngulo.
a
4.7 ¸˜
PASSOS PARA OBTENCAO DOS DADOS COM MOVIMENTO ANGULAR
¸˜
Para a obtencao dos dados com movimento angular, al´ m dos procedimentos j´ citados,
e a
deve-se fixar o referencial, para o sistema de coordenadas, no centro do ente rob´ tico, fazendo
o
com que a origem do sistema acompanhe o centro do robˆ em movimento. Ou seja, a origem
o
do sistema de coordenadas acompanha o centro do robˆ em movimento. (figura 24).
o
Para este procedimento deve-se criar um segundo Ponto de Massa, no qual seu percurso
acompanha o centro do robˆ . Logo ap´ s, pode-se determinar o ponto de referˆ ncia para o plano
o o e
cartesiano atrav´ s do menu Coordinate System → Reference Frame, onde e poss´vel escolher o
e ´ ı
Ponto que acompanha o centro como referˆ ncia (figura 25).
e
4.8 DADOS
Ap´ s criar a trajet´ ria dos movimentos, o Tracker disponibiliza diversas tabelas e gr´ ficos
o o a
`
dos dados (canto direito), (figura 26). A direita s˜ o mostrados o gr´ fico e tabela gerados pelo
a a
Tracker a partir do deslocamento do robˆ , Neste projeto foram utilizados apenas os relacionados
o
¸˜
ao deslocamento linear e angular em relacao ao tempo. Para obter dados referentes a outras
vari´ veis, basta clicar em Table no canto superior esquerdo da tabela e selecionar os itens.
a
¸˜
Seguindo o procedimento citado na secao anterior foram obtidos dados, dos quais utiliza-
¸˜
mos para a construcao das tabelas 1 e 2, abaixo. Os dados mostrados s˜ o para os robˆ s 03, 07,
a o
35. 32
Figura 24: Robˆ em movimento angular.
o
¸˜
Figura 25: Configuracao para o sistema de coordenadas acompanhar o centro do robˆ .
o
08 e 10. O robˆ 04 n˜ o foi filmado devido a este apresentar problemas.
o a
` ¸˜
Os dados relativo ao movimento linear constante referem-se a variacao de deslocamento
dos momentos em que o robˆ inicia o movimento com velocidade constante at´ o momento
o e
¸˜
anterior a este iniciar sua desaceleracao.
¸˜ ¸˜
Em relacao ao movimento linear inicial, levamos em consideracao apenas a trajet´ ria entre
o
¸˜ ¸˜
a posicao de repouso at´ a posicao em que o robˆ atinge a velocidade constante.
e o
36. 33
Figura 26: Tabelas e gr´ ficos exibidos no canto direito da tela.
a
Tabela 1: Dados para Movimento Linear.
MOVIMENTO LINEAR MOVIMENTO LINEAR INICIAL
Aceleracao em Y (m/s2 ) Velocidade constante em X (m/s)
¸˜ Aceleracao em Y (m/s2 ) Aceleracao em X (m/s2 )
¸˜ ¸˜
Robˆ 3
o 0,8859 0,0574 0,0330 0,7152
Robˆ 7
o 0,1241 1,5835 0,1636 1,5938
Robˆ 8
o 0,154 1,7789 0,0676 1,0932
Robˆ 10
o 0,2734 1,674 0,3194 1,718
` ¸˜
Os dados relativo ao movimento angular inicial referem-se a variacao de deslocamento
angular dos momentos em que o robˆ inicia o movimento com velocidade constante at´ o mo-
o e
¸˜
mento anterior a este iniciar sua desaceleracao.
¸˜ ¸˜
Em relacao ao movimento angular inicial, levamos em consideracao apenas o deslocamento
¸˜ ¸˜
angular entre a posicao de repouso at´ a posicao em que o robˆ atinge a velocidade angular
e o
constante.
Utilizando os mesmos dados para criar as tabelas 1 e 2 foram plotados, para o robˆ 08,
o
a e ¸˜
os gr´ ficos abaixo. Al´ m disso, foram geradas as equacoes de cada movimento (canto inferior
direito de cada figura):
37. 34
Tabela 2: Dados para Movimento Angular
MOVIMENTO ANGULAR ESQUERDA MOVIMENTO ANGULAR DIREITA
Torque inicial (rad/s2 ) Velocidade constante (rad/s) Torque inicial (rad/s2 ) Velocidade constante (rad/s)
Robˆ 3
o 32,7286 10,7878 -18,8166 -9,8331
Robˆ 7
o 35,8936 21,0474 -27,8734 -18,7874
Robˆ 8
o 33,9293 20,7332 -30,1496 -21,0915
Robˆ 10
o 59,7220 22,5444 -41,1899 -20,4160
¸˜
Figura 27: Gr´ fico do movimento angular, em theta radianos, com relacao ao tempo em segundos.
a
O robˆ rotaciona no sentido hor´ rio com velocidade constante.
o a
¸˜
Figura 28: Gr´ fico do movimento angular, em theta radianos, com relacao ao tempo em segundos.
a
O robˆ rotaciona no sentido hor´ rio com torque inicial.
o a
38. 35
¸˜
Figura 29: Gr´ fico do movimento angular, em theta radianos, com relacao ao tempo em segundos
a
ao quadrado. Este gr´ fico foi obtido ao linearizar o gr´ fico da figura anterior. O robˆ rotaciona no
a a o
sentido hor´ rio com torque inicial.
a
¸˜
Figura 30: Gr´ fico do movimento angular, em theta radianos, com relacao ao tempo em segundos.
a
O robˆ rotaciona no sentido anti-hor´ rio com velocidade constante.
o a
39. 36
¸˜
Figura 31: Gr´ fico do movimento angular, em theta radianos, com relacao ao tempo em segundos.
a
O robˆ rotaciona no sentido anti-hor´ rio com torque inicial.
o a
¸˜
Figura 32: Gr´ fico do movimento angular, em theta radianos, com relacao ao tempo em segundos
a
ao quadrado. Este gr´ fico foi obtido linearizando o gr´ fico da figura 31. O robˆ rotaciona no
a a o
sentido anti-hor´ rio com torque inicial.
a
40. 37
a ¸˜
Figura 33: Gr´ fico do deslocamento, em X (metros), em funcao do tempo em segundos. O robˆ se
o
¸˜
movimenta com aceleracao inicial.
¸˜
Figura 34: Gr´ fico do deslocamento, em X (metros), em funcao do tempo em segundos ao qua-
a
drado. Este gr´ fico foi obtido linearizando o gr´ fico da figura 33. O robˆ se movimenta com
a a o
¸˜
aceleracao inicial.
41. 38
a ¸˜
Figura 35: Gr´ fico do deslocamento, em Y (metros), em funcao do tempo em segundos. O robˆ se
o
movimenta com aceleraca¸ ˜ o inicial.
¸˜
Figura 36: Gr´ fico do deslocamento, em Y (metros), em funcao do tempo em segundos ao qua-
a
drado. Este gr´ fico foi obtido linearizando o gr´ fico da figura 35. O robˆ se movimenta com
a a o
¸˜
aceleracao inicial.
42. 39
a ¸˜
Figura 37: Gr´ fico do deslocamento, em Y (metros), em funcao do tempo em segundos. O robˆ se
o
movimenta com aceleraca¸ ˜ o inicial.
¸˜
Figura 38: Gr´ fico do deslocamento, em Y (metros), em funcao do tempo em segundos ao qua-
a
drado. Este gr´ fico foi obtido linearizando o gr´ fico da figura 37. O robˆ se movimenta com
a a o
¸˜
aceleracao inicial.
43. 40
a ¸˜
Figura 39: Gr´ fico do deslocamento, em X (metros), em funcao do tempo em segundos. O robˆ se
o
movimenta com velocidade constante.
44. 41
5 TEWNTA
´
O software Tewnta e um simulador open source, sob a licenca GNU, com interface gr´ fica
¸ a
¸˜
(figura 40), para a competiccao de Futebol de Robˆ s da categoria SSL, desenvolvido pelo aluno
o
¸˜
Gabriel Detoni da UFRGS, utilizando a linguagem de programacao Java. Sua principal fina-
´ ¸˜
lidade e prever situacoes reais de jogo. Desta maneira, reduz o tempo no desenvolvimento de
estrat´ gias, por permitir que diferentes t´ ticas de jogo sejam testadas concorrentemente, auxili-
e a
¸˜
ando na reducao do desgaste de hardware ocasionado pelos testes com os robˆ s.
o
Figura 40: Interface gr´ fica do simulador Tewnta.
a
Segundo a monografia do semestre 2010.2
ˆ
(APERFEICOAMENTO DO SIMULADOR DE ROBOS TEWNTA, 2011)
”O Tewnta trabalha em duas camadas, a primeira atua como Servidor e e respons´ vel pela
´ a
simulacao f´sica e interpretacao das regras do Futebol de Robˆ s. Uma segunda camada atua
¸˜ ı ¸ o
como Cliente e nela est˜ o denidas as acoes que devem ser tomadas pelos robˆ s. Para cada um
a ¸˜ o
45. 42
dos times h´ uma aplicacao cliente sendo executada. Essas duas camadas s˜ o executadas em
a ¸˜ a
aplicacooes diferentes que se comunicam atrav´ s de protocolo IP (Internet Protocol).”
¸˜ e
¸˜
Segue diagrama representativo para a comunicacao e funcionamento do programa figura 41
e figura 42
Figura 41: Diagrama de ¸˜
comunicacao (APERFEICOA-
MENTO DO SIMULADOR DE ROBOSˆ TEWNTA, 2011).
ˆ
Figura 42: Diagrama de fluxo (APERFEICOAMENTO DO SIMULADOR DE ROBOS TEWNTA,
2011).
46. 43
5.1 ˜ ´
VISAO GERAL DO CODIGO
O c´ digo original est´ dividido em nove pacotes
o a
ˆ
(APERFEICOAMENTO DO SIMULADOR DE ROBOS TEWNTA, 2011)1 :
br.ufrgs.f180.math
br.ufrgs.f180.api
br.ufrgs.f180.api.model
br.ufrgs.f180.elements
br.ufrgs.f180.guibr.ufrgs.f180.resources
br.ufrgs.f180.server
br.ufrgs.f180.teamcom.cloudgarden.resource
¸˜
As principais alteracoes realizadas por esta equipe foram criadas, via o pacote br.utfpr.f180.IndependentR
sendo que o c´ digo original modificado, em sua maior parte, foi alterado apenas para que se
o
` ¸˜
adaptasse as novas classes, sem adicao de funcionalidades novas.
5.2 ¸˜
ALTERACOERS IMPLEMENTADAS
¸˜ ¸˜
Visava-se por meio das modificacoes implementadas no c´ digo, a real representacao de
o
cada um dos quatro robˆ s, em funcionamento, que comp˜ em a equipe de Futebol de Robˆ s da
o o o
¸˜
UTFPR. Para tanto, foram-se inseridas as seguintes modificacoes no c´ digo:
o
5.2.1 ¸˜
Criacao de novas propriedades no arquivo Properties
¸˜ ¸˜ ` ¸˜
Ap´ s a obtencao das informacoes referentes as aceleracoes e velocidades, angular e linear,
o
¸˜ ¸˜
para cada robˆ com a utilizacao do software Tracker (detalhes na secao 4), era necess´ rio inserir
o a
esses valores no c´ digo do Tewnta. O arquivo Properties cont´ m as propriedades referentes ao
o e
diversos elementos que comp˜ em o jogo, incluindo o campo, a bola e os robˆ s. No arquivo
o o
ı ¸˜
foram inclu´dos os valores das aceleracoes e velocidades para cada robˆ (figura 43).
o
• Pacote
– com.cloudgarden.resource
1 Para ¸˜
uma descricao completa dos Pacotes e Classes presentes no Tewnta, acesse
http://dl.dropbox.com/u/12362738/monografia final.pdf
47. 44
Figura 43: Propeties.
• Arquivo modificado
– game.properties
¸˜
DESCRICAO
As propriedades targetVelocityX e targetVelocityY representam as velocidades do robˆ em
o
seu movimento linear, assim como linearAccelerationX e linearAccelerationY representam as
¸˜
aceleracoes, respectivamente, nos eixos x e y. A propriedade rotationAcceleration representa a
¸˜
aceleracao angular do robˆ , e rotationVelocity sua velocidade angular.
o
48. 45
5.2.2 ¸˜
Criacao da classe IndependentRobot
Classe para representar qualquer robˆ que tenha seus dados no arquivo game.properties
o
(figura 44 e 45).
Figura 44: Classe IndependentRobot.
49. 46
Figura 45: Classe IndependentRobot.
¸˜
DESCRICAO O DA CLASSE IndependentRobot
o ı o ¸˜
Cada robˆ precisa ter caracter´sticas pr´ prias para as aceleracoes linear e angular, para que
esses valores correspondam com o comportamento f´sico real dos robˆ s, os m´ todos: getRo-
ı o e
tationAcceleration() e getAcceleration() foram sobrecritos para que estes retornassem o valor
contido no arquivo game.properties.
50. 47
O m´ todo getAcceleration() retorna a quem o chamou uma instˆ ncia da classe Vector (pa-
e a
cote br.ufrgs.f180.math.Vector), que representa um vetor, contendo componentes no eixo das
abscissas e no eixo das ordenadas. O m´ todo getRotationAcceleration() retorna um double,
e
sendo ent˜ o necess´ rio que este simplesmente retorne o valor contido no arquivo game.properties
a a
¸˜
para a aceleracao angular do robˆ em quest˜ o.
o a
´
A velocidade e representada por outra instˆ ncia da classe Vector, protected Vector targetVe-
a
locity, que est´ presente na classe Robot, tendo sido alterado o tipo de encapsulamento deste, de
a
private para protected, permitindo assim, que classes derivadas tenham acesso a esta vari´ vel.
a
Al´ m de targetVelocity, protected static final double ROBOT MAX VELOCITY e protected
e
static final double ROBOT MAX FORCE tiveram seus modificadores de acesso alterados de
private para protected com a mesma finalidade (figura 46). Em raz˜ o da estruturac˜ o do c´ digo,
a a o
Figura 46: Encapsulamento Alterado.
teve-se que ser criada duas vari´ veis booleanas para especificar se o robˆ est´ em um movimento
a o a
linear ou angular, protected boolean isLinearMovement e protected boolean isRotationalMove-
ment, respectivamente, ou em ambos. Aos m´ todos private void linearMovement (double ti-
e
¸˜
meElapsed) e private void rotationalMovement (double timeElapsed), compete a atualizacao do
movimento do robˆ . O m´ todo public void calculatePosition(double time-Elapsed), da classe
o e
Robot, foi sobrescrito para que considerasse apenas movimentos v´ lidos, evitando-se que ao
a
se dar o comando de andar para o robˆ , este tamb´ m rotacione indevidamente, atualizando em
o e
¸˜
seguida a posicao do robˆ no campo.
o
5.3 ¸˜ ˆ
ATUALIZACAO DO MOVIMENTO DO ROBO
¸˜ ¸˜
Para a atualizacao da posicao para os robˆ s da UTFPR, foi necess´ rio alterar o c´ digo para
o a o
que este respondesse corretamente aos comandos de movimentar-se linearmente ou rotacio-
` ¸˜ ¸˜
nar, pois devido a implementacao original, a representacao do movimento tornava-se imprecisa
quando este era uma instˆ ncia de uma das classes IndependentRobot, fazendo com que o robˆ
a o
rotacionasse quando este deveria apenas mover-se linearmente, ou vice-versa.