Feature rich servo controller
Hi All,
I'd like to write a servo controller that allows another system to offload some of the low level motion control work to the controller. This is primarily for amateur robotics applications. I'm trying to work out whether a controller implementing the features below would be replicating effort of existing open source drivers and not really worth the bother. Has anyone come across an existing controller that can some/any of the following?
Thanks in advance,
Andy
I'd like to write a servo controller that allows another system to offload some of the low level motion control work to the controller. This is primarily for amateur robotics applications. I'm trying to work out whether a controller implementing the features below would be replicating effort of existing open source drivers and not really worth the bother. Has anyone come across an existing controller that can some/any of the following?
- Position feedback
- Alterable traversal rate(s) changeable in real time (mid motion)
- Different seeking modes (acceleration, stall detection, hammering, error margins)
- Different communication modes (position queuing, position interrupts, upstream arrival and stall messages, etc)
- and so on...
Thanks in advance,
Andy

















Embed a 3D viewer in your Instructable
Maker Faire 2013 Slide Show!
Fried Contest Launches 5/13, HQ Celebrates with Fried Day Friday
MEH! :D A Build Night at Montana Ethical Hackerspace!
Got contest ideas? Want to help HQ staff?
Large Instructables Robot head made out of driftwood, check it out!
Call for pre-made parts!
The Instructables Green Design Contest is starting on Earth Day!
My instructable made it into Popular Science!
Orbotix wants to see your hacks - you could win a Sphero!


Visit Our Store »
Go Pro Today »




The goal is to have a chip (or a board) that is specialised at taking commands (probably i2c) and controlling one or more servos, with some clever motion control options. What I'd like to end up with is a "drop in" chip that will handle servo control without putting much load on your robots' "brain" level controller(s).
Andy.
There are many different Arduino compatible motor controllers out there. You don't see many for servos because they don't have the power demands of most motors and are easier to work with then most stepper motors. So an added controller chip in conjunction with your micro controller/ robot "brain" isn't needed. The processing power needed to run a set of servos isn't putting any more of a load on the "brain" then having the brain pass a signal off to another controller. Adding another IC to the mix is only reducing your battery life.
My intention is to load down a few micro controller units (MCUs) for high level processing, things like sensor processing, maybe even a neural network implementation. This is my idea for reducing shared effort across control nodes.
The power overhead of extra MCUs is as nothing next to the power consumption of a servo. I'd argue if I can create a controller that can put down a set amount of force, detect a stall and feedback realtime effort exertion/resistance data I could reduce controller processing load significantly. The approach as I describe it will scale fairly effectivly too, as far as I can see.
Thinking about it, if I program it correctly the library could be used in either case (as a servo manager or arduino library). Is this something that you could see yourself using?
My logic for measuring load would be something like this - increment position 1 step in the desired direction then track how long it takes to get there. "There" would be a set value held either in EEPROM or flash (self flash a data table or an additional computer managed pre flash configuration step?) or algorithmically calculated on the fly.
If you have these two bits of information (where it should be & where it is) my reasoning is that you can do clever things with the PWM control signal. For example sending the signal less often than expected, reducing effective force and speed in some servo models (I have done this bit before).
Andy.
Now, if you were talking about replacing the electronics, you'd be something novel, though I am pretty sure you can already buy retrofit units that can do what you're proposing
Your right, I'm not measuring force (I don't think I said this...). However we can synthesize resistance data from target position and actual position data. If I'm riding a bike at 2kph and it's hard work, I deduce I'm going up a steep hill and to reach my target speed of 4kph I'll have to pedal harder.
Andy.
A.
A.