You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've spent multiple hours trying to get the Braccio.begin() soft start to work, but cannot get it to behave as documented.
With the default values the arm will twitch around, but not actually lift off the table (if started lying flat). Then the start period will elapse and the arm will suddenly jerk into place.
With non-default values (wondering about the mystery "the sum should be 530usec" values!) things aren't any better.
We can't get the initial position from the servos without additional hardware (the servo .read() returns the last written value, or a default of '93').
We can't easily "park" the arm to a known position because it will generally collapse under its own weight when powered off. The counterbalancing springs do seem to let it remain completely vertical - which looks maximally unstable but is in fact my current approach for a smooth start!
Is something broken in my Braccio (has anyone gotten 'soft start' to work as described)? Or is all of this 'soft start' / SoftwarePWM stuff just a complete red-herring? From the many, many questions about this on Arduino.cc I suspect the latter ... but would love to be proven wrong.
Any pointers would be very welcome, please!
The text was updated successfully, but these errors were encountered:
Hi @zadacka as you correctly say the issue is that there's no way to read servo position. servos basically are either idle or set at a precise position so what's happening for you is that when you start your code the motors will switch from idle (no PWM at their input) to a given position (set by PWM). since the given position will always be different from the position you left your braccio at, initially there's no way you can avoid this other than setting an initial position that is the same of the idle position you manually place braccio on.
soft start is somehow trying to address this but not having a crystal ball we can't know the intial position and we can only assume one.
Right - I completely get what you say about servo motor operation.
The Braccio documentation and the library code both indicate that there is a mechanism to cope with this ‘unknown amount of movement to a start location’. The explanation is that a ‘soft start’ mechanism exists in order to turn the servo motors on in a slow (low voltage) way so that they gradually move to the target. Wherever that target may be.
However.... even though this ‘soft start’ has been implemented ... and documented ... it does not work!
I was wondering if I am doing something wrong, or if this is a known problem with Braccio. As far as I am currently aware (based on my own and other developers’ experiences) this is a limitation of the Braccio hardware. You can try to ‘soft start’ it however you want from the software (via setting the ‘soft start’ pin high/low) but it will never work. The fact that the documentation and library claim otherwise is a bug.
I've spent multiple hours trying to get the Braccio.begin() soft start to work, but cannot get it to behave as documented.
With the default values the arm will twitch around, but not actually lift off the table (if started lying flat). Then the start period will elapse and the arm will suddenly jerk into place.
With non-default values (wondering about the mystery "the sum should be 530usec" values!) things aren't any better.
We can't get the initial position from the servos without additional hardware (the servo .read() returns the last written value, or a default of '93').
We can't easily "park" the arm to a known position because it will generally collapse under its own weight when powered off. The counterbalancing springs do seem to let it remain completely vertical - which looks maximally unstable but is in fact my current approach for a smooth start!
Is something broken in my Braccio (has anyone gotten 'soft start' to work as described)? Or is all of this 'soft start' / SoftwarePWM stuff just a complete red-herring? From the many, many questions about this on Arduino.cc I suspect the latter ... but would love to be proven wrong.
Any pointers would be very welcome, please!
The text was updated successfully, but these errors were encountered: