No que diz respeito à implementação, o novo integrador viu a sua função integrate reduzida no número de linhas, isto é, passou das 475 linhas para as 179 actuais. De notar foi também a redução de linhas do módulo integrator, que passou das suas 1976 linhas para as actuais 1183. A redução fez-se notar principalmente no número de métodos privados, pois passou dos seus 22 métodos para apenas 9 existentes agora.
Um proveito mais importante ainda para o módulo integrator, foi o facto de ter ganho uma estrutura nova e sustentada por um modelo simples, que divide a complexidade da integração pelos vários conceitos de integração existentes, sendo ao mesmo tempo capaz de disponibilizar o uso de filtros distintos e a possibilidade de evoluir facilmente com o desenvolvimento de novas ideias.
49
Capítulo 4 – Resultados
Neste capítulo são abordados os testes efectuados ao novo integrador e os resultados obtidos, de forma a verificar o bom funcionamento da nova estrutura e qual a melhor implementação para a filtragem dos valores observado em relação à bola de jogo.
4.1. Testes
O novo integrador foi já testado em duas competições pela equipa CAMBADA, no Iran Robotics Open 2014 e no Portuguese Robotics Open 2014. Contudo, os vários testes efectuados ao novo integrador não se resumiram ao uso do mesmo em competição, mas também à tentativa de o tornar mais eficiente relativamente à detecção da posição e velocidade da bola de jogo.
Dessa forma, os resultados presentes na secção dois deste capítulo dizem respeito aos testes executados à modelização do novo integrador, tendo em conta as diversas implementações para a filtragem das observações da bola. Foram praticados dois tipos de testes, que contaram com uma bola parada em diferentes posições estratégicas e com um robô que possuiu movimentos distintos.
Cada um dos testes foi repetido para cada uma das implementações da interface Filter abordada na secção três do terceiro capítulo, isto é, as implementações referentes ao KalmanFilter, KalmanParticle, KalmanRegression, KalmanParticleRegression, ParticleFilter, ParticleKalman, ParticleRegression e ParticleKalmanRegression. De notar que o número de partículas usadas nas implementações que usaram o filtro de partículas foi 10, número de particular por defeito existente no filtro.
50
4.1.1. Robô em rotação
Neste primeiro teste foram elaboradas cinco experiências para cada implementação, em que o robô está posicionado junto da linha da grande área da baliza, como mostra a imagem 9, executando um movimento repetitivo de rotação sobre si mesmo. A bola foi colocada a uma distância inicial de um metro do robô, posteriormente deslocada um metro para a frente em cada experiência, sendo a deslocação executada paralelamente à linha da grande área.
Cada experiência contou com três velocidades de rotação distintas para o robô com uma amostragem de mil observações: inicialmente parado, depois uma rotação de 90 rotações por minuto e por fim, uma rotação de 180 rotações por minuto.
4.1.2. Robô em translação
Para o segundo teste foram também executadas cinco experiências para cada implementação, contudo o robô excuta agora um movimento de translação paralelamente à linha da grande área da baliza, como mostra a imagem 10. Como no teste anterior, a bola foi colocada a uma distância inicial de um metro e posteriormente deslocada um metro para a frente em cada uma das experiências, mas em relação ao ponto negro do lado direito da baliza.
Neste teste foi usada sempre a mesma velocidade para o robô, sendo que, de forma semelhante à anterior, a amostragem de cada experiência contou com mil observações. De notar que o robô em cada uma das extremidades executava um movimento de rotação sobre si próprio, para que o movimento fosse executado com orientações diferentes.
Figura 9 – Representação gráfica do primeiro teste efectuado
y x
51
4.2. Resultados
Nesta secção são ilustrados graficamente os resultados para ambos os testes, diferenciando para cada um deles o resultado obtido, com o uso das diferentes implementações para a filtragem da bola. Todos os testes aqui presentes foram executados no simulador que integra o projecto CAMBADA e dessa forma a imprecisão na colocação da bola teve a sua influência no resultado final obtido.
Os gráficos referentes ao primeiro teste, identificam as posições da bola obtida em relação ao robô, sendo identificadas por cores diferentes as várias experiências que pretendiam diferir apenas em 1 metro da distância. Deve ser referido contudo, que as 5 posições que a bola possuiu foram únicas, isto é, para cada uma das posições foram executadas as observações sem que a posição da bola e do robô fossem alterados.
Por outro lado, os gráficos relativos ao segundo teste, mostram as posições da bola em relação ao ponto negro como foi referido na secção anterior deste capítulo. Foram também usadas cores distintas para distinguir as diferentes experiências, que assim como para o teste anterior, pretendiam diferenciar-se apenas em 1 metro de distância entre elas.
A escala usada pelos diversos gráficos é diferente, bem como a relação entre os eixos x e y, pela simples razão de que existe uma grande discrepância entre as grandezas associadas. Pretende-se assim, ilustrar com mais precisão os valores associados ao erro de filtragem.
Figura 10 – Representação gráfica do segundo teste efectuado
y x
52
4.2.1. Resultado para o primeiro teste
Gráfico 2 – Resultado para o KalmanParticle no primeiro teste Gráfico 1 – Resultado para o KalmanFilter no primeiro teste
∆x ∆y
∆x ∆y
53
Gráfico 3 – Resultado para o KalmanParticleRegression no primeiro teste
Gráfico 4 – Resultado para o KalmanRegression no primeiro teste
∆x ∆y
∆x ∆y
54
Gráfico 6 – Resultado para o ParticleKalman no primeiro teste Gráfico 5 – Resultado para o ParticleFilter no primeiro teste
∆x ∆y
∆x ∆y
55
Gráfico 7 – Resultado para o ParticleKalmanRegression no primeiro teste
Gráfico 8 – Resultado para o ParticleRegression no primeiro teste
∆x ∆y
∆x ∆y
56
4.2.2. Resultado para o segundo teste
Gráfico 10 – Resultado para o KalmanParticle no segundo teste Gráfico 9 – Resultado para o KalmanFilter no segundo teste
∆x ∆y
∆x ∆y
57
Gráfico 11 – Resultado para o KalmanParticleRegression no segundo teste
Gráfico 12 – Resultado para o Kalman Regression no segundo teste
∆x ∆y
∆x ∆y
58
Gráfico 13 – Resultado para o ParticleFilter no segundo teste
Gráfico 14 – Resultado para o ParticleKalman no segundo teste
∆x ∆y
∆x ∆y
59
Gráfico 15 – Resultado para o ParticleKalmanRegression no segundo teste
Gráfico 16 – Resultado para o ParticleRegression no segundo teste
∆x ∆y
∆x ∆y
60
4.3. Avaliação dos resultados
Analisando os resultados do primeiro teste, é perceptível que o erro de filtragem se situa aproximadamente entre os 5 e os 20 centímetros para a coordenada do comprimento e entre os 10 e os 40 centímetros para a coordenada da largura. De notar que os menores erros se apresentaram nas implementações KalmanFilter e KalmanRegression, sendo que os maiores erros se verificam para as implementações ParticleKalmanRegression e ParticleKalman. O que nos leva a concluir, que para o primeiro teste, a aplicação do filtro de Kalman seguido de uma regressão linear é a melhor opção entre as que foram estudadas. Já a pior situação é o uso de um filtro de partículas associado a um filtro de Kalman com uma regressão linear no final.
Para o segundo teste, os erros associados à filtragem são ligeiramente maiores, situando-se aproximadamente entre os 5 e os 30 centímetros para a coordenada do cumprimentos e entre os 10 e os 50 centímetros para a coordenada da largura. Também para este segundo teste, os erros mais curtos dizem respeito às implementações KalmanFilter e KalmanRegression, sendo que as implementações com erros mais significativos foram o ParticleKalman e o ParticleRegression. Concluímos assim, que este segundo teste nos demonstrou que como no anterior, a aplicação de um filtro de kalman seguido de uma regressão linear é a melhor opção de filtragem entre as estudadas, sendo que se deve evitar o uso do filtro de Partículas seguido de uma regressão linear sob a pena de obter um erro mais elevado na filtragem dos valores obtidos pela observação.
Nas competições referidas no capítulo anterior, foi usado o filtro KalmanRegression no integrador que integrou a agente de cada robô, que se revelou capaz dada a prestação e o comportamento que a equipa assumiu ao longo dos jogos de ambas as competições.
Tendo em conta as conclusões anteriores, podemos terminar esta avaliação certos de que as implementações que usam o filtro de Kalman foram as que obtiveram melhores resultados, sendo que, a implementação que usa o filtro seguido de uma regressão linear foi a melhor para as situações estudadas. Estamos certos também, de que que as implementações que recorreram ao filtro de Partículas obtiveram os piores resultados para os testes efectuados, apesar da aplicação quer de um filtro de Kalman, quer de um filtro de Partículas.
61
Capítulo 5 – Conclusão
Neste capítulo final, são discutidos os resultados apresentados no capítulo anterior, tendo em conta o estudo efectuado e as alterações realizadas no integrador do agente CAMBADA, concluindo com apresentação do trabalho futuro necessário para que a nova estrutura produza os frutos desejados.
5.1. Discussão de resultados
O resultado obtido com a nova estrutura do integrador do agente CAMBADA, apesar de oferecer melhorias não muito significativas em relação ao anterior no campo da filtragem, cumpre muito bem o seu objectivo principal que é o de possuir uma estrutura modelada para o integrador.
O novo integrador outorgou a ideia de que está bem implementado, nas competições do Iran Robotics Open 2014 e no Portuguese Robotics Open 2014, onde foi usado. Foi notória a facilidade de configuração e alteração no seu módulo de integração, assim como a possibilidade de manter um funcionamento análogo ao que possuía anteriormente.
Os resultados para a filtragem continuam a não ser os melhores, dada a precisão que oferecem para a determinação da posição da bola, afectando dessa forma o cálculo da sua velocidade. Contudo, o módulo integrador oferece agora uma forma mais fácil para implementar e experimentar novas ideias no campo da filtragem, sendo para isso apenas necessário criar uma nova implementação da interface Filter.
Também na área da localização do robô, a modelização executada no integrador deu o seu fruto, tornando-a mais simples de compreender e aberta a novas ideias que depois de
62 implementadas e testadas, deixaram o agente CAMBADA preparado para uma vasta gama de situações onde a sua localização não será o problema.
Desta forma se conclui que o trabalho desenvolvido no âmbito desta Dissertação de Mestrado não foi em vão, visto que, criou um novo modelo para o integrador do agente CAMBADA, tornando assim a compreensão deste mais fácil para novos membros, dividindo a complexidade da implementação pelos vários conceitos que a ele estão associados.
5.2. Trabalho futuro
O trabalho futuro passa por estudar novos modelos e formas de filtrar os valores obtidos pelo sistema de visão e sensorial, de forma a minimizar ao máximo o ruido presente nos mesmos, porque só assim os dados calculados e usados pelo agente serão os mais próximos da realidade possível. Contudo, não basta procurar novos modelos de filtragem, mas também explorar novas tecnologias para observar os dados da realidade, porque quanto mais precisas forem as observações, mais concreto será o resultado da filtragem e integração.
Num futuro próximo, as alterações introduzidas no projecto CAMBADA serão mais uma vez postas à prova quando a equipa participar no RoboCup 2014 que se realiza no Brasil de 19 a 25 de Julho do ano corrente, onde é esperada uma boa prestação da equipa.
63
Referências
1. Horakova, J.; Kelemen, J. (2011) “Some Impacts of Karel Capek's Concept of Robots as Artificial Organisms”, Emerging Trends in Engineering and Technology (ICETET), 2011 4th International Conference on, pp.49-54, IEEE , ISBN 978-1457718472.
2. Pereira, J. (2003) "Avaliação e Correção do Modelo Cinemáticio de Robôs Móveis Visando a Redução de Erros no Seguimento de Trajetórias", PhD thesis, Universidade do Estado de Santa Catarina.
3. Kitano, H. (1998) “RoboCup-97: Robot Soccer World Cup I”, Springer, ISBN 978-3540697893.
4. Kitano, H.; Asada, M.; Kuniyoshi, Y.; Noda, I.; Osawa, E. (1997) “RoboCup: The Robot World Cup – Initiative”, Proceedings of the first international conference on Autonomous agents", pp 340-347, Marina del Rey, CA, USA, ISBN 978-0897918770.
5. Veloso, Manuela, Pagello, Enrico, Kitano, Hiroaki (Eds.). (2000) “RoboCup-99: Robot Soccer World Cup III”, Springer, ISBN 978-3540453277.
6. MSL Technical Committee (2014) “Middle Size Robot League Rules and Regulations for 2014”, Version 17.1 20140123
7. Almeida, L.; Azevedo, P.; Bartolomeu, E.; Brito, B.; Cunha, P.; Figueiredo, P.; Fonseca, C.; Lima, R.; Marau, L.; Pedreiras, A.; Pereira, A.; Pinho, F.; Santos, L.; Lopes, S.; Vieira, J. (2004) “CAMBADA 2004: Team Description Paper”, CD proceedings of RoboCup Symposium.
8. Silva, V.; Marau, R.; Almeida, L.; Ferreira, J.; Calha, M.; Pedreiras, P.; Fonseca, J. (2005)
"Implementing a distributed sensing and actuation system: The CAMBADA robots case study", IEEE ETFA 2005, Catania, Italy.
9. Santos, F.; Currente, G.; Almeida, L.; Lau, N.; Lopes, L.; (2007) “Selfconfiguration of an Adaptive TDMA wireless communication protocol for teams of mobile robots”, Proc. of the 13th Portuguese Conference on Artificial Intelligence, EPIA 2007, Guimarães, Portugal.
64
10. Trifan, A.; Neves, A.; Cunha, B. (2013) “Evaluation of Color Spaces for User-supervised Color
Classification in Robotic Vision”, 17th International Conference on Image Processing, Computer Vision & Pattern Recognition, Las Vegas, Nevada, USA.
11. Bartolomeu, P.; Lopes, L.; Lau, N.; Pinho, A.; Almeida, L. (2005) "Integração de Informação na Equipa de Futebol Robótico CAMBADA", Electrónica e Telecomunicações, vol. 4 (4), Universidade de Aveiro.
12. Rostami, V.; Ebrahimijam, S.; Khajehpoor, P.; Mirzaei, P.; Yousefiazar,M. (2007) “Cooperative Multi Agent Soccer Robot Team”, International Journal of Electrical, Vol1, No.9, ISBN 978-4431669425.
13. Tech United Eindhoven (2013) “Tech United Eindhoven Team Description 2013 Middle Size League”, CD proceedings of RoboCup Symposium
14. Amma, T.; Beifu, J.; Bozic, Z.; Bui, M.; Gawora, F.; Haque, T.; Geihs, K.; Jakob, S.; Kirchner, D.; Kubitza, N.; Liebscher, K.; Opfer, S.; Saur, D.; Schaake, T.; Schluter, T.; Triller, S.; Witsch, A. (2013) “Carpe Noctem 2013”, CD proceedings of RoboCup Symposium
15. Aggarwal, J.; Cai, Q. (1999) “Human Motion Analysis: A Review”, Computer Vision and Image Understanding, vol. 73. Issue 3, pp. 428-440, ISSN 1077-3142
16. Moeslund, T.; Granum, E.; (2001) “A Survey of Computer Vision-Based Human Motion Capture”, Computer Vision and Image Understanding, vol. 81. Issue 3, pp. 231-268, ISSN 1077-3142,
17. Maybeck, P. (1979) “Stochastic Models, Estimation, and Control”, Mathematics In Science and Engineering, vol. 141. Academic Press
18. Isard, M.; Blake, A. (1998) “Condensation - Conditional Density Propagation of Visual Tracking”, International Journal on Computer Vision. Vol. 29, Nr.1, pp 5-28, Kluwer Academic Publishers
19. Welch, G.; Bishop, G. (1995) “An Introduction to Kalman Filter”, PhD thesis, University of North Carolina at Chapel Hill.
20. Arulampalam, M.; Maskell, S.; Gordon, N.; Clapp, T. (2002) “A Tutorial on Particle Filters for Online Nonlinear/Non-Gaussian Bayesian Tracking”, IEEE Transactions on Signal Processing, Vol. 50, N. 2, pp174-188, IEEE.
21. Kalman, R. (1960) "A New Approach to Linear Filtering and Prediction Problems", Journal of Basic Engineering, N. 82, Issue 1, pp 167 – 179, Wiley-IEEE Press.
65
22. Stratonovich, R. (1959) “On the theory of optimal non-linear filtering of random functions”, Theory of Probability and its Applications, N. 4, pp 223–225.
23. Candy, J. (2009) “Bayesian signal processing : classical, modern, and particle filtering methods”, Willey, ISBN 978-0470180945.
24. Haug, A. (2005). "A Tutorial on Bayesian Estimation and Tracking Techniques Applicable to Nonlinear and Non-Gaussian Processes", The MITRE Technical Report 05W0000004.
25. Doucet, A.; Godsill, S.; Andrieu, C.; (2000). "On sequential Monte Carlo sampling methods for Bayesian filtering", Statistics and Computing N. 10, Issue 3, pp 197-208, Kluwer Academic Publishers.
26. Gordon, N. J.; Salmond, D. J. and Smith, A. F. M. (1993). "Novel approach to nonlinear/non-Gaussian Bayesian state estimation". IEEE Radar and Signal Processing, Proceedings F. Vol. 140, Inssue 2, pp 107 – 113.
27. Ferreira, D. (2009) “Estatística Básica 2º Edição Revisada”. UFLA, ISBN 9788587692719.
28. Pinho. R, Tavares. J, Correia. M, (2005) “Seguimento de objectos em visão computacional usando métodos estocásticos” , Congreso de Métodos Numéricos en Ingeniería, SEMNI.