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): .
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
Braccio.begin();
}
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.