PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Welche Sensoren für mini-Segway



alphatier198
30.04.2010, 18:11
Hey Leute!
Also wir sind gerade dabei einen mini-segway zu bauen, der sich selbst ausbalanciert. Ich habe jetz bereits einen 3-Achsen Beschleunigungssensor(http://www.robotikhardware.de/download/Accelerometer_Beschleunigungssensor_MMA7260QT.pdf) . Habe jedoch gelesen, dass man noch einen zweiten beschleunigungssensor benötigt. Stimmt das, oder reicht dieser sensor aus um den Winkel zu bestimmen? Und wenn ja, wie mache ich dass, da der Sensor ja nur die Beschleunigung in eine bestimmte richtung misst.
Und wo soll ich den Sensor am klügsten platzieren bei meinem segway? Auf Achshöhe, so weit oben wie möglich oder dazwischen drin??

Vielen dank für eure Unterstützung!

Viele Grüße
Andi

Roboman93
03.05.2010, 12:28
ich habe mich zwar mit der technik noch nie beschäftigt, aber ich würde den beschleunigungssensor so weit oben wie möglich platieren. da hast du dann die höchsten geschwindigkeiten und die messungen werden genauer. wenn der sensor dann ein kippen meldet, kannst du mit den motoren gegensteuern. meiner meinung würde also ein sensor ausreichen, ich würde aber vll. jemand fragen, der sich auf dem gebiet besser auskennt, auch wegen der genauigkeit der sensoren.

mfg roboman

kehrblech
03.05.2010, 13:26
Hallo,

wenn du nur einen Beschleunigungssensor benutzt, hast du das Problem, dass du nicht zwischen der Erdbeschleunigung und der Beschleunigung des Robters unterscheiden kannst.
Um den Kippwinkel zu bestimmen, brauchst du die Erdbeschleunigung. Die Messachse des Beschleunigungssensors wird parallel zur Erdoberfläche angeordnet. Wenn der Roboter gerade steht, bemerkt der Sensor nichts von der Erdbeschleunigung. Sobald er aber kippt, wird diese vom Sensor gemessen. Damit lässt sich dann der Winkel berechnen.

Allerdings misst der Beschleunigungssenor natürlich auch eine Beschleunigung, wenn der Roboter fährt. Er kann diese Beschleunigungen nucht unterscheiden.

Theoretisch ist es möglich mit zwei Beschleunigungssensoren zu balancieren: Einer wird oben und einer unten am Roboter befestigt. Wenn der Roboter dann kippt, werden unterschiedliche Beschleunigungen gemessen, da der obere Sensor stärker bewegt wird. Durch das Rauschen des Sensors ist diese Methode allerdings fast unmöglich, der berechnete Winkel wird sehr ungenau.

Am besten funktioniert die Kombination von einem Beschleunigungssensor mit einem Gyro. Ein Gyro kann eine Winkelgeschwindigkeit messen. Damit kann dann zumindest näherungsweise der Winkel bestimmt werden.

Zur Platzierung des Sensor:
Ich bin mir nicht ganz sicher, aber ich glaube im Schwerpunkt des Roboters funktioniert es am besten.

Viele Grüße,
Jan

the_muck
04.05.2010, 09:48
Moin, ich verwende, wenn sie mal ankommen, Sensoren von Analog Device! Und zwar habe ich mich da etwas bei den Microkoptern umgeschaut. Eine Kombination aus Gyro und Beschleunigungssensor eben.
Ich habe sehr oft gelesen das die günstigen Sensoren mehr Probleme bereiten und viele dann auf die von AD umgestiegen sind...

Jepp
04.05.2010, 22:31
Hallo alphatier, ich quote mal kehrblechs post, will damit natürlich auch deine Fragen beantworten oder besser beantvermuten.

Aus den drei Beschleunigungswerten der orthogonalen Achsen lässt sich ein Vektor bilden.
Plump gesagt: Wohin DER zeigt "ist unten". Der Betrag dieses Vektors sollte dann bei ca. 1G (9.81m/s^2) liegen. Über Winkelfunktionen (sin cos) lässt sich der Winkel zur Erdoberfläche berechnen. blabla..
Liegt der Vektorbetrag über dem Wert der Erdbeschleunigung, erfährt der Sensor eine zusätzliche Beschleunigung durch z.B. eine Vorwärtsbeschleunigung.

Hallo,
wenn du nur einen Beschleunigungssensor benutzt, hast du das Problem, dass du nicht zwischen der Erdbeschleunigung und der Beschleunigung des Robters unterscheiden kannst.

Wie Kehrblech schreibt lässt es sich so nicht unterscheiden. Ich hätte grade aber auch keine Idee, ob ein zweiter Sensor (z.B. oben am Griff) da helfen könnte..
Hast du eine Quelle zu der zwei 3-Achsen Sensor Kombination?


Wenn der Roboter gerade steht, bemerkt der Sensor nichts von der Erdbeschleunigung. Sobald er aber kippt, wird diese vom Sensor gemessen. Damit lässt sich dann der Winkel berechnen.
Wenn der Segway gerade steht, misst im Optimalfall genau eine Achse die komplette Erdbeschleunigung. Beim Kippen des Sensors wird diese auf die anderen Achsen verteilt.


Allerdings misst der Beschleunigungssenor natürlich auch eine Beschleunigung, wenn der Roboter fährt. Er kann diese Beschleunigungen nucht unterscheiden.
[...]
Am besten funktioniert die Kombination von einem Beschleunigungssensor mit einem Gyro. Ein Gyro kann eine Winkelgeschwindigkeit messen. Damit kann dann zumindest näherungsweise der Winkel bestimmt werden.

Zur Platzierung des Sensor:
Ich bin mir nicht ganz sicher, aber ich glaube im Schwerpunkt des Roboters funktioniert es am besten.

Viele Grüße,
Jan
Das Kippen lässt sich im Stand sowie während der Fahrt (bei konstanter Geschwindigkeit) mit dem 3-Achsen Beschleunigungssensor messen. Für die "Kippwinkelmessung" während des Beschleunigungs- und des Bremsvorgangs wird ein Gyro benötigt. Ich habe keinen Schimmer, wie die "richtigen" Segway aufgebaut sind - das wäre mal ne Nachforschung wert.

Wenn ich es mir aussuchen könnte, würde ich den Sensor mittig, "im Unterbau", nahe der Fahrzeugachse unterbringen. Eine Montage am Haltegriff bzw. der Stange würde vermutlich die Datenaufbereitung durch die Zappelei des Fahrers noch weiter erschweren.

Gruß
ebenfalls Jan

RedBaron
05.05.2010, 10:12
Moin,

man kann nicht zwischen der Beschleunigung des Robotors und der Erbeschleunigung unterscheiden. Prinzipiell nicht. Das ist eine physikalisches Phänomen und kein Problem irgendwelcher Sensorschwächen (wer's nicht glaubt, möge sich sein altes Schulbuch schnappen oder warten bis es in der Schule d'rankommt O:)).
Auch zwei gelichartige Sensoren helfen nicht weiter. Die messen beide das gleiche (Begründung: s.o).

