monitoring back EMF

So I currently have a happy little robot, if you can call 180+lbs little, scooting around. 4 wheel 24V tank style controls. I have a R3 Mega runnning the show, and some VEX883 speed controllers on the motors. They are called speed controllers, but they are, afaik, just PWM sources that limit the voltage to the wheels, thereby limiting power output. I want to implement some rudimentary speed controll by looking at the back EMF of each motor, so I can tell if one is slipping so I can limit it to not throw dirt everywhere, and send a little extra juice to the wheel right behind or infront of it to keep things rolling.
My initial plan was to use the optical encoders I have in a box somewhere, but I don't really think I need that percision or complication any more. I am thinking a voltage divider to keep things in range and look at the back EMF of each motor to see who is up to what.

first question, how do i protect the Mega from pulses and other bad things? a clamping zener? does it need to be more robust? because of the drive type, do I need to filter it in some way? permanant magnet DC motors. and of course they reverse, so that must complicate things of course.

also, if you were to ballpark guess, how much resolution of wheel speed do you think I can realisticly expect? I doubt I can get real world position feedback with this system, but can I tell the difference between inside and outside wheels in a turn?

thanks guys, I know this has all been done before, but I am still looking for a good example of it, circuit design aint my strong point.

So I found some resources, sounds like I can either

A) shut down the motor for a split second and read the EMF,
B) listen for pulses in the current which are perfectly related to rotor speed
3) monitor the voltage on my output leads AND the current running thru hte motor and get a decent idea of the speed

I like 3 my favorite. Sadly my motors can stall at 110 amps, but I have never seen them peak past 70 on my analog meter. I have some 75 amp meters that will interface w/ teh arduino, BUT they only can take 50+ amps for about 3 seconds max. two in parallel, would that work? the cost is too much I am afraid. anyone know of a 150 or so ampmeter solution?

Monitoring current seems feasible, only you have to design software algorithm, which by comparing power from all 4 motors would make a decision if there is a slipping/skidding.

Yes you can monitor current spikes from a motor to get an idea of the speed. I have implemented speed control like this many years ago, using the pulses as a voltage controlled oscillator in a phase locked loop arrangement. It was an electric train set.

However, these are very noisy and sometimes erratic so care must be taken when doing this with a conditioning circuit. The exact circuit will depend on the motor you are using. A good scope is essential to do this project.

did you have to say 'good' scope? I have an older 2 trace analog techtronix, it aint no sample and hold digital. I think for now I am going to try to use the amp meters I have since I just found out the breakers that are on htis bot are rated to 40 amps and afaik have never tripped. I suspect the mildly undersized wires, mostly 10guage, combined w/ poor crimp technique on the original designers part have saved me by throttling down the max draw of the motors due to all these lossess.

those higher current amp\meters sounded awesome, but it looks like they can only sense single direction flow, and my motors are reversible.

now to psuedo-code out a PID controller so I can translate my remote commands to wheel speed instead of motor voltage!

@grumpy_mike: with the cost and simplicy of encoders, would you ever use the current spike method again? is it worth it to attempt to find the resolution i desire that way and save mechanical simplicity, or as an EE novice will Ipull all my hair out? I am leaning towards putting off position recognition till I get encoders mounted, and calling true speed controll Good enough!

would you ever use the current spike method again?

Well for something like a model train you can't get at the motor to put an encoder on it so it would be a valid technique. However for something big like you are using I would use encoders if they could be fitted.