Articulated Robot Arm Path
Hello All;
Sorry for the wordy description--
I have a challenging (for me at least) real world problem to solve. I am building a 4 degree of freedom robot arm to unload parts from a machine as they are being produced in real time, and I want to control the motion of all 4 degrees with a Propeller.
The robot arm is mounted to a ceiling slide (Degree #1) and can move 10 feet in a plane laterally centered on the length of the machine. To this slide is mounted a rotary "shoulder" swivel ( (Degree #2) that has a 22 inch upper arm attached to it. At the bottom of that is a rotary "elbow" swivel (Degree #3) with an 18 inch forearm attached. That in turn is connected to a rotary "wrist" swivel (Degree #4) with a 12 inch hand attached. All swivels move in the same plane as the upper linear track, so this is only a two dimensional system. All rotary action is driven by 16:1 geared-down stepper motors which, if required can be geared down another 4X. Degree #2 has 180* rotation, Degree #3 has 300* rotation, and Degree #4 has 360* (continuous) rotation.
So the challenge for me is to translate the required motion paths (different paths when making different parts) into synchronized pulse sequences for all 4 steppers. The speed of any complete cycle need not be fast, say 10 to 20 seconds to pick up a part and drop it into a bin, average 5 feet away, and return. There are several constraints to the machine such as numerous "keep-out" areas to prevent collisions with the production machine itself.
So I'm just starting to think on how to "program the path coordinates" into the machine, and am soliciting input from the Robotics group here who may have solved similar challenges in the past and can put me onto the right track before starting out.
The electronic or mechanical side of things is not an issue for me. I will be programming the propeller in a combination of Spin and Assembler.
Thanks for reading, and any suggestions or responses.
Cheers,
Peter (pjv)
Sorry for the wordy description--
I have a challenging (for me at least) real world problem to solve. I am building a 4 degree of freedom robot arm to unload parts from a machine as they are being produced in real time, and I want to control the motion of all 4 degrees with a Propeller.
The robot arm is mounted to a ceiling slide (Degree #1) and can move 10 feet in a plane laterally centered on the length of the machine. To this slide is mounted a rotary "shoulder" swivel ( (Degree #2) that has a 22 inch upper arm attached to it. At the bottom of that is a rotary "elbow" swivel (Degree #3) with an 18 inch forearm attached. That in turn is connected to a rotary "wrist" swivel (Degree #4) with a 12 inch hand attached. All swivels move in the same plane as the upper linear track, so this is only a two dimensional system. All rotary action is driven by 16:1 geared-down stepper motors which, if required can be geared down another 4X. Degree #2 has 180* rotation, Degree #3 has 300* rotation, and Degree #4 has 360* (continuous) rotation.
So the challenge for me is to translate the required motion paths (different paths when making different parts) into synchronized pulse sequences for all 4 steppers. The speed of any complete cycle need not be fast, say 10 to 20 seconds to pick up a part and drop it into a bin, average 5 feet away, and return. There are several constraints to the machine such as numerous "keep-out" areas to prevent collisions with the production machine itself.
So I'm just starting to think on how to "program the path coordinates" into the machine, and am soliciting input from the Robotics group here who may have solved similar challenges in the past and can put me onto the right track before starting out.
The electronic or mechanical side of things is not an issue for me. I will be programming the propeller in a combination of Spin and Assembler.
Thanks for reading, and any suggestions or responses.
Cheers,
Peter (pjv)
Comments
I would solve the problem in Cartesian coordinates, and then use inverse kinematics to translate it into arm joint positions. You would them want an object that can translate a joint angle into stepper pulses.
No, I'm not familiar with that, and will have to dig into it. A whole new arena here for me to learn.
@Seairth, your path training concept is what I had originally been considering, but without positional feedback as the arms will be very stiff. While training, have each stepper continuously dither one step forwards and backwards, and at the same time look for a change in each winding's inductance/back EMF due to movements made by hand. Then effectively step each motor position to follow its inductance change, thereby leading the arms through the desired path and record the angular coordinates. During "replay" velocities could be altered to suit so the training need be done at real speed. Not sure how to do all this yet, but will experiment.
Then a simpler approach might be a good way to start; a 5 way joystick with up/down left/right and rotary outputs to drive the path of the "hand" and again record the angular coordinates, and introduce a subsequent speed profile.
I'm welcoming any other ideas, thanks.
Cheers,
Peter (pjv)