Auch ist es ziemlich egal, wo man den Sensor anbringt! Die diversen Hinweise auf Geschwindigkeit und Bewegung sind -mit Verlaub gesagt- schlichtweg Blödsinn. Einziges Argument ist: Suche ein Stelle, an der es möglichst wenig Fehlerinflüsse gibt. Beschleunigungssensoren sind extrem Vibrationsanfällig.

Ein Beschleunigungssensor (in der Konstallation SegWay) misst die Resultierende aus Erdbeschleunigung und Beschleunigung des Segways (genauer: die des Sensors). Immer! Ein Gyroskop misst Winkelgeschwindigkeiten. Beim Segway: die Geschwindigkeit mit der das Ding kippt. Differenzierung ergibt die Winkelbeschleunigung, Integration den Winkel (Winkellage). Das letze wäre eigentlich das, was man benötigt und ist vergleichbar mit dem, was der Beschleunigungssensor misst (Winkel zur Lotrechten). Aber: Gyroskope haben ekelhafte Langzeitprobleme (wobei "Langzeit" hier nur einige Sekunden sind). Eine Komonation aus beiden (Beschleunigungssensor und Gyroskop) wird i.d.R. zur Stabilisierung von Koptern (Heli- Quadro-, Okto-, ...) eingesetz und über Sensorfusion miteinader abgelichen (Kalmanfilter). Wen du hiernach googelst, wirst du viele Hinweise finden.

Ein Segway hat aber prinzipiell eine weitere Datenquelle: Radsensoren. Die geben einen guten Wert für die Beschleunigung des Systems. Mit einem bisschen Geometrie (Vektoraddition) kann man ziemlich präzise Aussagen über den Zustand des Systems erhalten.

