Squirrels have fuzzy tails.
0 Members and 1 Guest are viewing this topic.
For precision stops one would probably use PID. With simple if (position >= threshold) { stop(); } You will get an overshoot which severity will be proportional to inertia.If You are using ADC to get data from encoder there is no way to have an interrupt for a specific position, as You only find out about current position after ADC conversion is done inside microcontroller, so that would be more like polling. Actually it would look something like pseudo-code above. With PID You can regulate velocity to make shaft de-accelerate as it approaches it's destination.
I looked into building my own high-torque servos with encoders and controllers, and I came to the conclusion that there's a reason these guys are expensive. It's hard!High-torque servos are used all the time in industrial automation and motion control situations. However, if you think the MX-106/EX-106 is expensive, then you're going to get a heart attack when you see the prices those guys pay. The reason they pay those prices, is that they need gear that actually works for a long time, and building those kinds of things actually costs money.A servo (any closed-loop controlled motor -- not just cheap "hobby servos" used in RC planes/cars) is very simple as an idea: A motor, possibly a gearbox, a rotaty encoder (typically an absolute sensor on the output after the gearbox,) a motor controller, and a microcontroller to tie it all together. Plus the mechanical engineering to fit it all into a particular form factor, and keep it there under load. Once you figure out how to build and integrate it all yourself, you're not really saving much money compared to buying it from the people who build them in bulk!
The torque in those servos comes from the gearbox as much as from the motor. Plus they may be running the motors hotter than "rated" to get more torque.
The servos do have a built-in heat sensor, and if you stall them for too long, they will overheat and shut down. You then have to wait 20 minutes before you turn them on again. If you wait less, you will most likely seize up the motor and it will be lost forever.Unfortunately, robotics for real is a pretty expensive hobby :-( You can learn a lot playing with Arduinos and RC servos and RC cars and webcams, but once you want to take the step up from toys, it's an order of magnitude in cost! This is different from, say, computers, where there's good options all the way up and down the cost/complexity spectrum. Or painting, where even a high end paintbrush is unlikely to break catastrophically :-)
Some credit cards have "accident protection" where, if something breaks within X time of purchase (usually 90 days,) it's covered by their protection. You might want to plan as much as possible out before you buy the servos, then use such a card for the actual purchase, and get as much testing as you can in within that period!
Same here! Do they come with insurance? With my luck I would destroy it the first day I got it, then your out $500. A big difference from frying a regular $15 servo.
You are very knowledgeable about many different areas of Robotics, do you do this for a living?
QuoteYou are very knowledgeable about many different areas of Robotics, do you do this for a living?Thanks, but no :-) A real robotics engineer would look at me and laugh. I'm good with the software part, having spent my entire career in various kind of distributed software and software/hardware/electronics, but the mechanical and robotics parts I've had to dive into head first and learn as I go. And the difference is huge: In software, an experiment is pretty low cost, and you can throw it away if it fails. In robotics, an experiment may easily be hundreds of dollars in physical materials and tooling, and if it doesn't work, it'll take a long time to recover the parts that can be recovered, and then you cry as you chuck your carefully crafted metal parts in the recycling bin...