Author Topic: [C#] Servo Brick: Sanftes Anfahren und Abbremsen  (Read 1111 times)

würfelzückerli

  • Newbie
  • *
  • Posts: 1
    • View Profile
[C#] Servo Brick: Sanftes Anfahren und Abbremsen
« on: January 08, 2013, 16:40:15 »
Hallo zusammen :)

Es widerstrebt mir, mich anzumelden und gleich eine freche Frage zu stellen ohne viel gesucht zu haben. Ich weiß, dass das eigentlich nicht gern gesehen ist! Das tut mir leid! Sollte ich selbst noch eine Lösung finden oder erstellen, werde ich das hier selbstverständlich kund tun :)

Ich arbeite an einem Projekt, bei dem ein Strahler zweiachsig über Analogservos ausgerichtet wird. Da es sich um einen Prototypen handelt, ist der Aufbau alles andere als perfekt und zur Vermeidung von Unwuchten mussten bei beiden Achsen Gegengewichte herhalten. Das ganze ist also in sich recht träge und neigt beim Anfahren und vor allem beim Abbremsen dazu, zu schwingen.
Natürlich ist das weder für den gesamten mechanischen Aufbau inkl. Servos, noch für das Leuchtmittel besonders gut.

Daher bin ich auf der Suche nach einer Möglichkeit, die Beschleunigung und damit die Bewegung geschmeidiger zu gestalten.
Optimal wäre, wenn die Beschleunigung statt konstant zu sein, während der gesamten Bewegung von Startwinkel zu Zielwinkel sinusförmig verlaufen würde.

Gibt es dafür bereits eine fertige Lösung, einen Ansatz oder hat jemand eine spontane Idee, wie das effizient und effektiv zu lösen wäre?

Sollte sich niemand dazu äußern, werde ich mich die Nächte mal an eine Lösung begeben!

Danke vielmals vom Würfelzucker :)

AuronX

  • Hero Member
  • *****
  • Posts: 877
  • kann Software, keine Hardware ^^
    • View Profile
Re: [C#] Servo Brick: Sanftes Anfahren und Abbremsen
« Reply #1 on: January 08, 2013, 16:58:58 »
Für diesen buchstäblich süßen Namen darfst du auch so freche Fragen stellen ^^

Das Servo-Brick bietet dir zum einen die Velocity, damit kannst du die Maximalgeschwindigkeit deiner Servodrehung regulieren.
Zum anderen hast du die Acceleration.
Diese ermöglicht es dir, dass die Velocity nicht abrupt auf das Maximalniveau gehoben wird.

Ich würde aber behaupten, dass die Bremsung des Servos davon unberührt bleibt. Hier könntest du im Zweifel selbst kurz vor erreichen der Zielposition anfangen die Velocity zu senken.

Beachte: Da Servos keine Rückmeldung über ihren Drehwinkel geben kann das Servo-Brick die Position nur "erraten". Wenn du also eine sehr geringe Drehgeschwindigkeit hast ist das sehr präzise, weil der Servo viel zeit hat die gewünschte Bewegung auszuführen. Wenn du die Velocity aber höher stellst als es dem Servo möglich ist, dann wird das Servo-Brick dennoch denken, dass der Servo "bestimmt schnell genug" war.
Das ist je nach Anwendung doof oder egal.