Viele Grüße
Red Baron

Jepp
05.05.2010, 11:53
Auch ist es ziemlich egal, wo man den Sensor anbringt! Die diversen Hinweise auf Geschwindigkeit und Bewegung sind -mit Verlaub gesagt- schlichtweg Blödsinn. Einziges Argument ist: Suche ein Stelle, an der es möglichst wenig Fehlerinflüsse gibt. Beschleunigungssensoren sind extrem Vibrationsanfällig.
Du scheinst dich mit der Thematik auszukennen. Pauschal alle Hilfestellungen als Blödsinn abzustempeln finde ich da zu bequem. Das macht es dem Threadersteller nicht einfacher.
Die unterschiedlichen Positionen machen einen Unterschied. Je weiter entfernt der Sensor von der Achse des Unterbaus montiert wird, desto stärker wirken sich die Kippbewegungen (im Stillstand) des Fahrers aus. Das Optimum wäre eine Position, bei der eine der Sensorachsen exakt auf der Radachsen liegt.

RedBaron
05.05.2010, 13:36
Nun ja, eigentlich sollte derjenige, der eine Behauptung aufstellt eine Begründung abgeben und nicht derjenige, der sie nicht glaubt…. Ich probiere es trotzdem einmal, es zu erklären.

Ein Segway ist ein starrer Körper (jedenfalls alle die, die ich kenne). Die Teile zueinander haben eine fixe Lage, Zustandsänderung bzgl. der Umwelt (hier Erdoberfläche und Schwerefeld) werden gleichermaßen durchgeführt. D.h. konkret: alle Entfernen und Winkel im System selbst ändern sich nie. Bei Drehbewegungen (Kippen) sind Winkel, Winkelgeschwindigkeit und Winkelbeschleunigung bei allen Komponenten gleich. Zur Regelung des Segway wird eine Lageinformation benötigt, konkret der Winkel zur Lotrechten, der ausgeregelt werden soll (0° bei Stillstand, einige wenige Grad Vorlage bei Fahrten). Soviel zur Theorie.

Nehmen wir nun einmal ein reales System. Der Beschleunigungssensor sei wie folgt angebracht. Z-Achse: lotrecht, Y-Achse: parallel zur Radachse, X-Achse: die üblich Bewegungsrichtung. Der Sensor habe einen Abstand A von der Radachse. Eine andere Orientierung ändert nichts, auch keine "schiefe". Nur die Berechnungen werden schwieriger.

Was misst man?
Y: Ausschließlich die Zentripetalkraft bei Kurvenfahrten. Die ist unerheblich.
X: Zum einen die Beschleunigung des System. Die stört. Dann beim Kippen die Tangentialbeschleunigung des Sensors. Die ist abhängig von der Winkelgeschwindigkeit und dem Abstand. Sie wird umso größer, je weiter der Sensor von der Achse entfernt ist. Ich nehme an, das ist das, was du meinst. Im Prinzip misst man hier die Winkelbeschleunigung, versehen mit einem (proportional-) Faktor. Das Problem ist leider, dass man mit dem Messwert so gut wie nicht anfangen kann. Man braucht eine Lageinformation. Um aus der Beschleunigung auf den Winkel zu schließen, muss man zweimal integrieren. Das führt zu Langzeitinstabilitäten (Siehe Gyroskop, weiter oben).
Z: Hier misst man cos(Alpha)*g (Alpha=Winkel zur Lotrechten, g=Erdbeschleunigung). ArcCos(Alpha) liefert also einen Wert proportional zum Winkel und muss zur Steuerung herangezogen werden. Dies ist unabhängig vom Abstand des Sensors zur Drehachse. Ob der Sensor über der Achse oder weit daneben liegt, spielt auch keine Rolle.

alphatier198
05.05.2010, 20:59
Hey Leute!
Vielen dank für das großartige Feedback! Ich entnehme euren Anmerkungen, dass ich mit dem genannten Beschleunigungssensor auf keinen grünen Zwei kommen werde. Also brauche ich ein Gyroskopsensor +beschleunigungssensor in Z richtung als Referenz für die Winkelmessung. An den Roten Baron ein besonderes Dankeschön für die ausführlichen Erläuterungen. @the_muck, ich werde mich mal um Sensoren von AD bemühen und dann werde ich posten wie sich die Dinge entwickeln.
Ich wünsche noch einen schönen Abend!
Viele Grüße
Andi

