Auswahl eines Beschleunigungsmessers für die abgeleitete Abrechnung

11

Ich habe noch nie einen Beschleunigungsmesser verwendet, aber mir ist bewusst, dass sie mit I2C-, SPI- und Analogausgängen ausgestattet sind. Wenn ich ein I2c- oder SPI-Gerät verwende, werden sich aufgrund der Kommunikationszeit Fehler ansammeln?

Ist es wahrscheinlich, dass ich durch die schnelle Abtastung eines analogen Signals eine genauere abgeleitete Position erhalte als mit I2C?

Wird das wahr sein für

  1. Ein Roboter, der sich in einem Raum bewegt
  2. Ein Roboter, der sich in einem Gelände im Freien bewegt und wahrscheinlich einen Hang hinunterrutscht und rollt.

Ich habe auch keinen Sinn für Gs. Ich versuchte, meine Hand schnell zu bewegen, während mein Telefon mit einem Andro-Sensor in der Faust lief, und sah, dass die Messwerte mit 20 m / s 2 gesättigt waren . Welches G kann ich von meinem Roboter erwarten, wenn er von einem anderen fetten, sich bewegenden Bot getroffen oder von einem schnell gehenden Menschen gestoßen wird?

Lord Loh.
quelle

Antworten:

5

Das Erhöhen der Abtastfrequenz des Sensors verbessert weder seine Genauigkeit noch Präzision. Dies ist eine Funktion des Sensors, die Sie normalerweise nicht ändern können. Wenn Sie versuchen , Ihre Position zu schätzen , indem allein Beschleunigungen zu integrieren, Sie auf jeden Fall werden Fehler im Laufe der Zeit ansammeln, denn jeder Sensor laut ist. Wenn Sie die Beschleunigungsmesser zur Bestimmung von Position oder Geschwindigkeit verwenden möchten, sollten Sie sie mit einem anderen Sensor kombinieren, der tatsächlich die Position (auch mit geringerer Genauigkeit) oder Geschwindigkeit misst. Anschließend können Sie diese verschiedenen Sensorsignale mit einem Kalman-Filter kombinieren , um eine vernünftige Schätzung zu erhalten, wo Sie sich befinden und wie schnell Sie sich bewegen.

Berücksichtigen Sie unter Berücksichtigung der G-Kräfte, dass 1 G 9,81 m / s ^ 2 beträgt, was mir im Zusammenhang mit kleinen Hobby-Robotern, zumindest für Innenroboter, sehr erscheint. Outdoor könnte eine andere Geschichte sein, je nachdem, wie stark Ihr Motor ist. Eine Sättigung bei 20 m / s ^ 2 sollte ausreichen.

Daniel Eberts
quelle
4

Denken Sie an die Geschwindigkeit Ihres Regelkreises. Eine typische schnelle Regelkreisgeschwindigkeit beträgt 1 kHz. Einige Roboter verwenden eine schnellere, andere eine langsamere. Normalerweise ist Ihre Regelkreisgeschwindigkeit höher als Sie wirklich brauchen.

Jeder Steuerrahmen dauert also 1000us. Innerhalb dieses Kontrollrahmens müssen Sie:

  • Probieren Sie Ihre Sensoren aus
  • Führen Sie die Kontrollberechnungen durch
  • Senden Sie die neuen Ausgänge an die Motoren

Solange Sie dies alles bequem innerhalb des Zeitrahmens erledigen können, haben Sie keine Probleme. Wie lange dauert es, den Beschleunigungsmesser abzulesen? Wenn es sich um ein 3-Achsen-Gerät mit 400 kbit / s I2C handelt, dauert das Lesen der Daten möglicherweise etwa 160 us. Damit haben Sie 840us Zeit, die Berechnung durchzuführen und die Motoren zu aktualisieren. Sogar ein 8-Bit-PIC kann das schaffen.


Über G-Kräfte. Während eines Aufpralls können sie überraschend hoch sein. Zum Beispiel, wie viel Schlag würde es Ihrer Meinung nach brauchen, um eine Festplatte zu beschädigen? Wahrscheinlich nicht so viel. Nun, eine Festplatte, von der ich kürzlich gesagt hatte, dass sie für eine maximale Beschleunigung von 75 G ausgelegt ist. Erwarten Sie also, dass zwei kollidierende Roboter mindestens mehrere G produzieren. Eine genaue Schätzung ist unmöglich, da dies stark von der mechanischen Konstruktion der Roboter abhängt. Wenn beide wie Snooker-Bälle vollständig fest sind, können Sie mit sehr hohen Beschleunigungen rechnen. Wenn sie eine Art flexible Hülle haben, wird dies die Beschleunigung erheblich reduzieren. Die Frage ist jedoch, ob Sie den tatsächlichen Wert der Beschleunigung während eines Aufpralls wirklich kennen müssen.

Raketenmagnet
quelle
1

Aus Ihrer Frage geht hervor, dass Sie versuchen, Ihre Position von den Beschleunigungsmessern zu ermitteln. Schauen Sie sich an, welche Art von FehlernSie erwarten vor, und dann vielleicht noch einmal überdenken. Die Positionsschätzung weist sehr große Fehler auf, hauptsächlich aufgrund der Unsicherheit in der Ausrichtung. Die Anwendung in Schiffen, Flugzeugen, Raketen usw. verwendet sehr teure hochpräzise IMUs mit Navigationsqualität. Die Latenz, auf die sich Ihre Frage beschränkt, ist weniger ein Problem. Relevanter ist die Synchronisation zwischen Ihren anderen Sensoren (zB Gyros). Beschleunigungsmesser werden normalerweise nicht zur Positionsschätzung verwendet (es gibt einige Fälle, in denen dies hilfreich ist, sondern nur für kurze Zeiträume), sondern zur Kompensation der Kreiseldrift bei der Orientierungsschätzung. Sie können sie auch direkt verwenden, um Ihre Ausrichtung zu schätzen, aber dann wird Ihre Schätzung durch dynamische Beschleunigungen gestört.

Jakob
quelle