IMU: Unterschied zwischen den Versionen

Aus www.wiki.ardumower.de
Wechseln zu: Navigation, Suche
(Compass sensor)
(Calibration (SVN version))
Zeile 77: Zeile 77:
 
File: Gy80_com_calibration.png
 
File: Gy80_com_calibration.png
 
</gallery>
 
</gallery>
 +
 +
===Test===
 +
Zum Testen der Kalibrierung Modul (Bauteilseite nach oben) mit einer Seite gegen eine Tischkante halten und nicht bewegen. Den Yaw-Wert notieren (Beispiel: -95,45). Dann das Modul um 180 Grad drehen und wieder gegen die Tischkante halten. Jetzt sollte der Yaw-Wert um 180 Grad entfernt liegen (Beispiel: -95,45 + 180 = 84,55). Diesen Test mit den beiden anderen Seiten des Moduls ebenfalls durchführen.
 +
 +
<gallery>
 +
File: Gy80_calibration_check.png
 +
</gallery>
 +
 +
... Modul mit einer Seite gegen Tischkante gehalten ...
 +
 +
calls=30    yaw=-95.56    pitch=0.02    roll=2.52    com=-95.91    com180=84.09    gyroZ=0.00
 +
calls=30    yaw=-95.48    pitch=-0.11    roll=2.33    com=-95.81    com180=84.19    gyroZ=-0.01
 +
calls=30    yaw=-95.42    pitch=0.03    roll=2.42    com=-95.65    com180=84.35    gyroZ=-0.00
 +
calls=30    yaw=-95.45    pitch=-0.21    roll=2.38    com=-95.35    com180=84.65    gyroZ=-0.00
 +
 +
... Modul mit derselben Seite um 180 Grad gedreht gegen Tischkante gehalten...
 +
 +
calls=30    yaw=85.06    pitch=-2.50    roll=0.04    com=84.91    com180=-95.09    gyroZ=-0.03
 +
calls=30    yaw=84.90    pitch=-2.59    roll=0.05    com=84.63    com180=-95.37    gyroZ=-0.02
 +
calls=30    yaw=85.19    pitch=-2.55    roll=0.01    com=84.73    com180=-95.27    gyroZ=-0.01
 +
calls=30    yaw=84.98    pitch=-2.73    roll=0.02    com=84.85    com180=-95.15    gyroZ=-0.01
 +
 +
Falls die Abweichung mehr als ein Grad beträgt, Kalibrierung von Beschleunigungssensor und Kompaß erneut durchführen!

Version vom 12. September 2014, 09:30 Uhr

Abstract

An IMU (Intertial Measurement Unit) is key component of an intertial navigation system. We use it to:

  • detect if the robot is in tilt orientation
  • keep the robot on track for the 'lane-by-lane' mowing pattern

Acceleration sensor

An acceleration sensor measures earth gravity force (m*s^2) in all 3 robot axes (x/y/z) allowing you to calculate the orientation towards earth center of the robot (Roll, Pitch). However, it cannot detect movement around Yaw - this requires a gyro.

Gyro

A gyro measure rotation speed (degree/second) in all 3 robot axes (Rol, Pitch, Yaw). This allows us to correct the robot if it is driving 'off-course' due to wet conditions or slope.

Compass

If a robot drives on a wet lawn, you'll notice quickly that it will not drive straight forward, but instead tends to drive into the direction of the slope. A compass can solve this problem and the robot will drive again straight forward.

However, a compass has a problem: if tilting the robot, the compass measurements (x,y,z) relate to the tilted robot. So, you need to correct them using knowing the tilt angles. This requires the use of the accerlation sensor (x,y).

Sensor fusion

To eliminate the issues of all sensor, they are merged to compute the course (degree) and pitch/roll angles.

We use a complementary filter to fusion all sensor values.

IMU module GY-80

  • Acceleration sensor: ADXL345B
  • Compass sensor: HMC5883L
  • Gyro: L3G4200D
  • Pressure sensor: BMP085 (not used here)

Assembly

This photo shows how the IMU module is placed in driving position (the black arrow shows the driving position). The shown tube was a prototype. Actually, you can now place the IMU module directly in the robot.

Calibration (v0.9.3)

Acceleration sensor

Compass sensor

Calibration (SVN version)

Acceleration sensor

Jede der 6 Seiten des Moduls einmal exakt hochkant hinstellen, nicht bewegen und den Punkt zur Kalibrierung der nächsten Seite auswählen:

  • In der seriellen Konsole "IMU acc calibration next side" oder
  • In der pfodApp "Settings->IMU->acc calibration next side"

Während der Messung einer Seite das Modul nicht bewegen! Die Messung wird begleitet von einem kurzen Ton.

Diesen Schritt für alle 6 Seiten wiederholen. Wenn alle 6 Seiten kalibriert wurden, ertönt ein kurze Melodie.

Compass sensor

Modul außer Reichweite von magnetischen oder eisenhaltigen Quellen bringen! Kompaß-Kalibrierung starten:

  • In der seriellen Konsole "IMU com calibration start/stop" oder
  • In der pfodApp "Settings->IMU->com calibration start/stop"

Jede der 6 Seiten des Moduls einmal Richtung Norden halten und das Modul solange kippen bis sich das Minimum und Maximum der Achsen nicht mehr ändert (kein Ton mehr ausgegeben wird):

Test

Zum Testen der Kalibrierung Modul (Bauteilseite nach oben) mit einer Seite gegen eine Tischkante halten und nicht bewegen. Den Yaw-Wert notieren (Beispiel: -95,45). Dann das Modul um 180 Grad drehen und wieder gegen die Tischkante halten. Jetzt sollte der Yaw-Wert um 180 Grad entfernt liegen (Beispiel: -95,45 + 180 = 84,55). Diesen Test mit den beiden anderen Seiten des Moduls ebenfalls durchführen.

... Modul mit einer Seite gegen Tischkante gehalten ...

calls=30    yaw=-95.56    pitch=0.02    roll=2.52    com=-95.91    com180=84.09    gyroZ=0.00
calls=30    yaw=-95.48    pitch=-0.11    roll=2.33    com=-95.81    com180=84.19    gyroZ=-0.01
calls=30    yaw=-95.42    pitch=0.03    roll=2.42    com=-95.65    com180=84.35    gyroZ=-0.00
calls=30    yaw=-95.45    pitch=-0.21    roll=2.38    com=-95.35    com180=84.65    gyroZ=-0.00

... Modul mit derselben Seite um 180 Grad gedreht gegen Tischkante gehalten...

calls=30    yaw=85.06    pitch=-2.50    roll=0.04    com=84.91    com180=-95.09    gyroZ=-0.03
calls=30    yaw=84.90    pitch=-2.59    roll=0.05    com=84.63    com180=-95.37    gyroZ=-0.02
calls=30    yaw=85.19    pitch=-2.55    roll=0.01    com=84.73    com180=-95.27    gyroZ=-0.01
calls=30    yaw=84.98    pitch=-2.73    roll=0.02    com=84.85    com180=-95.15    gyroZ=-0.01

Falls die Abweichung mehr als ein Grad beträgt, Kalibrierung von Beschleunigungssensor und Kompaß erneut durchführen!