5 Commits

Author SHA1 Message Date
Kristof Robot
4d399627e6 Added direct support for wheel encoders (Arduino Uno)
Added support for wheel encoder counting directly on the main Arduino board.
This allows connecting wheel encoders directly to the Arduino board,
without the need for any additional wheel encoder counter equipment.

For speed, the code is directly addressing the specific Atmega328p ports and interrupts, making this implementation Atmega328p (Arduino Uno) dependent.
It should be easy to adapt for other boards/AVR chips though.
2014-12-29 20:13:22 +01:00
Kristof Robot
2c9881552b Bugfix: added resetPID() call in RESET_ENCODERS statement,
to ensure that PID gets reset when encoders get reset.
2013-08-16 15:04:33 +02:00
Kristof
dad031ee2c Enhanced PID algorithm
Enhanced PID algorithm based on the series of blog posts at http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid-introduction/
Specifically:
    1. Avoid derivative kickback - http://brettbeauregard.com/blog/2011/04/improving-the-beginner%E2%80%99s-pid-derivative-kick/
    2. Allow smooth on-the-fly tuning changes - http://brettbeauregard.com/blog/2011/04/improving-the-beginner%E2%80%99s-pid-tuning-changes/
    3. Reset windup mitigation - http://brettbeauregard.com/blog/2011/04/improving-the-beginner%E2%80%99s-pid-reset-windup/
    4. Bumpless initialization - http://brettbeauregard.com/blog/2011/04/improving-the-beginner%E2%80%99s-pid-initialization/
2013-08-16 10:52:57 +02:00
Patrick Goebel
849cb2ec83 Incorporated changes from James Nugen into ROSArduinoBridge library 2012-12-27 16:48:12 -08:00
Patrick Goebel
3d028f3bec Added ROSArduinoBridge sketch which breaks out the motor controller and encoder functions 2012-12-26 09:42:33 -08:00