Ich versuche mich gerade von A-Z durchzulesen wie man so Hobby Roboter baut und es gibt ja einige Fertigbausätze für sowas. Bei allem was ich mir durchlese finde ich etwas sehr interessant und wollte fragen, ob folgendes tatsächlich so ist. Überall wo ein Motor ist von dem man wissen will, in welcher Stellung er gerade ist, braucht man Sensoren die diese Stellung messen. HALL Sensoren, Endschalter, Lichtschranke, etc. Ich habe nun einiges gesucht, aber es scheint es gibt keine Möglichkeit dies zu ermessen, errechnen oder dergleichen, ohne einen Sensor. Wenn ein Motor wirklich genau arbeitet und man den Strom misst, könnte man ja errechnen bei 2 Sekunden 0,2A Strom mit bekanntem Rotordurchmesser, rpm, etc. etc., dass sich der Motor jetzt genau 5 mal gedreht hat und nun in dieser Stellung steht. Aber ich denke kein Messgerät und keine Toleranz in unserer derzeitigen Technik erlaubt eine so genaue Messung, dass man aus gemessenen Daten die Position des Rotors errechnen kann. Ist das richtig? Oder gibt es High-End Technik die sowas schafft?
Bernd schrieb: > Wenn ein Motor wirklich genau arbeitet Das ist schon mal die erste völlig falsche Annahme. > und man den Strom misst Der Strom sagt nichts über die Drehzahl, sindern nur etwas über das Drehmoment. > könnte > man ja errechnen bei 2 Sekunden 0,2A Strom mit bekanntem > Rotordurchmesser, rpm, Bei bekannten rom ist es leicht, die Anzahl der Umdrehungen nach Zeit zu errechnen. > etc. etc., dass sich der Motor jetzt genau 5 mal > gedreht hat und nun in dieser Stellung steht. Bei sehr sehr geringen Anforderungen an die Positioniergenauigkeit macht man das tatsächlich so: Motor gegen einen Anschlag fahren lassen in dem man ihn lange genug in eine Richtung drehen lässt, dann eine definierte Zeit den Motor an eine feste Spannung legen, und aus Erfahrung weiss man dann ungefähr, wie weit er bzw. das an sein Getriebe angeflanschte Teil gedreht hat. Sehr ungefähr aber nur.
Nein, das ist so nicht richtig. Der Strom sagt nichts darüber aus, wie schnell der Motor dreht. Der Strom sagt aus, wie viel Drehmoment der Motor abgibt. Die Drehzahl hängt von der Spannung ab. Aber das ist alles irgendwie lastabhängig.
Bernd schrieb: > Wenn ein Motor wirklich genau arbeitet und man den Strom misst, könnte > man ja errechnen bei 2 Sekunden 0,2A Strom mit bekanntem > Rotordurchmesser, rpm, etc. etc., dass sich der Motor jetzt genau 5 mal > gedreht hat und nun in dieser Stellung steht. Das wird sich aber in Abhängigkeit der Belastung, der Lager-Reibung usw. so stark ändern, dass man keine Aussage über die Position des Rotors treffen kann. Die einzige Möglichkeit die ich sehe, ist die Erfassung der Back-EMF. Diese beginnt aber nicht bei Drehzahl Null, sondern erfordert eine Mindest-Drehzahl, damit die Back-EMF gross genug ist um sie erfassen zu können. Eine Bestimmung der Rotorposition unabhängig von der Drehzahl (also auch bei Stillstand) funktioniert nur mit Sensoren.
Bernd schrieb: > Ist das richtig? Oder gibt es High-End Technik die sowas schafft? Das ist nicht wirklich HiEnd, man kann einen Schrittmotor nehmen, der dreht sich für jeden Impuls einen bestimmten Winkel weiter. Genau ist das schon, aber es fehlt die Erfolgskontrolle, verliert der Motor z.B. wegen Überlastung Schritte, so stimmt die Position von da an nicht mehr. Für einen Roboter ist das meiner Meinung nach nicht tragbar, für eine Rollladensteuerung kann man Fehler akzeptieren. Dein Konzept klappt sowieso nicht. Es stimmt ja nicht nur die aktuelle Position nicht, der Fehler setzt sich fort und addiert sich immer weiter auf. Ich nehme mal an, der Roboter macht nicht nur eine einzige Bewegung. Nebenbei bemerkt, man braucht sowieso einen Sensor für eine Startposition, von der aus gerechnet werden kann. Georg
Georg schrieb: > verliert der Motor z.B. > wegen Überlastung Schritte, Dann ist er falsch dimensioniert.
Für Chaosrobotik reichts. Ein Saugroboter schlägt eine zufällige Richtung ein, wenn er gegen ein Hindernis prallt und muss nicht wissen wo er ist.
Bernd schrieb: > Überall wo ein Motor ist von dem man wissen will, in welcher Stellung er > gerade ist, braucht man Sensoren die diese Stellung messen. Nein, braucht man nicht. Es kommt auf den Motor drauf an. Guck beispielsweise mal nach "sensorless" + "BLDC". Du musst ab einer bekannten Position (Endanschlag) nur die Kommutierungen mitzählen. Bei einem Schrittmotor gibst du sie sogar extern vor.
Oder Du misst indirekt, bis z.B. der Arm horizontal ist, z.B.: mit einer elektronischen Wasserwaage.
Für Roboter ist dann, entweder ein Servo (für Kleinlasten) oder ein Stepper (wie oben schon andere vorschlugen) zu wählen. Ooder für richtig Kräftige wie Fanuc oder Kuka sind es dann Servomotoren mit Pulscoder. Gleichstrommotoren sind nicht geeignet um positionsgenau zu fahren, ohne eine Kontrolle. Synchromotoren würden da schon eher gehen. die sind den Steppermotoren eher ähnlich und lassen eine genauere Positionierung zu, als DC oder Drehfeld Motoren. Denoch wenn ich Roboterarme baue (kleine mit Stepper) oder (große mit Synchro) ist in jeden Fall ein Positionssensor oder Pulscoder mit dabei. Den gerade so ein Roboter kann durch Einflüsse von außen seine aktuelle Position verlieren oder ändern dann sollte die Elektronik schon darüber Informiert werden. Es gibt sehr gute Magnetsensoren die Berührungsfrei eine genaue Gradangabe der Position haben. Die sind sehr Langzeitstabiel im gegensatz zu analog Servo mit Poti als Winkelgeber. ;-)
:
Bearbeitet durch User
Geht es jetzt um die Positionsbestimmung eines mobilen Roboters per Odometrie oder um die Ansteuerung eines Roboterarms?
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.