Hallo, bin dabei einen Achscontroller zu schreiben. Der soll eine Fahrt mit S-Kurven-Profil machen. Wegen des Rechenaufwand teile ich eine Fahrt in max. 7 Abschnitte ein und berechne diese vor. Soweit funktioniert dies auch. Jetzt muss ich aber unvorhersehbar auf Grund eines externen Signals bremsen ( z.B. Limitschalter oder Coverswitch ). Wie kann ich ein Bremsen während der Jerk & Beschleunigungsphase hinbekommen, wenn ich die vorgegebene Verzögerungskurve einhalten soll ? Danke, Pepe.
Kennst Du auch Snap, Crackle und Pop? Diese interssante Lektüre könnte Dir bei deinem Problem eventuell weiterhelfen. https://info.aiaa.org/Regions/Western/Orange_County/Newsletters/AIAAOC_SnapCracklePop_docx.pdf
Nö. Hatte ich bis jetzt nicht gekannt. Danke für die Info. Hilft mir aber (glaube ich) nicht weiter. Ich brauche eine Lösung für das spontane Abbremsen der Achse, z.B. während der Beschleunigungsphase. Schalte ich sofort auf Verzögerung hab ich doch im nächsten Regelungstakt eine schlagartige Umkehrung von Beschleunigung auf Verzögerung. Also eigentlich 200% im Vergleich zu einer Trapezkurve. Aber genau dies möchte man ja durch die Verwendung des Jerks reduzieren. Also wie kann man eine Jerk-ähnlich Bremsung am besten implementieren ?
Ich glaube da besteht ein kleines Verständnisproblem dessen, was Jerk ist. Jerk ist die Änderung der Beschleunigung über die Zeit, etwas, das man als Ruck (engl. jerk) verspürt. Du möchtest eine "Ruck-ähnliche Bremsung" ?
:
Bearbeitet durch User
Detlef Kunz schrieb: > Ich glaube da besteht ein kleines Verständnisproblem dessen, was Jerk > ist. > Jerk ist die Änderung der Beschleunigung über die Zeit, etwas, das man > als Ruck (engl. jerk) verspürt. > > Du möchtest eine "Ruck-ähnliche Bremsung" ? Ich denke, er moechte den Ruck begrenzen, ich kenn das von Industrierobotern. Schont die Substanz... Anderes Thema: Wie kann ich mir Snap, Crackle und Pop vorstellen? Mathematisch ist klar was gemeint ist, aber gefuehlsmaessig? Wie nehme ich die Ableitung des Rucks war, und deren Ableitung usw?
David ... schrieb: > Wie nehme > ich die Ableitung des Rucks war, und deren Ableitung usw? Mensch nehmen das nicht wahr, sonst hätten sie für diese Wahrnehmungen andere Namen als Snap, Crackle und Pop. ;) David ... schrieb: > Ich denke, er moechte den Ruck begrenzen, Das ist mir auch klar, aber dem TO soll es auch klar werden. In dem von mir verlinkten pdf ist doch das Grundwissen für die Lösung drin.
Detlef Kunz schrieb: > David ... schrieb: >> Wie nehme >> ich die Ableitung des Rucks war, und deren Ableitung usw? > > Mensch nehmen das nicht wahr, sonst hätten sie für diese Wahrnehmungen > andere Namen als Snap, Crackle und Pop. ;) Hmpf, Punkt fuer dich, macht es aber nicht besser ;)
David ... schrieb: > Hmpf, Punkt fuer dich, macht es aber nicht besser ;) Mal sehen (eigentlich nur fühlen) :) Position nimmt der Mensch (gefühlt !) nicht wahr. Geschwindikeit nimmt der Mensch (gefühlt !) nicht wahr. (konstante) Beschleunigung nimmt der Mensch als konstante Kraft wahr. Jerk (Änderung der Beschleunigung, Ruck) nimmt der Mensch bei langsamer Änderung der Beschleunigung als sich ändernde Kraft, die auf ihn wirkt wahr. Schnelle Änderungen als Ruck. Das liegt daran, das man versucht die Kraft auszugleichen, um die Position zu halten. Ändert sich die Kraft schnell, und man kann nicht so schnell "Nachregeln", dann kommt es zum Überschwingen der "Regelung" --> gefühlter Ruck.
Detlef Kunz schrieb: > Schnelle Änderungen als Ruck. Das liegt daran, das man versucht die > Kraft auszugleichen, um die Position zu halten. Ändert sich die Kraft > schnell, und man kann nicht so schnell "Nachregeln", dann kommt es zum > Überschwingen der "Regelung" --> gefühlter Ruck. Hm. Und weil die Aenderung der Beschleunigung fuer die Wahrnehmung als Ruck schnell sein muss, kann man die hoeheren Ableitungen erst Recht nicht wahrnehmen? Damit lass ich es erstmal gut sein ;)
Hmm, wenn die Kraftänderung nicht konstant ist, könnte einem vielleicht mächtig übel werden. Vielleicht sollte man Snap in Sick umbenennen ;) Ich glaube, das könnte für die Seekrankheit verantwortlich sein. (Nur mal vom Gefühl her.).
Detlef Kunz schrieb: > Hmm, wenn die Kraftänderung nicht konstant ist, könnte einem vielleicht > mächtig übel werden. Vielleicht sollte man Snap in Sick umbenennen ;) Wenn du mutig bist, darfst du Industrieroboterreiten kommen und das erfuehlen :3 > Ich glaube, das könnte für die Seekrankheit verantwortlich sein. > (Nur mal vom Gefühl her.). Ist Seekrankheit nicht die Diskrepanz zwischen verschiedenen Sinnen? Ich war zB neulich im Technikmuseum Sinsheim in der Concorde. Die steht ziemlich schraeg, aber wenn man in ihr steht, gibts kein optisches Merkmal fuer die Steigung. Das macht auch ziemlich schummrig - eben wie in (zwischenzeitlich) gekippten Schiff, was man innen nicht sehen kann.
Detlef Kunz schrieb: > Ich glaube da besteht ein kleines Verständnisproblem dessen, was Jerk > ist. Mir ist klar, was der Jerk bedeutet. Hatte eigentlich - wie David schreibt - eine Begrenzung des Rucks im Kopf. Eigentlich hatte ich auf eine Lösung gehofft, die etwas Programmierer-freundlicher wäre. Die Berechnungen wie im Kapitel III des Links hab ich ja schon so weit. Nur mein Mathe reicht gerade nicht aus, ein Polynom 3. Grades zu berechnen, wenn ich noch eine Anfangsgeschwindigkeit V<>0 ( weil ich ja schon fahre ) habe. Kann anscheinend auch nicht ganz trivial sein, weil viele Hersteller von (einfachen) Achscontrollern bei S-Kurvenfahrten eine Änderung der Zielposition On-The-Fly nicht erlauben.
Du gehst die Sache falsch an. Die Anfangsgeschwindigkeit ist nicht wirklich dein Problem, eher die Physik. Geschwindigkeit ist relativ. ;) Wenn sich dein Objekt mit 1m/s Anfangsgeschwindigkeit bewegt, und Du es auf 0m/s abbremsen willst, dann definier dein Bezugssystem um. Sag einfach, dein Objekt bewegt sich mit 0m/s Anfangsgeschwindigkeit und du willst es auf -1m/s beschleunigen. ;) Deine Sorge sollte der Anfangsbeschleunigung gelten, weil Du sie jetzt nicht einfach auf 0 setzen kannst. :P
:
Bearbeitet durch User
Du hast recht. Physikalisch betrachtet sprechen wir von der aktuellen Beschleunigung, die mir das Leben schwer macht. Hab das Ganze zu stark aus Sicht der Bahnsteuerung ( sprich Sourcecode ) aus betrachtet. Muss jetzt erst mal in mich gehen... und vielleicht kann ich mich auch noch erinnern wo mein Orear oder Papula sind.
Hallo Pepe. Sehr interessant was du da machst. Ich will auch gerade umstellen auf S Kurve. D.h. Beschleunigung mit Ruckbegrenzung. Wärst du so nett und würdest dein Source Code hier (oder mir direkt) zur Verfügung stellen. Ich bin da noch nicht ganz so weit wie du und suche noch Formeln für die Berechnung. noeppkes ...
Hallo Pepe. Hab mich jetzt noch angemeldet, dann könntest du mir direkt den Source Code senden. Wäre sehr hilfreich. Vielleicht kommen wir da zusammen weiter. Danke. noeppkes ...
Hallo. Hab mich die letzten Wochen mit allem Anderen beschäftigt, nur nicht mit der Implementierung der S-Kurve. Habe meine bisherige Implementierung verworfen, da ich das Bremsen nicht sauber implementieren könnte. Außerdem möchte ich noch eine Möglichkeit einbauen, damit ich die Endposition On-The-Fly ändern kann (wenigstens in gewissen Grenzen). Werde wohl auf einen Ansatz mit einem "Motion Planer" umsteigen, der mir kontinuierlich die nächsten paar Wegpunkte berechnet. Da fange ich heute aber erst an :-) Im Link findest du die Herleitung für die Formeln. Hat mir zum Verständnis viel gebracht. http://www.inmechasol.com/fullpanel/uploads/files/motionplanning-01.pdf Falls der Links nicht mehr funktioniert, hier der Titel "CONSTANT JERK EQUATIONS FOR A TRAJECTORY GENERATOR" Hat sonst jemand noch weiterführende Infos? Pepe.
Hallo. Hab noch was vergessen. Unter http://www.copleycontrols.com/ findest Du ein Java-Script, welches die Zeit für eine S-Curve berechnet. Leider funktioniert das Script im Browser bei mir nicht mehr. Hat es aber schon mal :-) http://www.copleycontrols.com/Motion/Java/calculator-Scurve.html Ist auf alle Fälle schon mal eine Basis. Pepe
Hallo Pepe. Bin gerade wieder hier her gekommen und hatte gesehen, dass du vor längerer Zeit geschrieben hattest. Bist du bei der S-Kurve weitergekommen? Würde mich sehr interessieren. Das pdf Dokument ist auch sehr interessant. Das Java-Script läuft bei mir übrigens auch nicht. noeppkes ...
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.