Is dit ongeveer wat je wilt bereiken?
Ik heb geen uitgebreide en specifieke ervaring met IMU's, en heb zelf ook geen ervaring met een motorfiets. Maar wat je wilt bereiken zal niet zozeer moeilijk zijn w.b.t. het maken ervan, maar het betrouwbaar laten werken is vooral een uitdaging.
Ten eerste is dit een vrij ideale opstelling: in stilstand, en redelijk zuivere en vloeiende bewegingen (voor zover mijn hand dat toelaat). Dan krijg je ook redelijk mooie, zuivere resultaten uit je accelerometer. Daarnaast kan ik de richtingsassen ook toepassen zoals ze in de IMU zijn ingericht, dus geen complexe berekeningen om een eventuele verdraaiing t.o.v. 'de normaal' te compenseren.
Op een motor is dat zeker niet het geval. Er zijn legio factoren die dit signaal gaan verstoren, maar de belangrijkste zullen (oscillerende) trillingen, schokken, en middelpuntvliedende krachten zijn.
Om even een voorbeeldje te geven:
Hier zien we het signaal van twee van de assen van de accelerometer in de IMU. Aangezien ze beiden in rust rond de nulwaarde hangen, zal dit niet de Z-as zijn ('verticaal'), want daar meet je in rust 1G, de gravitatiekracht. Dus blauw is de voor/achter as, en oranje is de links/rechts as.
Als eerste heb ik de sensor gekanteld zoals in het filmpje, maar dan tot -90° tot 90°. We zien een redelijk geleidende lijn tot ongeveer ±16000. Dat is ongeveer 1G, en dat is logisch, want op de uitersten werkt er 1G aan gravitatiekracht op die as. Je ziet wel iets meer rimpelingen op de blauwe as, maar het mag eigenlijk geen naam hebben.
Vervolgens tik ik een paar keer met het breadboard op de tafel. We zien dan behoorlijke uitschieters op de voor/achter as. Waarschijnlijk omdat ik het breadboard niet perfect horizontaal op de tafel smijt, maar de voorkant iets eerder de tafel raakt dan de achterkant, of vice versa. Je ziet hier enorm hoge, maar smalle pieken. Ook op de oranje as (waarschijnlijk was ik ook niet links/rechts loepzuiver), met uitschieters tot wel 10000. Dat soort pieken kan je zeker verwachten als je een keertje een kuiltje in de weg tegenkomt, en waarschijnlijk nog aanzienlijk hogere waardes ook.
De trillingen in de zijwaartse richting zullen meevallen zolang je rechtdoor rijdt (lichtgroen hierboven), maar zodra je in een bocht zit zal dat veranderen. Ik kantelde het bordje ongeveer 20° heen en weer in het roze deel, en je ziet daar al dat de pieken hoger zijn dan het maximale waarde in het groene deel. Er is wel een verband tussen de kanteling die je maakt met het voertuig en de gemiddelde waarde van de oranje grafiek van, zeg, de laatste 10 metingen, maar dat zal geen direct verband zijn.
Tot slot zal vooral de middelpuntvliedende kracht een behoorlijk lastige factor zijn (die kan ik niet simpel voor je simuleren). Een IMU is in principe een gewichtje dat hangt aan veren, en de waarde die je meet is de mate van compressie/uitrekking van die veertjes. Net zoals je in een auto in de bocht naar buiten wordt geslingerd, zal ook het gewichtje in de IMU naar de buitenkant van de worden geslingerd: het gewicht wilt immers rechtdoor, terwijl de motor links-/rechtsaf beweegt. Dus op snelheid en in een bocht zal er een factor middelpuntvliedende kracht bijkomen die juist tegenovergesteld is gericht aan de richting waarin je beweegt.
Ik kan je niet zeggen hoe groot deze factoren zijn. De eerstvolgende logische stap om te maken nu is data verzamelen. Zet zo'n IMU op je M5stack (of op een Arduino), zet dat ding vervolgens op je motor, en verzamel data (ik zou hiervoor ook een SD-kaart module gebruiken, want in het geheugen van een Arduino ga je maar weinig kunnen opslaan). Ga uitzoeken hoe sterk de trillingen zijn, wat er gebeurt met de waardes in een bocht, enzovoorts. Zodra je die data hebt, kan je een programma schrijven waarin je alle trillingen en storingsfactoren weg filtert.
Edit: Ik zie nu op je profiel dat je expert bent met UAV's. Waarschijnlijk is bovenstaande dan redelijk gesneden koek voor je en had ik het niet in zulk groot detail hoeven omschrijven. Ik laat het wel staan voor de volledigheid.
[
Voor 96% gewijzigd door
naarden 4ever op 17-07-2024 16:49
]