From 2b4567ec08827b8ce20c506fcac7430d6cd13f79 Mon Sep 17 00:00:00 2001 From: Patrick Goebel Date: Mon, 18 Apr 2016 06:30:15 -0700 Subject: [PATCH] Added resetPID() call when robot velocities are 0 to fix motion perserverance bug --- .../src/libraries/ROSArduinoBridge/ROSArduinoBridge.ino | 1 + .../src/libraries/ROSArduinoBridge/diff_controller.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/ros_arduino_firmware/src/libraries/ROSArduinoBridge/ROSArduinoBridge.ino b/ros_arduino_firmware/src/libraries/ROSArduinoBridge/ROSArduinoBridge.ino index a8e7201..4c144d6 100644 --- a/ros_arduino_firmware/src/libraries/ROSArduinoBridge/ROSArduinoBridge.ino +++ b/ros_arduino_firmware/src/libraries/ROSArduinoBridge/ROSArduinoBridge.ino @@ -316,6 +316,7 @@ int runCommand() { lastMotorCommand = millis(); if (arg1 == 0 && arg2 == 0) { setMotorSpeeds(0, 0); + resetPID(); moving = 0; } else moving = 1; diff --git a/ros_arduino_firmware/src/libraries/ROSArduinoBridge/diff_controller.h b/ros_arduino_firmware/src/libraries/ROSArduinoBridge/diff_controller.h index 678800c..5f2f8c4 100644 --- a/ros_arduino_firmware/src/libraries/ROSArduinoBridge/diff_controller.h +++ b/ros_arduino_firmware/src/libraries/ROSArduinoBridge/diff_controller.h @@ -100,7 +100,7 @@ void doPID(SetPointInfo * p) { /* * allow turning changes, see http://brettbeauregard.com/blog/2011/04/improving-the-beginner%E2%80%99s-pid-tuning-changes/ */ - p->ITerm += Ki * Perror; + p->ITerm += Ki * Perror; p->output = output; p->PrevInput = input;