the_muck
06.05.2010, 09:26
Mal zu der ganzen Theorie, vorweg ich habe noch keinen Segway gebaut bin aber an so einem Kugelroboter dran.

Das Problem was ich bei bei den "0°" sehe ist, das ich doch Erstmal den Schwerpunkt des Systems finden muss. Oder besser der Segway sich ihn beim einschalten selber sucht... der ist ja je nach last unterschiedlich, Lotrechte muss da doch Erstmal gar nichts sein....

schau mal hier:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=52338

er hat vieles sehr gut Dokumentiert

Jepp
06.05.2010, 12:00
Nun ja, eigentlich sollte derjenige, der eine Behauptung aufstellt eine Begründung abgeben und nicht derjenige, der sie nicht glaubt…. Ich probiere es trotzdem einmal, es zu erklären.
[...]
Dies ist unabhängig vom Abstand des Sensors zur Drehachse. Ob der Sensor über der Achse oder weit daneben liegt, spielt auch keine Rolle.
Lass es mich so erklären:
Ich finde es angebrachter die Zitat-Funktion zu verwenden wenn man mit Behauptungen nicht einverstanden ist. Mitglieder haben sich Gedanken gemacht um, so gut sie es können (oder wollen), zu helfen. Diese dann per "Vor mir ist alles blöd!" zu beurteilen finde ich nicht in Ordnung. Wir sind zum diskutieren hier und ich bin froh Falschaussagen meinerseits direkt (per Zitat) korrigiert zu bekommen. Ich kann zu Behauptung/Begründung nichts schreiben, da ich meine Aussagen als ausreichend begründet ansehe. Vielleicht meinst du meine Behauptungen ja auch gar nicht -> Zitate helfen.

Lass uns darüber nun nicht streiten.

Zum Thema: Von mir ebenfalls vielen Dank für die ausführliche Erklärung. Ich möchte zum Punkt der Sensorpositionierung verdeutlichen wie groß die Unterschiede bei den Sensormesswerten schon bei kurzen Distanzen zur Rotationsachse sind. Ich habe eben einen aus LEGO Testaufbau zusammengeschustert um das zu verdeutlichen.

http://www.urlaubamsteinhudermeer.de/zeugz/roboternetz/20100506/achse.jpghttp://www.urlaubamsteinhudermeer.de/zeugz/roboternetz/20100506/griff.jpg

Einen Clip, indem der Aufbau zu sehen ist habe ich hochgeladen:
http://www.youtube.com/watch?v=BYz42ZXLyFY

Auf meinem Phidget ist ein Analog Devices ADXL330 verbaut. Ich bin mit dem Sensor zufrieden, über mehr als "Herumtesten" bin ich aber nicht hinaus. Ein geplanter Einsatz ist hier beschrieben:
https://www.roboternetz.de/phpBB2/viewtopic.php?p=491608#491608

http://www.urlaubamsteinhudermeer.de/zeugz/roboternetz/20100506/IMG_2436.jpg


Mal zu der ganzen Theorie, vorweg ich habe noch keinen Segway gebaut bin aber an so einem Kugelroboter dran.
[...]
schau mal hier:
https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=52338
er hat vieles sehr gut Dokumentiert
Vielen Dank für den Link! Das ist eine Abendlektüre wert. ;)

RedBaron
07.05.2010, 09:44
Moin,

hast recht, werde mich bessern. Versprochen!

@Alle: Wer sich mit der Segway-Technik beschäftigen möchte, sollte sich mal nach dem Begriff "invertiertes Pendel" (inverted pendulum) umschauen. Da findet man (und frau) viel über Theorie und Praxis. Mit vielen Formeln und auch ohne, mit Zeichnungen, auch ohne, mit Erläuterungen zu Regelmechanismen (PID, Fuzzy, neuronale Netze) und natürlich auch ohne. Und eine ganze Menge Projekte, sowohl Hobby als auch Profi.

Dann hat die Zeitschrift ELEKTOR vor kurzem ein Selbstbauprojekt eines Segway in einer Artikelserie beschrieben. So ein echter, zum draufstellen und fahren. Da kann man vielleicht den diesbezüglichen Wissensdurst stillen.

@Jepp: Ich habe mir dein Video angeschaut. Schöne Messvorrichtung im Hintergrund, auf dem Monitor passiert ja einiges. Vielleicht kannst du dazu mal etwas schreiben.

Ich habe nach dem Datenblatt des Sensor gegoogelt. Da ist genau beschrieben, wie man es machen muss.

