Ja, sieht danach aus.
MfG
Ich habe jetzt das Accelerometer so weit im Programm eingebunden.
Bevor ich jetzt wieder selber das Rad erfinde, folgende Frage:
Hat schon jemand einen Algorithmus gesichtet, der die Werte eines Lagesensors auf 6 Beine, bei einem Hexapod - als Offset - berechnet? Oder was ähnliches?
Ich habe die Werte so weit verarbeitet, dass ich in jeder Achse 0 bis +/-15 erhalte.
Also 0 wäre waagerecht, -15 (max). zu der einen Seite, +15 (max.) zu der andern Seite gekippt.
Jetzt muss ich, je nachdem wie der Sensor aus der Waagerechten gekippt wird, verschiedene Werte berechnen, die sich zu den einzelnen Beinen addieren lassen, so dass der Hexapod-Körper die Waagerechte in X und Y wieder einnimmt.
MfG
"so etwas ähnliches": ja.
Allerdings für den mpu6050, der aber für die Lage-Berechnung ebenfalls seine Accelerometer benutzt.
Da sie als raw-Werte sehr verrauscht sind, wird ein Kalmanfilter verwendet:
https://github.com/TKJElectronics/KalmanFilter
https://github.com/TKJElectronics/Ka...50/MPU6050.ino
(Anm.: Da dein Sensor sehr "ungewöhnlich" ist, er keine Gyros zur Stabilisierung per Sensorfusion hat und ich keine Arduino-Libs dafür kenne, würde ich dir empfehlen, ebenfalls auf den mpu6050 zu wechseln, er ist sehr preiswert erhältlich.)
Neee, ich bleib dabei. Der Sensor ist nicht schlecht. Funktioniert ja auch. Wozu jetzt einen andern nehmen? Ich habe ein Vermögen dafür ausgegeben (Conrad eben).
Danke, trotzdem für die Quellen!
Ist mir aber zu kompliziert. Es muss einfacher funktionieren.
Der Sensor wäre vom Prinzip auch egal, ich würde dieselben Wertebereiche für weitere Berechnungen verwenden.
MfG
roll und pitch hört sich für mich nach Flugzeug an
Wozu ich da einen Arkustangens brauche, weiß ich noch nicht. Ist doch: atan() ??
Ich habe mal eine Skizze angefertigt und mir ein paar Gedanken dazu gemacht.
Ich denke, es gibt dafür eine einfache Lösung:
Wenn eine Seite 1cm angehoben ist, muss auf der gegenüberliegenden Seite 1cm dazu addiert werden.
Erhalte ich auf einer Seite positive Werte, muss ich die gegenüberliegend auf die beiden Beine auf den Ecken addieren (oder subtrahieren, je nach dem), mit einem Wert, der dann die Differenz ausgleicht und auf dem Gemessenen basiert. Das müsste für X- und Y-Achse gemacht werden.
Ein Grund, warum das nicht funktionieren würde, ist mir nicht eingefallen.
Die Position in der Z-Achse der verbleibenden 2 Beine müssten aus den dann nebenliegenden Beinen errechnet werden (eines links und eines rechts).
Für die weitere Betrachtung kommen sicher noch andere Aspekte hinzu. So könnte auch eine Seite 2 Beine abgesenkt und die gegenüberliegende Seite 2 Beine angehoben werden.
Da wird es situationsbedingt verschiedene Ansätze geben, bzw. Korrekturen, die angewendet werden müssen, wenn bestimmte Fälle eintreten.
Es könnte berechnet werden, welcher Winkel benötigt wird, um den Körper einer Seite eine bestimmte Strecke anzuheben (weil die Beinglieder ja einer Kreisbahn folgen).
Aber es kann eigentlich auch ein Regelkreis verwendet werden, um den Körper schrittweise anzuheben bis die Waagerechte wieder hergestellt ist. Würde ich so meinen.
Nur das Verhältnis zwischen den Beinen, die angehoben oder abgesenkt werden, müsste dann ermittelt werden. Das müsste sich aus den X- und Y-Werten ergeben.
Letzteres würde mir sogar noch besser gefallen. Wenn nicht zu langsam.
MfG
Geändert von Moppi (21.05.2019 um 11:20 Uhr)
Lesezeichen