Pri rôznych pokusoch implementácií v testovacom režime TestFramework v projekte bola identifikovaná výmena osí X a Y od plánu projektu a bežnej konvencie označovania osí – X horizontálna os, Y vertikálna os. Táto výmena osí v základných výpočtoch projektu nebola plánovaná a značne sťažovala prácu pri návrhu základných pohybov a funkcií pre pohyb a orientáciu hráča Jima v priestore.
Analýzou fungovania samotného vnímania polohy a prepočítavania vzdialeností zo základných údajov od servera sme dostali predstavu o správnom modeli týchto výpočtov. Náčrt osí a uhlov použitých pri výpočtoch sa nachádza aj na tímovej wiki.
Schéma č.1.: popis osí a uhlov v prostredí simulácie [2]
Vychádzajúc z tejto schémy a rozmiestnenia uhlov phí a theta sme skontrolovali výpočty týchto osí v triede Vector3D nasledovne:
\RoboCupLibrary\src\sk\fiit\robocup\library\geometry\Vector3D.java
Pričom bolo zistené, že uhly phi a theta sú vymenené vo výpočte. Pre porovnanie kód tímu UT Austin Villa:
Theta:
Phi:
Obdobne sú zamenené aj osi v ďalšej funkcii na výpočet karteziánskych súradníc:
UT Austin Villa:
Ďalšie nezrovnalosti predpokladáme vo výpočtoch rotácií vektorov UT Austin:
Náš projekt:
Na základe porovnania nášho kódu a kódu UT Austin Villa sme dospeli k poznaniu, že vo výpočtoch uhlov a karteziánskych súradníc došlo k výmene súradníc X,Y a k zámene uhlov Phi a Theta. Identifikovaná zámena je v triede Vector3D. Podobný kód je zverejnený od UT Austin Villa v triede vecposition. Do budúcna sa navrhuje zapracovať tieto zmeny a otestovať ich vplyv na fungovanie ďalších funkcií programu.
Trieda Vector3D a jej výpočty sa používajú v nasledovných triedach, ktoré jej zmena ovplyvní:
bin/sk/fiit/jim/agent/models/AgentPositionCalculator.class
bin/sk/fiit/jim/agent/models/AgentRotationCalculator.class
bin/sk/fiit/jim/agent/models/AgentModel.class
bin/sk/fiit/jim/agent/models/AgentModelTest.class
bin/sk/fiit/jim/agent/models/BodyPart.class
bin/sk/fiit/jim/agent/models/DistanceHelper.class
bin/sk/fiit/jim/agent/models/FixedObject.class
bin/sk/fiit/jim/agent/models/PositionChangeGuardian.class
bin/sk/fiit/jim/agent/models/TacticalInfo.class
a množstvo ďalších.
[1] UT Austin Villa team:
https://github.com/LARG/utaustinvilla3d/blob/master/math/vecposition.cc
[2] FIIT Robotický futbal wiki:
http://team19-18.studenti.fiit.stuba.sk/wiki/doku.php?id=2.jim:poloha:sfericke_suradnice_a_vektory