View Single Post
  #6   Spotlight this post!  
Unread 25-01-2009, 03:35
daltore's Avatar
daltore daltore is offline
Electronics/programming/design
AKA: Aaron Osmer
FRC #3529 (ausTIN CANs)
Team Role: Mentor
 
Join Date: Dec 2007
Rookie Year: 2007
Location: San Antonio, TX
Posts: 272
daltore has a spectacular aura aboutdaltore has a spectacular aura aboutdaltore has a spectacular aura about
Send a message via AIM to daltore Send a message via MSN to daltore Send a message via Yahoo to daltore
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.