Hallo, ich möchte einen balancierenden Roboter bauen. Der Roboter soll auf 2 Rädern stehen, die natürlich seperat angesteuert werden. Somit kann der Roboter nur noch nach vorne oder hinten fallen. Um dies zu messen würde ich einen Kreiselsensor (Gyroskop) verwenden. Die Regelung würde ich dann über einen Atmega8 machen wollen. Nun bin ich mir bei 2 Sachen noch unschlüssig. Es wäre doch am einfachsten die Räder getrennt über eine H-Brücke anzusteuern? Reicht der Kreiselsensor aus um das Kippen zu bemerken? Oder muss ich einen Beschleunigungssensor nehmen? Danke im Voraus. Gruß Chris
Es gibt im Netz genug Info über Segway-Nachbau zu finden, ich denke da wirst Du die besten Antworten dazu erhalten. Auch hier gibt es was dazu zu finden.
Beim Segway verwendet man ja beide Sensoren, da man ja beschleunigen möchte wenn man sich weiter vorlegt. Daher kommt ja meine Frage ob der Kreiselsensor reicht. Ich habe mir ja auch schon ein paar sachen durchgelesen, auch über das inverse Pendel, aber bin mir halt nicht sicher.
Du musst ja nicht beide Räder getrennt ansteuern um zu balancieren - ausser du willst noch steuern um Kurven zu fahren. Gibt unzählige solche Projekte im Netz, Google mal wieder.
> Beim Segway verwendet man ja beide Sensoren, da man ja > beschleunigen möchte wenn man sich weiter vorlegt. Das weißt aber nur du. Dem Segway ist das egal. Der versucht seinen Fahrer im Gleichgewicht zu halten, indem er sich selber unter den Fahrer zu platzieren versucht. Stehst du ruhig und aufrecht auf einem Segway, dann macht der genau das, was du auch von deinem Roboter haben willst: Er balanziert dich aus.
Hallo, es werden 2 Sensoren benötigt ein Gyro und ein Beschleunigungssensor. Mit einen Gyro kann ich nicht die Lage erkennen. Natürlich könnte man mit dem Gyro ein Integral bilden das läuft aber mit der Zeit weg. Gruß Uli
Hallo Chris, Chris_Specht schrieb: > Um dies zu messen würde > ich einen Kreiselsensor (Gyroskop) verwenden. Tja das ist so eine Sache. Grundsätzlich kann ich dir verraten, dass ein Gyro nicht ausreichend ist. Du benötigst immmer die Kombination aus Beschleunigungssensor und Gyroskop. Diese Kombination ist auch als 'IMU' bekannt. Geeignete Kombinationen gibt es u.A. auf Sparkfun.de bzw. deutschen Vertretern. Zur 'Datenverarbeitung'. Die ist leider alles andere als trivial. Fester Bestandteil ist zur korrekten Lageerkennung (das komplexeste am ganzen Segway) der sog. Kalmanfilter. http://en.wikipedia.org/wiki/Kalman_filter Leider ist's nicht einfach als es aussieht. Du hast einige Grundproblematiken: 1. Gyroskope sind zu unempfindlich, rauschen brutal und verändern ihre Werte je nach Temperatur. Auf Grund dieser 'Mängel' brauchst du noch einen Beschleunigungssensor. Der misst die Erdbeschleunigung mit - daraus kann man auch einen Winkel errechenen. Zur Unterstüzung nimmt man aus dem Gyroskop die Integration über die Zeit dazu. 2. Auch der Beschleunigungssensor rauscht ein bisschen und driftet über der Temperatur - aber das Hauptproblem ist, dass zwar die gemessenen Werte (Winkel) sehr gut sind, aber die Beschleunigung (die Ausgleichsbewegung des Roboters) die gewünschte zu messende Erdbeschleunigung total verfälschen. Der Kalmanfilter bekommt das alles glücklicherweise in den Griff. Sowohl das Rauschen, als auch das Driften wird gut wegkompensiert. Ist der Kalmanfilter gut angepasst kommen da zuverlässige Winkel raus. Hier is eine Implemention mit Quellcode zu finden (http://diydrones.com/profiles/blogs/705844:BlogPost:23188) Hier allerdings für noch einige Achsen mehr (Modellflug). Sowas brauchst du dringendst auch. Dein nächstes Problem ist der Regelungsalgorithmus. Auch das ist full overdose Mathe: http://de.wikipedia.org/wiki/Regler#PID-Regler Um den kommt man leider auch nicht herum. Es ist deutlich komplexer als man annimmt, dass so ein Segway erstmal steht geschweige denn in die Richtung fährt die man gerne hätte. Es sollte definitiv nicht dein erstes Projekt mit AVR sein - ansonsten wird das ein ziemlich harter Brocken. Du brauchst in jedem Fall 2 H-Brücken - ergo für jeden Motor eine H-Brücke. Kann es sein, dass du aus dem Allgäu kommst ?!
Hallo, nein ich komme nicht aus dem Allgäu. Das ist nicht mein erstes Projekt mit AVRs bzw. Regelungstechnik. Die Frage mit den Sensoren kam mir, da ich schon beide Varianten gesehen habe. Sprich eine mit einem Kreiselsensor und Beschleunigungssensor und auch eine nur mit einem Kreiselsensor. Das mit dem Kalmanfilter oder Komplementärfilter habe ich auch schon alles gelesen. Mir ist auch klar, dass dieses Projekt nicht innerhalb eines Tages realisierbar ist. Gut dann werde ich mich mal nach passenden Sensoren umschauen. Danke schonmal für die Ratschläge!! Gruß
Chris_Specht schrieb: > Die > Frage mit den Sensoren kam mir, da ich schon beide Varianten gesehen > habe. Sprich eine mit einem Kreiselsensor und Beschleunigungssensor und > auch eine nur mit einem Kreiselsensor. Das kann ich mir beim besten Willen nicht vorstellen. Ich habe mich im Rahmen einiger Studienarbeiten sehr intensiv mit Gyroskopen und Beschleunigungssensoren und deren Kombinationen im Hinsicht auch eine IMU beschäftigt. Ich habe dabei auch die Integration des Gryroskops über die Zeit zu filtern und zu verbessern. Es ist trotzdem nicht ausreichend. Das Integral rennt dir sofort weg. Ein Beschleunigungssensor alleine kann rein physikalisch überhaupts nicht funktionieren - nur in einem näherungsweise statischen / ruhenden mit reiner Winkeländerung und keiner transversalen Bewegung versehenen System (was der Segway beim besten Willen nicht ist) kann man damit Winkelmessung betreiben. Beim Segway bilden sich so erfahrungsgemäß sehr schnell oszillierende Status (ja das schreibt man so). Chris_Specht schrieb: > Das mit dem Kalmanfilter oder Komplementärfilter habe ich auch schon > alles gelesen. Ja aber mit Sicherheit nicht verstanden. Du würdest dich wundern, was ich schon alles 'gelesen' habe. Glaub mir - das ist nicht so einfach (der Kalmanfilter erst recht nicht). Die wenigsten Leute die den Kalmanfilter verwenden verstehen ihn auch. Ich kenne viele viele Projekte in denen mit Cope 'n Paste gearbeitet wird. Unter anderem findet man sehr oft die von mir bereits gelinkte Kalmanfilterimplementierung. Ich sage immer - ich darf fremden Code verwenden wenn ich ihn selber auch schreiben kann. Das alles gilt auch für sämtliche Libraries in C oder Äquivalentes ... Wer nicht mal 'von Hand' eine ADC auslesen kann, der darf dann auch nicht adc.h verwenden. Derjenige hat weder verstanden wie es geht noch kann er ansatzweise Debuggen. Chris_Specht schrieb: > Das ist nicht mein erstes Projekt mit AVRs bzw. Regelungstechnik. Die Sache ist die - was für eine Regelungstechnik. Ich hatte an der Uni 2 ganze Semester lang Regelungstechnik und hatte gefühlt hinterher ein Basis mit der man Arbeiten konnte. Bis man das dann aber umsetzt und für den Segway vernünftig aufbaut wird einige Zeit vergehen. Im Internet finden sich oft Projekte mit 'interessanter' bis mangelhafter Regelungstechnik die dann doch irgendwie funktioniert aber auch irgendwie nur so lala und wenn's dann mal kalt wird dannn fällt der Segway um ... Nur weil man den Wikipediaartikel gelesen hat kann man noch lange keinen PID Regler vernünftig aufbauen. Ich will nicht sagen, dass es sonderlich komplex oder unmöglich ist, aber man muss es einfach vernünftig realisieren und es bedarf viel Zeit und Geduld um sowas ordentlich zu machen. Chris_Specht schrieb: > Mir ist auch klar, dass dieses Projekt nicht innerhalb > eines Tages realisierbar ist. Das ist schonmal ein sehr guter Ansatz. Chris_Specht schrieb: > Gut dann werde ich mich mal nach passenden Sensoren umschauen. http://www.watterott.com/de/ArduIMU-Sensor-Board-Six-Degrees-of-Freedom-Main oder http://www.watterott.com/de/IMU-6DOF-Razor-Ultra-Thin-IMU1 Ersteres ist eher zu empfehlen - hatte ich auch schon zu diesem Zwecke im Einsatz (Segway). Watterott.com hat den Vorteil, dass es Produkte von Sparkfun vertreibt - dadurch entfallen hohe Versandkosten und Probleme mit dem Zoll. Chris_Specht schrieb: > Danke schonmal für die Ratschläge!! Sei mir nicht böse - ich habe sicher oft eine recht harsche Meinung aber ich möchte Menschen nur vor den Fehlern bewahren die ich teilweise selbst gemacht haben. Ich will dich nicht entmutigen oder runter machen - ich will dir nur vor Augen führen, dass das kein Nebenbeiwitzprojekt ist. Ich kenne es nur allzu gut, dass man sich einen kleinen 'overload' aufhalst und sich selbst überfordert. Hinterher ist man nur frustriert, das Projekt liegt in der Ecke und die 200€ die man investiert hat auch. So nebenbei noch ein paar Worte zu den Motoren. Da musst du ein bisschen aupassen. Ich hatte damals mit Conrad Getriebemotoren (9€-25€) angefangen - das Getriebe ist mir nach ein paar Stunden in einzelteilen ins Gesicht geflogen gekommen (obwohl Metallgetriebe). Nur so eine kleine Warnung - ich gebe zu unser Segway ware mit knapp 7kg auch ein Schwergewicht.
Hallo Michael, besten Dank für deine Kommentare, sie send sehr konstruktiv. Natürlich habe ich das mit dem Kalmanfilter z.B. nicht 100%ig vertsanden, jedoch sehe ich mich in der Lage es zu verstehen. Das nötige Grundwissen und den Spaß daran neues zu erlernen habe ich, denke ich mal ;-). Mir geht es derzeit mehr darum, dieses Projekt einzustufen. Es soll nämlich auch eine Art Studienarbeit mit 2 Personen werden. Daher informieren wir uns gerade etwas über das ganze, ob es machbar ist in einem beschränkten Zeitraum. Ein "Neubau" eines solchen Roboters fällt da wohl raus, da wir die Sache mit den Sensoren und der Software nicht so schwierig eingeschätzt hatten. Daher tendieren wir derzeit für einen NXT von Lego. Dafür gibt es einen Kreiselsensor und interaktive Motoren, die einen Rotationssensor haben. Damit können wir uns auf die reine Software konzentrieren und ggf. noch optionale Funktionen einbauen falls wir rechtzeitig fertig sind.
Ein balacierender Roboter auch mit 2 Räder, diesemal ein bisschen anders aufgebaut. Bicycle Robot http://www.youtube.com/watch?v=BAS0d6nMFnc Gruss Lachsschokolade
Hier auch ein interessantes Video zum Thema Segway Eigenbau: http://www.youtube.com/watch?v=zJDp-6wkHtQ
Tag zusammen, ich taste mich gerade an einen Quadrocopter. Auch hier werden ja Gyros und Beschleunigungssensore benötigt. Nur mal zum Verständnis: Die Daten vom Gyro summier ich auf und erhalte ja dadurch einen Winkel der angibt, wie weit ich von der Ausgangsposition weg bin. Natürlich ist dieser Winkel ferhlerbehaftet durch numerische Integration und Drift vom Sensor. Der Beschleunigungssensor gibt mir seinen maximalen Wert, wenn ich parallel zur Erdoberfläche bin und dieser Wert wird kleiner, wenn ich den Sensor kippe. Jetzt würde ich einen Komplementärfilter nehmen. Den Gyrowert aufsummieren, mit einem Hochpass filtern und zum Beschleunigungssensor (durch Tiefpass gefiltert) addiren. Diese Summer wäre dann ja meine Winkelabweichung. Sind grundlegende Fehler in meinem Gedankengang? Gruß
Quadrocopter schrieb: > Sind grundlegende Fehler in meinem Gedankengang? Ja... was hat ein Quadrokopter mit diesem Thread zu tun? Mach doch bitte einen eigenen auf mit passendem Titel..
Es geht ja weniger um Quadrocopter bzw Roboter sondern mehr um die Sensoren. Daher hab ich diesen Thread aufgegriffen.
Hallo zusammen, ich arbeite auch gerade an einem balancierenden Roboter. Ich nutze einen Beschleunigungssensor um die Winkelabweichung zu messen und einen Gyro-Sensor um die Winkelgeschwindigkeit zu messen. Die Position, also Winkelabweichung, regele ich über einen PD-Regler, was auch soweit klappt. Mein Problem ist das Driften des Gyros. Die Winkelbeschleunigung regele ich über einen PI-Regler aber das Integral bzw. die Summe läuft mir immer weg wegem dem Rauschen des Gyros. Nun weiss ich nicht so recht wie ich das in den Griff bekommen kann. Ist die Idee mit der Kaskadenregelung, also PD für Winkel und PI für Winkelbeschleunigung ok oder sollte ich einen anderen Ansatz wählen? Gruß Manuel
Hi Manuel, ich denke das genau für diesen Zweck der oben erwähnte Kalman-Filter eine sinnvolle Lösung wäre. Ob deine Regelung auch funktionieren würde kann ich dir leider nicht sagen. Viele Grüße
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.