Zu deiner Messung: Das sich die Messwerte ändern, wenn man den Sensor weiter von der Achse entfernt anbringt ist gut zu erkennen. Das ist jedoch weder verwunderlich noch jemals bestritten worden. Der Trugschluss ist: das was du misst, ist nicht das, was du meinst zu messen. Ich will versuchen, es zu erklären.

Auf dem Video kann ich es nicht so genau erkennen. Es scheint folgendes zu sein: Z-Achse nach oben, X-Achse parallel zur Drehachse, X-Achse aus Sicht des Videobetrachters nach links. Richtig?

Voraussetzung 2: Wir wollen ein invertiertes Pendel ausbalancieren. Dazu braucht man im Endeffekt eine Lageinformation, Winkel zur Lotrechten oder den Winkel zur Horizontalen. Auch richtig (!), oder?

Nun zu deinem Versuch. Der Sensor ist in Verlängerung der Achse montiert. Wenn sich das das System in Ruhe befindet misst man wie viel von der Erdbeschleunigung bei den Achsen ankommt (Stichwort: Kräftezerlegung). Man misst irgendetwas das proportional dem Sinus bzw. dem Cosinus des Winkels ist. Ob man Sinus oder Cosinus nehmen muss, hängt davon ab, welchen Winkel man betrachtet und um welche Achse es sich handelt.

Wenn man jetzt den Sensor nach außen verlagert, ändert sich an den Messungen nichts (Stichwort: Ähnlichkeitsabbildung, Stufenwinkel und weiterer so’n Krams).

Jetzt kommt Bewegung ins Spiel. Seit Newton weiß man, das Bewegungsänderung mit Kräften verbunden sind. Hier eine Drehbewegung. Der Sensor bewegt sich auf einer Kreisbahn. Die Z-Achse zeigt in radialer Richtung. Die merkt jetzt zusätzlich die Zentripetalbeschleunigung (bzw. Kraft, die Gegenkraft zur besser bekannten Zentrifugalkraft). Diese Zusatzkraft ist abhängig von der Winkel-*Geschwindigkeit*. Die Y-Achse zeigt in tangentiale Richtung. Der Sensor merkt eine zusätzliche Bahn-*Beschleunigung*. Diese ist ein Maß dafür, wie heftig du an dem Dreharm ruckelst und schiebst, unabhängig davon, in welcher Lage er sich befindet. Diese Beschleunigung kann um einiges höher sein als die resultierende Komponente der Erdbeschleunigung. Das zeigen deine Messungen sehr deutlich. Aus den Messungen lassen sich aber wegen der Überlagerung der verschieden Effekte nichts wirklich Gescheites mehr herausrechnen. Weder die Winkellage noch die Bahnbeschleunigung, noch sonst etwas.

Warum kann man dann überhaupt einen Segway ausregeln? Hier kommt der 2. Trugschluss. Deine Messvorrichtung spiegelt nicht die realen Gegebenheiten wieder. Ein invertiertes Pendel steht im ausgeregelten zustand lotrecht und –ganz wichtig- im wesentlichen still. Da "ruckelt" und schiebt nahezu nichts. Also sind im wesentlichen die Bedingungen der Ruhesituation erfüllt. So ein Ding kippt auch nicht schnell. Durch den hoch gelagerten Schwerpunkt (= große Entfernung zur Drehachse) besitzt das Gerät ein großes Trägheitsmoment. Die Erdbeschleunigung, die das kippen bewirkt, wirkt nur über einen sehr kleinen Hebel (= kleines Drehmoment). D.h. das Ding kippt zunächst auch nur sehr langsam, die o.g. Bahnbeschleunigung wird nur wenig Effekt haben. Das alles ändert sich natürlich, wenn‘s mal richtig kippt. Aber dann muss man auch nicht mehr messen, sondern "volle Pulle" gegensteuern. Dann limitieren eher die Kraftmomente der Motoren.

Vom Prinzip her könnte man sowohl die Komponente de Erdbeschleunigung in Y-Richtung als auch die der Z-Achse benutzen. Die sind eigentlich gleichwertig. Die Y-Achse merkt aber neben der Erdbeschleunigung auch noch die Beschleunigung des Gesamtsystems. Die Z-Achse jedoch nicht. Deshalb ist sie besser geeignet.

