Rating is available when the video has been rented.
This feature is not available right now. Please try again later.
Published on Oct 22, 2006
A master/slave system I built using potentiometers, servos, and an IFI robotics controler .
I took this robot apart a couple of years ago, but I am re-building it for a class at my university.
The shoulder rotation, elevation, and elbow joints are Expert Electronics SL820(shoulder elevation) or SL800(rotation and elbow) giant ball bearing servos. I don't have the original gripper as it broke. it was just a regular servo with a piece of balsa wood attached to the side, and one attached to the servo horn. I used epoxy to attach the wood.
To create the arm structure I used coat hangars and welded them together. I melted holes in the servo horns to stick bits of wire through. I taped the 2 shoulder servos together, and taped the elbow servo and wrist servos to the previous arm segments.
To create the master arm, I used pieces of wire coat hangars connected via 100K potentiometers using hose clamps. I had to flatten the side of the coat hangar so it wouldn't rotate. I wired it using telephone wire,(4 conductors, 4 signals) and 1 red power wire.
I connected that to an old joystick connector. The robot controller I used(IFI Robotics) has a powered joystick input. All 4 axis of motion are sent to the microcontroller as numbers from 0 to 255.
The microcontroller runs each input through a simple calibration program that knows the input values for the ends of motion of the master, and converts each number into another number from 0 to 255 that is used to set the position of each servo.
More on the calibration:
Each joint on the master arm is a potentiometer(a variable resistor). A joystick port basically checks the resistance. By itself, this resistance means nothing, so I wrote a little routine that converts a resistance into an angle that the servos can understand.
To do this on the elbow for example, I straightened the master arm, and checked the resistance. Then I tried sending various numbers to the elbow servo until I figured out what number meant straight. I did the same for fully bent.
With these 4 numbers in hand I was able to write an equation that maps any angle on the master arm to a similar servo angle on the slave arm. I also used these numbers as hard limits on the values I sent to the slave arm.
Each time the program loops, it receives the resistance from each joint, converts each resistance through the equation for that joint, and sends each joint the position it should be at.