Low-cost controller for 10 small DC servo motors with quadrature encoder

Translate This Thread From English to

Threaded View


Hey,

I need expert advise !!!

I am planning to build a robotic rover with 6 wheels. Rover will be
able to carry approximately 10kg load.
Each wheel will be driven by a separate small DC servo motor with
quadrature encoder.
Heading angle of 4 of these motors will be controlled by separate
motors. Therefore there will be 10 motors to drive wheels.
Note that, these motors are NOT radio control (RC) motors.

Following links shows the source of my inspiration;
http://ksjtracker.mit.edu/wp-content/uploads/2008/02/marssciencelab.jpg
http://ridwan.chendarma.com/v/project/
http://www.emeraldinsight.com/fig/0490340205001.png

Can you advise me on the following
   * Where can I find low-cost small DC motors with quadrature
encoders?
   * Where can I find servo motor controller for these 10 motors?  (I
want to be able to control these motors in velocity and position mode.
Therefore I am looking for some kind of of PID controllers)?
   * Do you know any rover mechanical CAD design files on internet?

Thank you.

Albert Goodwill
albertgoodwill @ gmail com

Re: Low-cost controller for 10 small DC servo motors with quadrature encoder



Albert Goodwill wrote:


I can't give expert advice, but it sounds like you need 10 DC gearmotors
with encoders, 10 motor drivers (the amplifier electronics), and a
microprocessor to direct the motor drivers.  The microprocessor can easily
drive the motors with a PWM signal, although you'll have to search for one
with 6 timers.  The problem I see is when you say "low cost".  You might be
able to get the motors in a surplus shop, but with encoders they will still
probably be $30 to $50 US each (if you're lucky).  Motor drive amplifiers
will probably have to be new, and they are $30 to $100 US, each.  With
structure and everything else, you're probably looking at $1000US.  Does
that meet your definition of "low cost"?

Also, encoders don't do velocity all that well, the microprocessor has to
compute it and noisy values result, which may have to be averaged,
introducing a time lag in the data.  A tachometer gives better velocity
sensing, but isn't that great for positioning.

You'll scale back the cost a bunch if you just use 4 wheels.  Once it is
working, you could add the other two wheels if your requirements and budget
dictate so.

Here's a good place for micros and drive amplifiers:

http://www.bdmicro.com/

I've used several of their products, and they provide great technical help
during the build.  The AVR ATmega128 processor has plenty of computation
power for servo loops (but only 4 timers).  It also has good Linux support,
which was important to me.

There are also serial servo controllers that can issue PWM commands to many
motor drivers, the processor commands it over a single RS-232 line.

I think the Mars Rover double-bogie design is available on the net, but I
don't have any pointers.

Mike Ross


Re: Low-cost controller for 10 small DC servo motors with quadrature encoder



Sorry, no wheel help here.  But, for CAD files, I suspect that if you
contact the people at one of the links you provided , they may have
some CAD Files.

Joe Dunfee

Re: Low-cost controller for 10 small DC servo motors with quadrature encoder




(I

You might want to look at our IsoPod(TM) and ServoPod(TM) line.

With a single one of those boards, you can have up to 6 hardware
quadrature inputs, and either 6 complementary PWM outputs, or 12
independent (single line) LAP PWM outputs. If your four steering
motors were analog feedback, rather than quadrature, you'd have enough
quadrature and PWM to drive the whole robot off of a single processor
board, with PID and position/velocity control on all.

Randy M. Dumse
www.newmicros.com

Re: Low-cost controller for 10 small DC servo motors with quadrature encoder




Thank you for the information.
I have just checked your web site with for your IsoPod(TM) and
ServoPod(TM) product line.
They sound FANTASTIC!!!

However, they seem to have 2 quadrature encoder inputs rather than 6.
Am I missing something here? Can you tell me how to connect 6
quadrature encoders?

Can IsoMax (Virtually Parallel Machine Architecture Programming
Language for IsoPod(TM), ServoPod(TM)) handle 10 PID concurrently (6
with quadrature encoder feedback and 4 with analog feedback)?

Your NMIH-0030 H-Bridge product (10 of those) also seems to be
suitable for my application. I assume that in addition to 10 PWM
signals, IsoPod(TM) and ServoPod(TM) can also concurrently produce Dir
(direction)
signals. (Can you confirm this please?)

Is it also possible on to decode multiple channel RC pulse streams
(see http://www.veetail.com/HowRCworks3.shtml ) with IsoPod(TM) and
ServoPod(TM)?

Thank you

Albert Goodwill
albertgoodwill at gmail com


Re: Low-cost controller for 10 small DC servo motors with quadrature encoder




In my opinion, nothing else comes close for motion control.

The IsoPod(TM), ServoPod(TM), have two built in hardware quadrature
inputs that only do quadrature decoding. They share pins with some of
the timers. There are 16 timers, 14 with pins. The 16-bit timers are
programmable and can do the function of quadrature as well. They can
be concatenated to give a full 32-bits of quadrature.

So you can do the 6 channels of quadrature in hardware by using the
two built-ins and four timer channels. You still have a couple timers
left over for other purposes. By hardware, I mean, once set up, you
only have to read them when you want the answer. There is no software
burden on the processor to have these channels coming in. I have some
code examples for setting up 32-quadrature decodes. I use 6 channels
input on the Panavision Back Pan Plus movie crane, so I know it works
and works well. In fact, I even use the other timers to pull the
velocity of the signal by doing pulse width timing on all channels.

I'm not absolutely certain IsoMax(TM) can handle that many channels of
PID. It rather matters how often you want updates. Perhaps at 100
updates per second, I'd think there is a good chance of operating in
purely high level.

Then NMIH-0030 is not my favorite H-bridge because the PWM upper limit
is low, in the audio range. I much prefer the NMIH-0050, which is more
robust, and we've tested at higher rates. Depends on your motors.
Coreless are low inductance and need higher PWM frequencies or they
will be operating in the resistive range, which is pure waste of
power.

Have you looked into Locked Anti Phase (LAP)? With a single PWM line
you can send both direction and power. At 50% the wheel is locked, at
25% it is half power one way, and at 75% it is half power the other
way. Again, we've set up the NMIN-0050 to be able to operate off of
LAP adding an inverter to the board. Since it isn't my favorite, I
don't remember how the NMIN-0030 is set up for LAP.

But either LAP, or complementary, or PWM on one line or another at a
time, you have to control the direction of the motor, and may have to
reverse a line when crossing zero, if you use, say, a PWM line for
power and a port line for direction. Only LAP and complementary PWM
take care of themselves that way.

Yes, it is also possible to decode RC pulse streams. The timers are
again wonderfully configureable, and can be used in a processor hands-
off mode to measure the width of a pulse. Being able to reliably pull
a string of pulse widths out though, may depend on getting back to the
stream often enough, and that may depend on how loaded your processor
is with the PID routines. Again I have some code examples of pulling
the pulse width on a single servo channel, and we've got support in
the language for doing that measurement.

Randy

Re: Low-cost controller for 10 small DC servo motors with quadrature encoder



RMDumse wrote:

It is pretty easy to decode the entire stream of RC pulses with the
DSP56F807, but you need to open up the RC receiver to do it. I started
with a pair of timers, but I think it is just using one of them now (it
has been several years since I coded that). All of the servo signals are
available on a single signal just before the decoder part of the
receiver. The decoder is either a shift register or a Johnson counter
depending on the receiver design. In either case, the composite signal
is used as the clock to the counter or shift register.

BobH

Re: Low-cost controller for 10 small DC servo motors with quadrature encoder



On Sat, 06 Sep 2008 06:40:16 -0700, Albert Goodwill wrote:


Our FPGA cards with SoftDMC firmware can currently drive 8 servo
motors/card at ~20 KHz PID update rate, 10 would be a minor hack.
about 16 axis worth of control hardware/CPU will fit in a 400K FPGA

Peter Wallace
Mesa Electronics



Site Timeline