Die Geschwindigkeit des Segway erreicht man übrigens dadurch, dass man das Ding nicht senkrecht stellt, sondern gegen eine leichte Abweichung regelt. Das gibt dann eine Vorlage. Der Ausregelung bewirkt dann den Vortrieb bzw. das Abbremsen.

Ich wünsche ein schönes Wochenende

PS: Die ganzen Rechtschreib- und Grammatikfehler sind nicht beabsichtigt.
PPS: Wie geht das mit dem "zitieren"?

alphatier198
09.05.2010, 08:24
Hey Leute!
An alle nochmal anderen vielen Dank! Ich habe dann auch gleich noch eine andrere Frage. Ich hab jetz mal nach nem Gyroskop geschaut, aber es ist schwer herauszufinden, welche Parameter dabei für meinen Zweck wichtig sind. Könntet ihr mir ein Modell empfehlen oder sagen was wichtig und was nicht so wichtig ist.
Viele Grüße
Andi

the_muck
09.05.2010, 10:45
http://www.elektor.de/jahrgang/2009/juli-047-august/elektorwheelie.988384.lynkx?tab=1

Die Sensoren

Gyroskop Invensense IDG300 (IDG500)
Beschleuningungssensor Analog Devices ADXL 320

Jepp
10.05.2010, 16:32
@Jepp: Ich habe mir dein Video angeschaut. Schöne Messvorrichtung im Hintergrund, auf dem Monitor passiert ja einiges. Vielleicht kannst du dazu mal etwas schreiben.

Die Anwendung zeichnet die Graphen für x-, y- und z-Achse des Sensors.
Die GUI fügt alle 20ms den aktuell in der Logik abgelegten Messerwert hinzu. Die Aktualisierung dieses Messwerts wird durch den Sensor bzw. dessen ausgelösten Ereignis veranlasst. Die Empfindlichkeit des Sensors hatte ich auf 0.01G gesetzt und entspricht damit der Ereignisauslösung bei Beschleunigungsdifferenz von 0.098m/s^2. Beim Setzen eines neuen Messwerts wird das arithmetische Mittel mit dem vorherigen Wert genommen.


Zu deiner Messung: Das sich die Messwerte ändern, wenn man den Sensor weiter von der Achse entfernt anbringt ist gut zu erkennen. Das ist jedoch weder verwunderlich noch jemals bestritten worden. Der Trugschluss ist: das was du misst, ist nicht das, was du meinst zu messen.
Ich hatte deine Aussage
"Auch ist es ziemlich egal, wo man den Sensor anbringt! Die diversen Hinweise auf Geschwindigkeit und Bewegung sind -mit Verlaub gesagt- schlichtweg Blödsinn. Einziges Argument ist: Suche ein Stelle, an der es möglichst wenig Fehlerinflüsse gibt. Beschleunigungssensoren sind extrem Vibrationsanfällig."
aufgenommen und mit dem LEGO-Aufbau versucht zu verdeutlichen, warum die Wahl der Sensorposition im Bezug auf die Verarbeitung der Messwerte bedacht gewählt werden sollte.
Zusammenhänge gemessener Beschleunigungswerte hast du ja bereits ausführlich erklärt.


Auf dem Video kann ich es nicht so genau erkennen. Es scheint folgendes zu sein: Z-Achse nach oben, X-Achse parallel zur Drehachse, X-Achse aus Sicht des Videobetrachters nach links. Richtig?
Die Achsen des Phidgets haben den Index 0, 1, 2. Gewöhnlich färbt man diese Rot, Grün, Blau (entsprechend eines rechtshändigen dreidimensionalen kartesischen Koordinatensystems) x=rot, y=grün, z=blau. Statt grün habe ich schwarz für die y-Achse gewählt, da diese bei der gewählten Ausrichtung der Platine den "wichtigsten" Graph darstellt und im Video besser zu erkennen ist.

Rot (x) läge damit parallel zur Lenkstange (positiv zeigt nach oben).
Schwarz (y) ist parallel zur, natürlich absolut ebenen, Fahrbahn, Zeigt (im Stillstand und bei aufrechtem Segway) quasi in die Fahrtrichtung.
Blau (z) ist parallel zu Radachse.


PPS: Wie geht das mit dem "zitieren"?
http://www.urlaubamsteinhudermeer.de/zeugz/roboternetz/20100510/quote.jpg
Schreibe manuell die Anfangs- und End-Tags oder klicke oben rechts bei dem zu zitierenden Post den Zitatknopf.

