Difference between revisions of "Trajectory from gyro/accellerometer/compas"
From RoboWiki
Line 39: | Line 39: | ||
<pre> | <pre> | ||
angle = radians(yaw - yawOffset); | angle = radians(yaw - yawOffset); | ||
− | + | // d - vzdialenosť, ktorú robot prejde | |
double d = 0.9; | double d = 0.9; | ||
+ | // deltaX, deltaZ - posun robota | ||
double deltaZ = cos(angle) * d; | double deltaZ = cos(angle) * d; | ||
double deltaX = sin(angle) * d; | double deltaX = sin(angle) * d; | ||
+ | // xx, yy = pozícia robota | ||
xx += deltaX; | xx += deltaX; | ||
yy -= deltaZ; | yy -= deltaZ; | ||
</pre> | </pre> |
Revision as of 17:14, 25 June 2013
Contents
Zadanie
Trajectory from gyro/accellerometer/compas. Requirement: must use this part: 9DOF IMU, use any real robot.
O súčiastke
V projekte sme mali využiť súčiastku 9DOF IMU a následne zo získaných dát vykresliť prejdenú trajektóriu robota.
Na doske 9DOF IMU sa nachádzajú nasledujúce komponenty:
1. etapa
V prvej etape sme sa snažili prepojiť súčiastku s počítačom a získať z nej potrebné dáta. Postupným testovaním a dolaďovaním sme získali hodnoty:
- Yaw - udáva uhol zabočenia
- Pitch - udáva uhol stúpania / klesania
- Roll - udáva uhol výkyvu doprava / doľava
Nami získané údaje vyzerali takto:
2. etapa
Následne sme vykreslili dáta získané v prvej etape pomocou OpenGL:
3. etapa
V tretej etape sme chceli dosiahnuť vykreslenie trajektórie podľa získaného Yaw (uhol zabočenia). S využitím polárnych súradníc a automatického pohybu vpred sme nakoniec dokázali vykresliť trajektóriu v rovine.
angle = radians(yaw - yawOffset); // d - vzdialenosť, ktorú robot prejde double d = 0.9; // deltaX, deltaZ - posun robota double deltaZ = cos(angle) * d; double deltaX = sin(angle) * d; // xx, yy = pozícia robota xx += deltaX; yy -= deltaZ;