Hallo, Ich habe folgendes Projekt: Ein optischer Distanzsensor wird von einem Motor um die eigene Achse gedreht. Man kann nicht davon ausgehen das die Drehgeschwindigkeit konstant ist. Der Motor-Encoder gibt pro Umdrehung 15 Impulse aus. Einen je 24°. Der Distanzsensor misst 2000 mal pro Umdrehung den Abstand zu seiner Umwelt. Jeder Distanzmesswert und Impuls vom Encoder hat einen Zeitstempel. Wie kann ich jedem Distanz-Messwert einen Winkel zuordnen? Die naheliegende Lösung ist für jeden der 15 Abschnitte eine durchschnittliche Winkelgeschwindigkeit auszurechen. Danach kann über die Zeit ein Winkel für den Messwert berechnet werden. Fallen euch noch andere/bessere/elegantere Lösungen ein?
:
Verschoben durch Moderator
Da du nur keine absolute Winkelinformation hast, brauchst du zu allererst mal eine Referenz wo null Grad ist. Ab da kannst du rein inkrementell den Winkel berechnen (solange du keine Impulse verlierst). Ansonsten kommt es sehr stark auf die Rotationsgeschwindigkeit und die Dynamik des Sytems an. Normalerweise wird man eine Messgröße mit einem festen Raster (so schnell wie möglich) erfassen und den anderen Wert passend zu diesem Wert/Zeitstempel interpolieren. Du wirst aber immer Fehler machen bei Beschleunigungen. Zumindest bei einer linearen Interpolation. Man kann das natürlich noch beliebig komplex erweitern...
Hallo Frank, vielen dank für die schnelle Antwort. Eine Null-Referenz habe ich. Einen weiteren Impulsgeber der nur einmal pro Umdrehung eine Impuls an einer festen Stelle ausgibt.
Gehen tut das prinzipiell. Nur wie gesagt wirst du, wenn du nicht eine absolut konstante Geschwindigkeit hast, Fehler machen. 15 Striche pro Umdrehung ist halt echt wenig wenn du eigentlich >2000 brauchst.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.