4 ms·
Ask HN: I need powerful and very fast, but silent servos. Where?
I'm currently working on a robot, and this robot needs to be really fast. Think of it like a robotic arm, but it needs to move about as fast as a human can turn his head.
For that, I need appropriate servos that can immediately make such a motion, without a long spin-up time. The effect is that natural movements should be simulatable with that.
Of course, I'd like the servos to be as quiet as possible and as small as possible. The question is : what servos do I buy? Money is not a problem.
- hugo_vincent 16y agoYou'll probably find some in Japanese or German robotics research labs.... good luck buying some off the shelf!
- ComputerGuru 16y agoI've worked on similar tech before (not for a robot though), and found the best option to be a DC motor + optical feedback sensor. It's also the most cost-effective solution. Something to keep in mind: tiny servos (and even stepper motors) can provide the blazing speeds you need...... but not with the torque required. Speed and torque are commonly traded-off against one another. You'll need to first determine what sort of resistance/weight the motor will be pulling/pushing, because a lightning-quick motor that will turn in-place the minute any counter-pressure is applied is way worse than a middling-speed motor with decent torque.
- jeb 16y agoA DC-Motor with optical feedback sounds like a pretty good option. They are also much cheaper, are they not? Would I be able to control such a motor appropriately with a standard board like the arduino? Imagine I were moving 2kg 30centimers, and I want this to react as a human hand would (same speed, start time), would this even be possible?
- ComputerGuru 16y agoWay cheaper. And controlling it with an arduino is no problem. You've got to main options for the sensor - either an optical tracker that is pointed at the shaft and detects the presence of a striped/marked point which appears once every revolution, or the (cheaper but just as reliable, really) solution of an iR sender/receiver pair monitoring the turning of something (imagine a motor shaft turning a fan. The iR pair would be positioned perpendicular to the fan blades, each time a blade crosses the path of the iR, a signal is generated). iR is cheaper. An arduino (or just about any other microcontroller) has an operating frequency way over the rotational speed of the motor. Both optical and iR sensors can easily handle the relatively-slow rotational speed of the shaft. I've used an MC68k from, what, 20 or 30 year old production lines(?) to pull this off. The code is dead simple, just connect the iR/optical output to a counter (which comes built-in in several of the arduino input ports) (you'll need to run it through an inverter first, if you're doing the iR approach) and then loop over the count until it's moved as far as you need it to. The human hand isn't crazy fast the way you're thinking. If you've ever seen a stepper motor snap from one position to another, that is real acceleration. Basic DC motors typically have lower acceleration than that - their acceleration and speed will vary greatly depending on the model chosen. 2KG is not a light weight. I would have recommended the stepper approach, but you'll need motors about the size of your fist running at 12V and a relatively high current to rotate an object of that size. Basic statics says that the farther away from the point of rotation a weight is applied, the stronger its force. You've got 2KG distributed (I assume) evenly across the 30cm surface, it's going to be quite the weight to turn against gravity, so stepper motors are out. Servos, which are basically your run-of-the-mill DC motors with their own close-lood feedback system will work. But you'll have better luck with the larger variety of DC motors available online or in your local electronics store.
- jeb 16y agoNice, that's exactly the info I want to hear. By the way, I need to also measure the position of the object being turned. That is, I was intending for my robot to have two modes - training mode and execution mode, so your DC suggestion makes it even better. Thing is - I don't want to skimp on the positioning logic - I need it pretty accurate in space (sub millimeter) and in time. Overshooting the target is fine, I'll correct it with one of those algorithms. What is the most arduino compatible and accurate measurement method that will handle both use-cases? I should be able to use it both to control my DC motor, and also to record the position of the wheel being turned, even when the motor is switched off?
- ComputerGuru 16y agoYou can't. Once your device is switched-off, you can't know what position it will start up in. The easiest option is to have an initialization routine that will move the motor to a known position. For instance, move it all the way clockwise until it jams (assuming there's a limited range of motion) or until it signals a button, whatever that it has reached a position. This is known as calibration or zeroing.
- jeb 16y agoWhat I mean is that the item it is turning is marked, so I can detect it's position. Using infrared perhaps?
- pingswept 16y agoYou can get motors with encoders built into them that are very, very accurate. You can decode their pulses into position with a quadrature decoder like the HCTL-2020.
- DEADBEEF 16y agoFor a similar project we used the IR sensors off a USB ball mouse along with homemade encoder wheels to provide motor feedback. This method costs next to nothing and is pretty damn accurate. It was a ball mouse which featured two scroll wheels, meaning we could recieve feedback from 4 DC motors using a standard USB interface & mouse driver. We used the mouse buttons as triggers to mark the rotation stop points for use in the initialization routine. The motors we ended up using were high end electric RC car motors. They were the highest torque in the smallest package we could realistically get that still fitted our budget.
- pingswept 16y agoMaxon is a Swiss company that makes very high power-density motors that are commonly used in high-end robots. (I don't know if they're the quietest.) http://www.maxonmotor.com http://www.maxonmotor.com I suspect most of the noise is generated by the gearbox. That makes this seem hopeful: http://www.maxonmotorusa.com/media_releases_maxon-Koax-Drive-KD-32.html http://www.maxonmotorusa.com/media_releases_maxon-Koax-Drive...
- jeb 16y agoThis is exactly my problem. I can look at the picture and see the information, but how do I figure out if that motor will do what I want it to do without buying it and programming it? I need to move 2kg through space in a natural manner - is there any series of numbers I can apply that will allow me tell if that motor would be suitable for this?
- b3nt 16y agoYou can figure out how to properly size a motor from the load you'll be carrying, how fast you want it to accelerate, what sort of power supply you have available, etc. Here's a link to a good, easy-to-parse reference: http://www.amazon.ca/Build-Your-Own-Combat-Robot/dp/0072194642/ref=sr_1_1?ie=UTF8&s=books&qid=1278794090&sr=8-1 http://www.amazon.ca/Build-Your-Own-Combat-Robot/dp/00721946...
- thegoleffect 16y agoCall them, tell them what you're making, and ask for a sample. If it doesn't work, "adjust" your story. Most suppliers will gladly ship out a sample if it is likely that you would buy in bulk in the future. Some will gladly ship to hobbyists. Depends on the person you talk to.
- jeb 16y agoI'm unlikely to buy bulk later. You sure that they will give me a free motor just because I ask for it? Sounds...too good to be true :)
- Keyframe 16y agoDC stepper motors + gecko driver should be a cost effective solution. Define natural movements though. FYI. For example a head turn does not follow a single axis turn (around Y for example). Imagine a line drawn by eyes as head turns, eyes follow an arc. In fact, every single animal motion (human and other animals) follow an arc. First thing you learn when doing an animation.
- crcarlson 16y agoMaxon will occasionally donate motors to students in my experience, but I have not found them to be particularly generous with hobbiests and their motors tend to be fairly pricey. You might consider the motor control packages from this guy http://www.kelinginc.net/index.html http://www.kelinginc.net/index.html or similar. They close the loop for you and you position your motor based on a pulse train which can be generated by a variety of devices. The step-direction control of the servo does tend to generate more vibration than other kinds of inputs, but is very easy to interface with. There are others vendors as well, just search for hobby cnc and servo and examples will pop up. Advanced Motion Control also offers servo amplifiers which take other forms of input than step and direction which might be quieter. As mentioned before, gear boxes are a big producer of noise as are powertrains in general. Toothed Belt drives, especially at low speeds or capstan drives for finite rotation machines can be very quiet. To figure out your motor sizing you need to estimate the speeds and forces / torques on your system. From there you can estimate the power your system needs to produce and then calculate a gear-ratio based on the available motor torques and powers available from off the shelf devices. Maxon's catalog has design rules, equations and worked examples if you want samples of the math. For what it is worth, I would guess that the Kelling 350W motors would be able to move a 2KG mass with what looks to be high accelerations and speeds with a decently designed drivetrain.
- adoyle 16y agoIf money is not a problem, then I think you should not try to hit the perfect solution the first time. Trying to do that will make it harder to get started. I had to build a linear motion platform last spring. Since I had never done anything like that before I decided to just start buying stuff and testing it. I started with some small servos and brackets from Trossen Robotics - http://www.trossenrobotics.com/c/hobby-servos-for-robotics.aspx http://www.trossenrobotics.com/c/hobby-servos-for-robotics.a... and some Phidgets USB controllers from http://www.phidgets.com/ http://www.phidgets.com/ I started with the servos because it seemed cheaper and I could start without having to build a lot of stuff. Then once I was happy with being able to control a two-axis setup with a little webcam on it using Python on a Linux box, I moved up to some 185oz-in steppers from Keling and some more Phidget stepper controllers. One of the big motors with a toothed belt can lift a full can of paint and hold it indefinitely. I chose the Phidgets over Arduino because I didn't want to have to simultaneously learn a new toolchain while I was concentrating on the mechanical stuff. I figure I can always go to an Arduino or other controller if I need to shrink things down. Having now worked with the steppers, I would second the idea of using DC motors with some kind of external feedback, maybe optical shaft encoders or something. Even with steppers, where you can count the number of steps and know where you are, you still really need to be able to run it into a limit switch in order to find some kind of a zero point.
- HeyLaughingBoy 16y agoMaxon motors are about as quiet a motor as I've ever used. But be prepared to open that wallet wide :-) [edit] OK, from reading your responses below I think I misunderstood what you meant. I'm not talking about the typical cheap R/C servos. Maxon makes precision balanced motors with just about every parameter you need to know specified. And then you can just put an encoder on the endcap to close the loop. But the first point still holds: we're talking at least an order of magnitude cost-wise, from R/C servo motors.
- HeyLaughingBoy 16y agoForgetting motor type for the moment, you need to give us numbers. How fast? How much mass must be moved? The inertia of the assembly? Required acceleration? Once you know this, then you'll know how much power is needed to move the object. At that time you can start searching motor databooks to find one that's suitable. And then don't forget you'll want to figure out how precise the motion must be (how much overshoot/undershoot is permissible?) so you can start with the electronic/control system design. Fun stuff!!!