|
Re: Using encoders for traction control help
One way we've discussed (with no encoder wheel, just the drive wheels) is to detect the rate of acceleration of the wheel in comparison to the angle of the joystick. If the wheel acceleration vs. joystick angle "acceleration" is at one curve and suddenly spikes, the wheels are probably slipping, and so you dial the speed back and reengage (the ABS method).
For your application, I would suggest having an encoder wheel for every independently controlled axis (as in 2 for a differential drive, one on each side), that way you could do turning more easily. You might be able to fool a pre-existing PID control function into working between the drive wheels and the encoder wheel. Probably the best way to do this would be to take the PID function included with WPILib and modify it to do all of the adjustment on one entity, instead of scaling both (usually it scales up the slower one and scales down the faster one, but you just want to scale down the faster one).
I suggest the mighty Wikipedia and Google for details on car traction control, as it's all done without encoder wheels, and will probably not be that different from what you're trying to do.
|