Een gyroscoop is een sensor die de hoeksnelheid van de rotatie van een apparaat ten opzichte van drie assen meet. In tegenstelling tot een accelerometer, die lineaire versnelling registreert, bepaalt een gyroscoop de rotatie en oriëntatie in de ruimte. Volgens gegevens van STMicroelectronics, 2024, bieden moderne MEMS-gyroscopen een nauwkeurigheid tot 0,01 graad per seconde, waardoor ze kunnen worden gebruikt in navigatie, beeldstabilisatie en AR-toepassingen.
Belangrijkste punten
Gyroscoop in een smartphone is een micro-elektromechanische sensor (MEMS) die de hoeksnelheid van de rotatie van het apparaat meet. In tegenstelling tot mechanische gyroscopen in de luchtvaart, is een MEMS-gyroscoop een siliciumchip van 2×2×1 mm die op het moederbord van de telefoon is gemonteerd.
In moderne smartphones worden uitsluitend MEMS-gyroscopen van het vibratietype gebruikt — tuning-fork en ring-design. Ze hebben geen draaiende delen, wat een levensduur tot 10 jaar continu gebruik garandeert. Toonaangevende fabrikanten — Bosch Sensortec (BMI-serie), STMicroelectronics (L3G, A3G-serie) en InvenSense (ICM-serie).
Een typische MEMS-gyroscoop heeft een meetbereik van ±125 tot ±2000 °/s, een bemonsteringsfrequentie tot 32 kHz en een stroomverbruik van 3–6 mA. Volgens Bosch Sensortec BMI160 (2023) is het ruisniveau 0,007 °/s/√Hz bij een bereik van ±125 °/s — voldoende voor nauwkeurige rotatievolging.
| Parameter | Waarde |
|---|---|
| Technologie | MEMS (vibratie) |
| Bereik | ±125 — ±2000 °/s |
| Stroomverbruik | 3–6 mA |
| Afmeting | 2×2×1 mm |
| Ruis | 0,007 °/s/√Hz |
Het werkingsprincipe van een MEMS-gyroscoop is gebaseerd op het Coriolis-effect. In de chip bevindt zich een siliciummassa die met een bepaalde frequentie (15–30 kHz) oscilleert. Wanneer het apparaat draait, werkt de Corioliskracht, evenredig met de hoeksnelheid, op de oscillerende massa.
De belangrijkste onderdelen van een MEMS-gyroscoop zijn de aandrijfelektroden die oscillaties creëren en de gevoelige elektroden die de afwijking registreren. Volgens het onderzoek „MEMS Gyroscopes for Consumer Electronics“ (IEEE, 2023) omvat een typische constructie 4–8 kamstructuren die symmetrisch rond de centrale massa zijn geplaatst.
Moderne gyroscopen verzenden gegevens via de I²C- of SPI-bus. De smartphonecontroller ontvangt driefasige hoeksnelheidswaarden — voor respectievelijk de X-as (Pitch), Y-as (Roll) en Z-as (Yaw). De ingebouwde ADC zet het capacitieve signaal om in digitale waarden met een resolutie van 16–24 bits. De verversingsfrequentie in gamemodus bereikt 400 Hz.
Accelerometer meet lineaire versnelling — de snelheidsverandering van een object langs de assen. Gyroscoop meet rotatie — de snelheid van hoekverandering. Deze sensoren zijn complementair: een accelerometer geeft oriëntatie ten opzichte van de zwaartekrachtvector, maar onderscheidt helling niet van lineaire beweging. Een gyroscoop volgt rotaties onafhankelijk van de zwaartekracht, maar is onderhevig aan drif.
In praktische toepassingen wordt Sensor Fusion gebruikt — een algoritme dat gegevens van de gyroscoop, accelerometer en magnetometer combineert. Het Mahony-filter of complementaire filter berekent oriëntatiequaternionen met een nauwkeurigheid tot 2 graden in statische toestand en 5 graden in dynamische toestand. Android biedt een virtuele sensor TYPE_ROTATION_VECTOR op framework-niveau.
val rotationVector = sensorManager
.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR)
val callback = object : SensorEventListener {
override fun onSensorChanged(event: SensorEvent) {
val quat = FloatArray(4)
SensorManager.getQuaternionFromVector(quat, event.values)
// quat[0..3] — oriëntatiequaternion
}
}
Android biedt twee soorten gyroscoopsensoren: TYPE_GYROSCOPE (gekalibreerd, zonder drif) en TYPE_GYROSCOPE_UNCALIBRATED (ruwe gegevens met drifschatting). Toegang wordt verkregen via SensorManager.getDefaultSensor(). Gegevens worden geretourneerd in rad/s — radialen per seconde.
Registratie van een luisteraar voor de gyroscoop vereist het opgeven van vertraging: SENSOR_DELAY_GAME (20 ms) voor games, SENSOR_DELAY_UI (67 ms) voor de interface, SENSOR_DELAY_FASTEST (0 ms) voor maximale frequentie. Zonder annulering van de registratie in onPause() raakt de batterij in 2–3 uur leeg.
class GyroActivity : AppCompatActivity() {
private lateinit var sensorManager: SensorManager
private var gyroscope: Sensor? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
sensorManager = getSystemService(SENSOR_SERVICE) as SensorManager
gyroscope = sensorManager.getDefaultSensor(
Sensor.TYPE_GYROSCOPE
)
}
override fun onResume() {
super.onResume()
gyroscope?.let { sensor ->
sensorManager.registerListener(
this, sensor, SensorManager.SENSOR_DELAY_GAME
)
}
}
}
Ruwe gegevens uit event.values[0..2] komen overeen met de hoeksnelheid voor respectievelijk X, Y en Z. Om de rotatiehoek te verkrijgen, moet de hoeksnelheid in de tijd worden geïntegreerd. Bij een frequentie van 50 Hz is de integratiefout ongeveer 1 graad per minuut — acceptabel voor games, maar onvoldoende voor navigatie zonder correctie.
Nuldrif (bias drift) — het grootste probleem van MEMS-gyroscopen. Zelfs in rust kan de sensor een niet-nul hoeksnelheid (0,1–2 °/s) weergeven. Oorzaak — temperatuurveranderingen en mechanische spanningen in de siliciumstructuur. Fabrikanten compenseren dit effect op hardwareniveau.
Het Android-systeem kalibreert de gyroscoop automatisch bij eerste inschakeling of bij temperatuurverandering. Het kalibratieproces duurt 10–30 seconden en vereist geen gebruikersinterventie — leg de telefoon gewoon op een stilstaand oppervlak. De methode calibrate() is niet op alle apparaten beschikbaar. Voor geforceerde kalibratie wordt TYPE_GYROSCOPE_UNCALIBRATED gebruikt met het verkrijgen van bias offset via event.values[3..5].
private fun handleUncalibratedGyro(event: SensorEvent) {
val rawX = event.values[0] // rad/s zonder kalibratie
val biasX = event.values[3] // X-offset
val calibratedX = rawX - biasX
applyCalibrationToFusion(
calibratedX,
event.values[1] - event.values[4],
event.values[2] - event.values[5]
)
}
De gyroscoop wordt in tientallen scenario's gebruikt — van camerastabilisatie tot VR-headsets Google Cardboard. ARKit van Apple en ARCore van Google gebruiken de gyroscoop als primaire sensor voor het volgen van hoofddraaiing. Volgens Apple ARKit Technical Specification (2024) biedt de gyroscoop samen met de accelerometer een volgnauwkeurigheid tot 0,5 graden.
Buiten de consumentenelektronica worden gyroscopen gebruikt in robotica en drones. Mobiele robots op basis van Android Things en ROS (Robot Operating System) gebruiken MEMS-gyroscopen voor bewegingsstabilisatie en odometrie. Volgens IEEE-onderzoek „MEMS IMU in Robotics“ (2024) is de positioneringsnauwkeurigheid van een mobiele robot met gyroscoop 3–5 keer hoger dan met alleen wielodometrie, vooral bij beweging op gladde oppervlakken. In consumentendrones handhaaft de gyroscoop samen met de barometer de vlieghoogte met een nauwkeurigheid van 0,5 meter bij wind tot 10 m/s.
Voor AR-toepassingen is de gyroscoop de primaire sensor die de positie van virtuele objecten ten opzichte van de echte wereld bepaalt. Google ARCore gebruikt de gyroscoop om de beweging van het apparaat te volgen met een frequentie van 1000 Hz (via interne bemonstering, onafhankelijk van de API-frequentie). ARKit van Apple bereikt een positioneringsnauwkeurigheid van 0,5 graden tijdens beweging, voldoende voor het plaatsen van virtuele meubels of gamepersonages op een echt podium.
De nieuwe generatie 6-assige IMU (InvenSense ICM-42688, 2024) combineert gyroscoop en accelerometer in één chip met een verbruik van 0,45 mA in de energiezuinige modus. De ontwikkeling van gradiometers en atoomgyroscopen voor mobiele apparaten blijft voorlopig in het stadium van laboratoriumprototypes. Industriële monsters van MEMS-gyroscopen met een nauwkeurigheid van 0,001 °/s worden verwacht tegen 2028.
Veelgestelde vragen
De gyroscoop bepaalt de rotatie en oriëntatie van het apparaat in de ruimte. Zonder hem zijn VR-modus, automatische schermrotatie bij kantelen, videostabilisatie en AR-toepassingen onmogelijk. Moderne telefoons kunnen niet werken zonder gyroscoop.
Accelerometer meet lineaire versnelling (beweging en helling ten opzichte van zwaartekracht). Gyroscoop meet hoeksnelheid (rotatie). Een accelerometer kan rotatie van het apparaat niet onderscheiden van lineaire verplaatsing — de gyroscoop lost dit probleem op.
In Android wordt automatische kalibratie gebruikt. Voor handmatige kalibratie downloadt u apps zoals „GPS Status & Toolbox“ — deze stellen voor de telefoon op een vlakke ondergrond te leggen en de kalibratie uit te voeren via TYPE_GYROSCOPE_UNCALIBRATED.
Dit is nuldrif — een natuurlijke eigenschap van MEMS-sensoren. Zelfs dure gyroscopen hebben een offset van 0,1–2 °/s in rust. Kalibratie trekt deze offset eraf. Als de drif groter is dan 5 °/s — is de sensor defect.
Gebruik SensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE) en registreer een SensorEventListener. Gegevens komen binnen in rad/s over drie assen. Gebruik voor games SENSOR_DELAY_GAME (20 ms), voor achtergrond — SENSOR_DELAY_UI (67 ms).
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook