Robotic arm from scratch

I’m currently in Afghanistan serving the military, but my arduino side can’t be suppressed so I’ve gotten it into my head that i want to build a robotic arm when I get home in about a month or so. Therefore I already ordered the parts which include 4 continuous 360 servos (these are the one’s i’m unfamiliar with that I’ll have to take some mentoring on) 5 metal gear high torque servos, and a claw that works with a standard medium servo. I already have my code written and I believe it’ll work for the most part. I would like input into anything anyone has for me. I have some fake values at the beginning so that way it can check itself so ignore those…

robot_arm_array_c.ino (3.27 KB)

I don't understand what the continuous rotation servos are for in this project. I'd have thought that you want to provide closed loop feedback control of all movements and conventional servos do that very conveniently - what are the continuous rotation servos for?

I ordered the continuous rotation servos just to have them, but the spots that I'm considering to use continuous servos are on the base of the arm, and the wrist.

If you want your arm to be strong, then use metal worm gears. What is the arm going to be made from and how big will it be?

The support material i'm also still on the fence about, I was thinking about a light wood, or some small segmented sheets of drilled metal, it would take some testing first, and depend on what I can find. How would the worm gears come into play? I do understand that the worm gears add the security of not slipping back when not being moved, but are you using them in place of the servos?

Well you would need some good torque motors, that is if you don't want to use servos. Or you could also use hydraulic pistons to move the arm.

Servos are good to start with, especially with a kit but for better stronger applications worm gears and hydraulics are the way to go.
One other thing, servos can not run off the 5 volts from the arduino, so you will need an external power supply that can output about 6 volts and decent current ~1 - 2 amps.

I bought the 12v external power supply and I read that should work, I know with my 9v battery power supply it can work the servos unlike the 5v usb cable.

The servos need 6 volts to work properly so you may need a voltage regulator to bring down the voltage.

oh, I thought the omega had a built in voltage regulator, I'm probably mistaken



The Arduino Mega or your power supply? The arduino does have a built in regulator both 5V and 3.3V but the current is tiny, only about 200 mA and 40 mA on the digital pins. Your power supply may have a regulator too, I don’t know.

this is what I was referencing, but it seems as the voltage regulator is just for the actual board not the outputs, but I do know that i can control a servo with the 9v power supply but not with the usb cable, so all still going through the board.

You can make life easier for your servos by making the arm self balancing i.e. weighting each moving part so that the center of gravity is close to the pivot, or adding sprung assistance (the sort of thing used in some angle poise lamps). To avoid overloading the servos by requesting sudden accelerations, I suggest you manage the speed of each joint so that it ramps up and down smoothly. A proportional control algorithm, where you establish a target position for the joint and then move it at a speed which is proportional to how far it is away from that target position, would be an easy way to achieve that.

good call on the counterweight/ spring, I didn’t think about that, and I will definitely try that out, as for the variable speed algorithm, my “version” of that is to come depending on the reading from the joysticks that I’ll have controlling the arm

good call on the counterweight/ spring, I didn't think about that, and I will definitely try that out, as for the variable speed algorithm, my "version" of that is to come depending on the reading from the joysticks that I'll have controlling the arm

Another thing to do is to keep as many of the servos/motors as possible close to the base of the arm; doing so means that "lower" servos/motors have less mass to move, meaning more mass which can be lifted (and started/stopped moving).

There's a kickstarter arm (also here on the forums) called the "uFactory uArm"; it's designed as a "pallet moving" type of arm (based on an ABB industrial arm design) - you might look into that to get some ideas on how you can keep the servos close to the base (unfortunately, it is unknown as to the status of the whole kickstarter thing on that arm - no one has heard from the guys behind it in a while now since the KS ended).

Other arms to look at are ones from the 1980s which used stepper motors to actuate the joints - a couple of good ones are the Microbot TeachMover, and the Armdroid; both had their motors on the "base" of the arm (really, the shoulder portion) - the former used mainly timing belts to transfer power from the motors to the joints, while the latter used cords. Plenty of information about both arms are available on the internet, enough to get ideas from.

If you want to build a robotic arm from scratch then study the successful arms that are sold on the robotic sites, and DIY arms displayed on youtube. I find the below "Axis palletizing robot" to be an interesting design beyond the standard servo designed arm. I'm tempted to buy one just to accurately trace the arm geometry and pdf prints. Don't know if the arm actually works other than youtube videos, but the price is better than the usual servo based designs costing twice as much.