Rabenauge
10.05.2010, 17:01
Apropos LEGO: man kann auch damit einen funktionierenden Mini-Segway bauen, habe ich selber schon gehabt (in meinem Falle mit RCX bestückt), indem man _nur_ zwei Lichtsensoren benutzt und gar nix weiter.
Mit einem alleine hab ichs nicht hinbekommen, aber es geht völlig ohne Beschleunigungssensoren, Gyroskope und hochkomplizierte Dinge auch.
Gibts auch bei youtube ein paar Beispiele, und irgendwo in den Tiefen von Google auch einen kompletten Bericht drüber, an dem ich mich auch orientiert hatte.

RedBaron
17.05.2010, 16:01
indem man _nur_ zwei Lichtsensoren benutzt und gar nix weiter


Ja, die kenne ich auch. Die Steuerung dieser Systeme erfolgt durch eine Messung der Stärke des reflektierten Lichts. Diese ist abhängig vom Abstand von der reflektierenden Fläche.

Bei zwei Sensoren erfolgt im Prinzip eine Differenzmessung. Das klappt gut, solange sich das Refektionsvermögen der Unterlage nicht ändert. Das System kommt auch mit einer mäßigen Änderung klar. Wenn sich die Oberflächenbeschaffenheit jedoch abrupt ändert, so dass beide Sensoren unterschiedliche Flächen beleuchten, kippt das Ding. Auf einem Schachbrett z.B. würde Gerät vielleicht noch stehen, sich aber nie bewegen können.

freerik
27.05.2010, 11:27
Im Grunde reichen auch zwei Beschleunigungssensoren mit unterschiedlicher Höhe um ein Kippen von Bremsen und Beschleunigen zu unterscheiden.

http://dl.dropbox.com/u/2312310/segway.png

Beim Beschleunigen und Bremsen ohne Kippen würde auf beide Sensoren die gleiche Kraft wirken.
Durch die unterschiedliche Einbauhöhe wird beim Kippen, also bei einem Moment um die Radachse von beiden Sensoren eine unterschiedliche Kraft registriert. Der obere Sensor wird dabei stärker beschleunigt.
Um ein Kippen zu verhindern muss also nur die Differenz beider Sensoren zu Null geregelt werden, das ginge wahrscheinlich sogar analog.

RedBaron
28.05.2010, 04:42
... zu Null geregelt werden, das ginge wahrscheinlich sogar analog.... nicht ganz!

Im rechten Bild könnte man die Bedingung F1=F2 auch herstellen, indem man entsprechend nach vorn beschleunigt. "entsprechend" heißt: Das System beschnleunigt so, dass es in der Vorlage-Haltung verharrt. Dann ist ebenfalls F1=F2. Das geht so lange gut, bis die höchst mögliche Geschwindigkeit erreicht ist. Dann fällt das Gerät nach vorn um.

Ich befürchte, dass bei einer Regelung F1=F2 der oben genannte Fall der wahrscheinlichere ist. F1=F2 ist dann richtig, wenn der Auflagepunkt (Radkontakt zur Unterlage) fix ist und als Drehpunkt gelten kann. Das ist aber nicht der Fall. Durch die Regelung wird im wesentlichen um den Schwerpunkt (Drehachse=Schwerpunkt) gedreht. Da gelten dann andere Gesetze.

freerik
28.05.2010, 11:07
Im rechten Bild könnte man die Bedingung F1=F2 auch herstellen, indem man entsprechend nach vorn beschleunigt. "entsprechend" heißt: Das System beschnleunigt so, dass es in der Vorlage-Haltung verharrt. Dann ist ebenfalls F1=F2. Das geht so lange gut, bis die höchst mögliche Geschwindigkeit erreicht ist. Dann fällt das Gerät nach vorn um.
[...]

Das ist ein Grenzfall, den Du da beschreibst. Ob er eintritt oder nicht hängt von der Umsetzung der Regelung ab, also wie stark das Kippen durch Beschleunigung kompensiert werden soll. Es ist natürlich sinnvoll, das Stärker beschleunigt wird, als tatsächlich nötig ist um ein Gleichgewicht herzustellen. (Natürlich kann das Ganze System dann anfangen zu schwingen, kommt auf die Eigenschaften des Regelkreises an. Das steht aber auf einem anderen Blatt.) Aber auch in der Situation Vorlage-Kräftegleichgewicht, die Du beschreibst, könnten die Sensoren ihre eigene gekippte Lage erkennen. (Auslenkung der Schwerkraft/Beschleunigungskraft in Verbindung mit der Vorgabe zur Beschleunigung des Fahrzeugs bzw. einfach erhöhte Messwerte da sich zu Erdbeschleunigung noch vektoriell die Fahrzeugbeschleunigung addiert)

