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.
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" ?
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
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 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 ...