Page 1 of 1
3-motor arm... with less gears?
Posted: 29 Oct 2011, 18:39
by stryker001
Hey, I'm trying to build a robot arm that has the typical 3-motor setup: one for rotating the base (L/R), one for moving the claw/grabber/probe/tip up and down (U/D), and one for actuating/activating said tip (TIP). I've always seen the L/R motor geared to a turntable with the rest of the assembly on top of that. While that's fine and all, I don't want the "elbow" motor (U/D) to be geared, but rather use a series of beams/levers, basically because I want two elbows rather than one. (Not to mention, but gears tend to slip. A lot.)
If anyone has any experience, tips, or ideas on this method of construction, I'd be delighted to hear them. I've never really explored using levers in my mechanisms, which is something I need to do a lot more.
Thanks!
Re: 3-motor arm... with less gears?
Posted: 29 Oct 2011, 20:44
by spillerrec
stryker001 wrote:While that's fine and all, I don't want the "elbow" motor (U/D) to be geared, but rather use a series of beams/levers, basically because I want two elbows rather than one.
I don't use levers that much either so I'm not that experienced with them. Do you want two elbows in order to increase the range of the movement? I.e. something like this:
I have never done anything like this, I just made this up, but it seems to work.
It the double elbow the only reason to use levers? It is actually easier to do this with gears, just place the motor in between the two elbows and connect it to both.
Why do you need a double elbow btw?
I still think it is a better idea to use gears for the up/down movement. Gears will allow you a movement of 270 degrees easily (and even 360+ if you want to) while you can't get more than 180 degrees with levers. (Something like 120 is more realistic though, the double elbow linkage above only allowed for 90 degrees freedom for example.)
I do think it is a great to use levers+pneumatics for the tip though.
stryker001 wrote:(Not to mention, but gears tend to slip. A lot.)
Gears don't slip. If they do slip, it is because your construction allows them to move away from each other under torque. Make your construction around the gears stronger and it will slip less. My rule of thumb when using gears that I should be able to stall the motor (i.e. no slipping) when I prevent the last gear in the gear train to turn.
Re: 3-motor arm... with less gears?
Posted: 29 Oct 2011, 23:24
by dimasterooo
Yeah I agree that gears aren't that bad if you use them wisely (so the less the better in my experience). I do think you need to gear the elbow joint because it gets really hard on the motor if you don't (I actually managed to break one of my NXT's ones because of that).
What kind of motors do you want to use (linear or rotating)?
For the claw, I would advice trying to build it using one of those technic motors and controlling them with the HT sensor because they're way lighter than the NXT ones so you'll be able to use less gears. Here's a simple one I made a while ago:
Otherwise, I agree that pneumatics can also get the job done, but you won't have as much control over the outcome. If you want to do that using one motor (you usually need one for pumping and one for flipping the switch), it gets a bit more complex (you'd have to use a differential).
I did that and it worked really well:
If you only want to use one motor it's really important to keep your weight as low as possible to put less strain on your motors and speed the whole thing up a bit. One way to do that is by having all the motors at the base and then using gears and universal joints or levers to move the joints you want to use. You can't really see it in the picture below, but there's three motors down there; the middle one rotates the shoulder joint, the left one the elbow joint and the right one the wrist joint.
If you're interested, here's the article about the red one:
http://dimastero.wordpress.com/2011/05/ ... -hardware/ and here's the article about the yellow/ black gripper:
http://dimastero.wordpress.com/2011/06/ ... e-gripper/
One last thing: use counterweights wherever you can (like the anchor in the top picture)
Re: 3-motor arm... with less gears?
Posted: 30 Oct 2011, 01:28
by stryker001
Awesome, guys. Thanks. I guess levers
would inhibit movement too much, but I was thinking with a double elbow, that wouldn't be too much of a problem.
(I'm basically working from
this model, which is okay, except it only has one elbow.)
Unfortunately I have no pneumatic/hydraulic systems, and I have no universal joints.
I'm trying to get the double-elbow, just for the sake of this: if each joint can only bend, say, 90 degrees, then I can either use one elbow and have an ugly, sharp angle, or I can use two joints that split the angle. (Ideally, I'd go for four, but I don't have
nearly enough pieces for that.)
I like the idea of using counterweights, I'm wondering if I can us my NXT as a counterweight.
Thanks for the thoughts, and I'm seriously debating buying a few universal joints. Any ideas on good places to get <10 of them?
Re: 3-motor arm... with less gears?
Posted: 30 Oct 2011, 01:51
by mattallen37
Remember, both gears and levers have play. The more you use, the more they introduce.
The NXT works as a great counterweight, but it can be tricky with the wires.
Try looking on eBay and Bricklink. Lego Edu also sells them (at least they used to sell the 4L UJs).
Re: 3-motor arm... with less gears?
Posted: 30 Oct 2011, 04:59
by dimasterooo
Yeah I got all of my universal joints at bricklink (really cheap). If the shop you're buying from has a minimum amount I'd advice stacking up on rare-ish gears (worm wheels and gear racks) because they always come in handy at some point.
mattallen37 wrote:Remember, both gears and levers have play. The more you use, the more they introduce.
That goes for universal joints too, so don't use too many inline (like three as the very maximum).
Re: 3-motor arm... with less gears?
Posted: 30 Oct 2011, 11:29
by spillerrec
dimasterooo wrote:Otherwise, I agree that pneumatics can also get the job done, but you won't have as much control over the outcome. If you want to do that using one motor (you usually need one for pumping and one for flipping the switch), it gets a bit more complex (you'd have to use a differential).
I tried making a complete robotic arm using pneumatics and it was quite difficult to control. The gripper however was easy to control as you just need to close it completely or open it completely, no finer control is needed. And because it use levers, it was quite easy to make a
small 4 armed gripper:
I do like your idea with pneumatics. I have normally been using the solution from Ultimate Builders Kit which used a slip gear, but your solution sounds better so I will try it out someday.
stryker001 wrote:I like the idea of using counterweights, I'm wondering if I can us my NXT as a counterweight.
I did an experiment once with counterweights, trying to make each link completely balanced:
There are both a NXT and RCX here. Worked fairly well. Notice how weak the base construction is, it would easily sway from side to side if you pushed it, but it had no problems operating on its own because of the counterweights.
Re: 3-motor arm... with less gears?
Posted: 31 Oct 2011, 15:51
by stryker001
Thanks all. I couldn't remember bricklink for the life of me... I kept thinking brickwall or something.
I did some work on my arm and came up with a 2-elbow design, where each elbow section is attached directly to the motor. I'd like to have like 5 of the NXT motors, but I can work with just 3. Keeps the weight down.
Now I just need to work on ramping the speed of the motors to start/stop.
Re: 3-motor arm... with less gears?
Posted: 31 Oct 2011, 16:52
by mattallen37
stryker001 wrote:...Now I just need to work on ramping the speed of the motors to start/stop.
A while ago I made an NXC function that did that, and it worked fairly well. Take a look at the following:
Code: Select all
char Ramp(byte port, char speed, byte delay)
{
char CS=MotorActualSpeed(port);
if(CS=speed){
return 0;
}
if(CS<speed){
CS++;
Wait(delay);
OnFwd(port, CS);
return 1;
}
if(CS>speed){
CS--;
Wait(delay);
OnFwd(port, CS);
return -1;
}
}
task main(){
until(Ramp(OUT_A, 100, 10)==0);
}