Mir ging es nur um die Aussage, dass zwei Beschleunigungssensoren prinzipiell in der Lage sind ein Kippen von sonstigen Fahrsituationen zu unterscheiden. Die Umsetzung mag nicht ganz so einfach ist wie ich anfangs dachte.

RedBaron
04.06.2010, 19:39
Das ist ein Grenzfall, den Du da beschreibst.

Ich befürchte, da hast du unrecht. Begründung (anschaulich):

Stell dir vor, das System ist fast im ausgependelten Zustand. Das ist der Zustand, in dem sich das System am häufigsten befinden sollte. Aber eben nur fast ausgeregelt, der Fahrer hat gehustet O:). Nehmen wir an, durch das Husten hat sich eine leichte Vorlage ergeben. Jetzt wirkt die Schwerkraft. Sie bewirkt ein Drehmoment, dass die Vorlage verstärkt. Drehpunkt dieser Kippbewegung ist der Auflagepunkt des Rades auf den Boden.

Das Kippen ist eine beschleunigte Drehbewegung. F1 und F2 sind proportional zur Radialbeschleunigung. Die ist proportional zum Radius. Der Abstand von F1 zur Drehachse ist größer als der von F2, also wird F1 größer werden als F2.

Die Beschleunigungsdifferenz willst du zum Ausregeln des Systems nutzen (wenn ich das richtig verstanden habe). Die Regelung wird FB ins Spiel bringen. FB bewirkt zunächst, dass das Rad nach vorn beschleunigt wird. FB bewirkt jetzt auch ein Drehmoment. Dieses Drehmoment wirkt aber auf eine andere Drehache, nämlich den Schwerpunkt. Das System richtet sich dadurch auf. Gleichzeitig wird durch die Aufrichtung die Differenz F1/F2 kleiner. Und zwar genau solange, bis durch die Beschleunigung ((!) nicht Geschwindigkeit) das Rades das Drehmoment durch die Erdbeschleunigung genau aufgehoben wird. Dann ist deine Regelgröße (Kraftdifferenz) nahezu 0. Leider kann man nicht endlos weiter Beschleunigen => Bums.

Natürlich kann man das mit einem kräftigen Überschwingen hinkriegen ... 'ne Schaukel zu bauen, geht einfacher. :-b

Begründung (ein bisschen physikalischer):
Wenn man die Differenz der beiden Beschleunigungen bildet, wird durch die Differenzbildung die Komponente der Edrbeschleunigung eliminiert. Die ist für beide Messpunkte gleich. Das ist an sich eine gute Idee.

Was man dann genau misst, ist der Wert der Drehbeschleunigung. ..Und eine Drehbeschleunigung ungleich 0 heißt Kippen... Soweit ist der Ansatz auch korrekt. Nur kann dieser Zustand neben bei FB = 0 (ausbalanciert) auch mit allen(!) anderen FB erreicht werden. Deshalb ist FB = 0 die Ausnahme und nicht der ausgeregelte Vortrieb.

freerik
04.06.2010, 20:25
[...]Wenn man die Differenz der beiden Beschleunigungen bildet, wird durch die Differenzbildung die Komponente der Edrbeschleunigung eliminiert. Die ist für beide Messpunkte gleich. Das ist an sich eine gute Idee.

Durch die Differenzbildung wird jede translatorische Beschleunigung eliminiert, deshalb ist das tatsächliche FB egal.


Was man dann genau misst, ist der Wert der Drehbeschleunigung. ..Und eine Drehbeschleunigung ungleich 0 heißt Kippen... Soweit ist der Ansatz auch korrekt. Nur kann dieser Zustand neben bei FB = 0 (ausbalanciert) auch mit allen(!) anderen FB erreicht werden. Deshalb ist FB = 0 die Ausnahme und nicht der ausgeregelte Vortrieb.

Das bestreite ich ja auch nicht. Wie ich bereits schrieb:

Mir ging es nur um die Aussage, dass zwei Beschleunigungssensoren prinzipiell in der Lage sind ein Kippen von sonstigen Fahrsituationen zu unterscheiden. Die Umsetzung mag nicht ganz so einfach sein wie ich anfangs dachte.