Braccio robot arm shoulder joint oscillates after moving to a position

Hi all. It's my first time back to the forums in a very long time. About 4 years ago I bought a Tinkerkit Braccio robot arm (Tinkerkit Braccio robot — Arduino Online Shop): image.

That arm used V4 of the Braccio Shield and has performed flawlessly in various demo projects over the past years.

Fast forward to today and I am working on a robotics project in a college course and the department recently bought a new Braccio Robot Arm for me to use in the project. Assembly went smoothly and for the most part, the testing also seems to work. BUT, one thing I noticed is that when the initial testBraccio90.ino program is run:

#include <Braccio.h>
#include <Servo.h>

Servo base;
Servo shoulder;
Servo elbow;
Servo wrist_rot;
Servo wrist_ver;
Servo gripper;

void setup() {
//Initialization functions and set up the initial position for Braccio
//All the servo motors will be positioned in the "safety" position:
//Base (M1):90 degrees
//Shoulder (M2): 45 degrees
//Elbow (M3): 180 degrees
//Wrist vertical (M4): 180 degrees
//Wrist rotation (M5): 90 degrees
//gripper (M6): 10 degrees

void loop() {
//no code here

After just moving to the joint angles defined in Braccio.begin(), the shoulder joint oscillates about +/- 3 to 5 degrees (estimate by eye) the commanded position.... All the other motors and joints works as expected and do not show any oscillation. In my older robot, I did not see any motors exhibit this... During its oscillation, if I use my hand to steady the robot arm, it will stop oscillating, but with the slightest tap or bump on the robot arm, that joint will resume its slight oscillation. I have also tried setting the soft start argument in Braccio.begin() from 0 to -70 which is the acceptable range specified in the .cpp file, but that did not have any effect on preventing the oscillation.

Is there something wrong with that particular servo? If possible, I'd like to avoid sending it back in for repair or exchange as that would delay the project progress for some time.

I was thinking about switching the base and shoulder servos so that if the shoulder servo was in the base, the added weight and friction should probably damp any tendency it has to oscillate after moving to a position.

Don't servos routinely jitter a little bit?

Is that the servo that has to support the most weight? The motor may be too weak for that torque, or the supply may be too weak in voltage or current, or the motor deserves thicker wires? Eventually the motor electronics deserves bigger capacitors to decouple the driver from voltage fluctuations - this were a motor to return. Can you watch the supply voltage on that servo using a scope?

I had a servo on a different arm that moved to slightly different positions when coming up from bottom or down from top. A lift with a finger made it rest in the programmed (higher) position. For precision models this were a fault similar to a jitter between both positions.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.