36 Commits

Author SHA1 Message Date
Patrick Goebel
dd58da63d1 Fixed comment in sensors.h 2016-09-12 05:41:23 -07:00
Patrick Goebel
b8931b271d Added fusionGetOrientation function to Adafruit 9-dof imu in imu.ino 2016-09-12 05:40:22 -07:00
Patrick Goebel
9bcf7fff88 Restored ROSArduinoBridge.ino default values 2016-09-12 05:38:44 -07:00
Patrick Goebel
d8dd6a5b13 Restored defaults to ROSArduinoBridge.ino 2016-06-01 05:52:48 -07:00
Patrick Goebel
1373f49137 Fixed typo in comment 2016-04-18 06:36:06 -07:00
Patrick Goebel
2b4567ec08 Added resetPID() call when robot velocities are 0 to fix motion perserverance bug 2016-04-18 06:30:15 -07:00
Patrick Goebel
d03061ae60 Added missing resetEncoders() function to encoder_driver.ino 2016-04-18 06:29:00 -07:00
Patrick Goebel
79e5a3b1a8 Updated imu.h and imu.ino and increased command argv array size from 16 to 32 to handel PID update 2016-04-11 08:03:37 -07:00
Patrick Goebel
142e529de9 Replaced all strings with F() macro in Serial.print statements 2016-04-06 06:29:51 -07:00
Patrick Goebel
9a84380e7c Replaced all strings with F() macro in Serial.print statements 2016-04-06 06:29:19 -07:00
Patrick Goebel
6adb1bde26 Added preliminary support for Adafruit 9-DOF IMU to firmware but not yet to ROS nodes 2016-04-04 08:45:51 -07:00
Patrick Goebel
038e0cf9b4 Added support for Adafruit Motor Shield V2 and Arduino Motor Shield V3 2016-03-15 07:49:35 -07:00
Patrick Goebel
453eae91b5 Added blank line for readability in encoder_driver.ino 2016-03-15 07:47:23 -07:00
Patrick Goebel
bf88d3fa03 Fixed indentation in encoder_driver.h 2016-03-15 07:46:42 -07:00
Patrick Goebel
f7c01d41c5 Added support for Arduino Motor Shield R3 2016-01-27 06:26:10 -08:00
Patrick Goebel
5933239b70 Added support for RoboGaia 3-axis encoder shield 2016-01-27 06:25:41 -08:00
Patrick Goebel
4fd35aa2b5 Added check for duplicate servo pins in servo array 2015-12-15 06:45:31 -08:00
Patrick Goebel
33104433ca Added new servo support 2015-12-13 08:06:59 -08:00
Patrick Goebel
58fc3dee09 Simplified #ifdef for PWM servos 2015-12-07 07:32:31 -08:00
Patrick Goebel
56686b53d2 Fixed #elif statement for ARDUINO_ENC_COUNTER 2015-12-07 07:01:11 -08:00
Patrick Goebel
5a4affcfba Moved MAX_PWM into diff_controller.h 2015-12-07 06:52:56 -08:00
Patrick Goebel
eacd926753 Rearranged some lines for readability 2015-12-07 06:51:56 -08:00
Patrick Goebel
5f0125da8b Fixed some indentation 2015-12-07 06:44:50 -08:00
Patrick Goebel
ca9dc66cd3 Changed #if defined to #ifdef in motor_driver.ino 2015-12-06 21:42:07 -08:00
Patrick Goebel
1a560fa508 Replaced #if defined with #ifdef statements in encoder_driver.ino 2015-12-06 21:36:15 -08:00
Patrick Goebel
b7f922f7e7 Fixed ifdef typo in encoder_driver.ino 2015-11-22 17:06:20 -08:00
theroboticsheep
e9810841b4 added support for rotating servos at different speeds 2015-04-18 18:29:53 -07:00
theroboticsheep
eda206f68c changed default sweep delay to zero so that servos will behave normally unless delay is increased 2015-04-17 15:06:24 -07:00
theroboticsheep
ddecaa0b2c added speed controlled servo sweep 2015-04-17 14:52:46 -07:00
Patrick Goebel
415dde63ee Changed readEncoder() arguments from 0, 1 to LEFT, RIGHT in diff_controller.h 2015-01-30 06:17:47 -08:00
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
7887d639f3 Bugfix - removed reset wind-up fix
Removed the reset windup prevention code, as the old code already
took care of that by only incrementing Ierror when output was not being clamped.
2013-08-16 16:16:48 +02: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