Wenn der Bot auf einer ebenen, waagrechten Fläche läuft, braucht er den Sensor nicht unbedingt. Schließlich sind alle Beine gleich lang, wenn man die drei, auf denen er aktuell steht gleich ansteuert, wird er automatisch waagrecht sein. Selbst einen schaukelnden oder schwingenden Gank könnte man auf diese Weise ohne Sensor hinkriegen. Wo der Sensor aber nützlich sein könnte:Wollte den Chip eigentlich nur dazu nehmen um den Bot Horizontal auszurichten.
Auf einer schiefen Ebene ist der Bot automatisch parallel zur schiefen Ebene, was auch sinnvoll ist. Allerdings könnte es für ihn nützlich sein (z.B. für die Orientierung) zu wissen, ob er gerade hinauf oder herunter läuft. Das kann er dann nur mit dem Sensor merken.
Auf einer steilen schiefen Ebene könnte man noch in andere Probleme kommen, die unteren Beine sind da stärker belastet weil das Gewicht dort hin drückt. Wenn die Konstruktion schon an der Grenze ist, könnte vielleicht ein Bein überlastet werden. Mit dem Sensor könnte man das erkennen und eventuell das Laufmuster anpassen (untere Beine weiter abspreizen, obere mehr unter dem Körper, insgesamt kleinere Schritte).
Unebenes Gelände wäre durch den Sensor erkennbar weil der Bot dort häufig schief steht. Auch in diesem Fall könnte man den Schrittmodus variieren (Beine höher heben, damit man nicht hängen bleribt).
Und man kann den Sensor auch als Fehlererkennung nutzen. Ist in der Mechanik etwas gebrochen, so dass ein Fuß nicht mehr richtig zum Boden kommt, dann wird der Bot schief hängen, wenn er versucht sich darauf zu stellen.
Zur Auswertung:
Ich denke, dass der Sensor ziemlich genau ist, viel genauer als man es braucht. man braucht es nicht genauer auszuwerten als nötig. Zum Filtern von schnell aufeinenderfolgenden Meßwerten hat sich die Methode der gleitenden Mittelwertbildung besonders bewährt. Wenn ich es noch richtig im Kopf habe rechnet sich das so:
Mittelwert := (Mittelwert/n)*(n-1)+Meßwert
Die Rechnung wird bei jedem neuen Meßwert durchlaufen. Die Zahl n ist frei wählbar, je größer desto stärker die glättende Wirkung, allerdings auch die Verzögerung, mit der eine schnelle Änderung den Mittelwert beeinflusst. Wenn n eine Zweierpotenz ist, ist es besonders einfach zu implementieren (das ist möglicherweise in Basic egal, in Assembler spielt es eine Rolle).
Lesezeichen