Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Derivative Kick #99

Closed
ssejrog opened this issue Apr 14, 2024 · 1 comment
Closed

Derivative Kick #99

ssejrog opened this issue Apr 14, 2024 · 1 comment
Assignees
Labels
bug Something isn't working

Comments

@ssejrog
Copy link
Member

ssejrog commented Apr 14, 2024

Expected Behavior

PID targets can be changed and the robot will switch to following the new target.

Actual Behavior

The robot follows a new target, but 1 iteration after the target has changed there is derivative kick.

This can be solved by getting the derivative of the input sensor value instead of error.

@ssejrog ssejrog added the bug Something isn't working label Apr 14, 2024
@ssejrog ssejrog self-assigned this Apr 14, 2024
ssejrog added a commit that referenced this issue Jun 2, 2024
@ssejrog
Copy link
Member Author

ssejrog commented Jun 2, 2024

Fixing this removes a (probably only used by me) strange behavior where you can set target and compute the PID with a current of 0. I do this in some of my code that's EZ-Template based, here and here.

To keep this functionality, a new function was added to PID called .compute_error(). You pass error and current into this, and it'll compute PID ignoring target. current is only used for derivative calculation.

ssejrog added a commit that referenced this issue Jun 2, 2024
ssejrog added a commit that referenced this issue Jun 10, 2024
* New action for deploying website

* ⬆️ PROS 4 Porting work (#100)

* New action for deploying website (#98)

* PROS 4 Porting work

* Revert gitignore

* Added imu loading animation

---------

Co-authored-by: Jess Zarchi <[email protected]>

* 🐛Fixed unit conversion for exit conditions

* 🐛Fixed derivative kick #99 (#105)

* ✨Added imu scaling #104 (#106)

* ✨Imu velocity exiting #102 

* PID class has secondary sensor velocity support, implemented that with imu accel into exit conditions

* Made names more clear, added missing functions

* 🐛Max text width is wider #112 (#113)

* 🐛Exit condition print error #111 (#114)

* ✨Motion chaining #109 (#115)

* Motion chaining and quick exits are functional #109

* Added reverse constants, okapi units, finalized function names and comments

* 🐛Fixed scaling in drive pid #110 (#116)

* Upgraded example project, cleaned formatting everywhere

Main project builds fine, the example project is giving me strange errors about the LCD.  Not sure how to fix this

* Timers now correctly reset between motions #117

* Added liblvgl to example project, updated template

* Changing max speed works, new (old) default constants, new constructor #118 #119 #120

* Fixed typo in example project

* Cleaned up example project

* Main project updated to example, fixed #122 and #123

* Final 3.1.0 push.  Template and example project finalized

---------

Co-authored-by: Will Xu <[email protected]>
@ssejrog ssejrog closed this as completed Jun 10, 2024
ssejrog added a commit that referenced this issue Jun 10, 2024
* New action for deploying website (#98)

* ⬆️3.1.0 (#124)

* New action for deploying website

* ⬆️ PROS 4 Porting work (#100)

* New action for deploying website (#98)

* PROS 4 Porting work

* Revert gitignore

* Added imu loading animation

---------

Co-authored-by: Jess Zarchi <[email protected]>

* 🐛Fixed unit conversion for exit conditions

* 🐛Fixed derivative kick #99 (#105)

* ✨Added imu scaling #104 (#106)

* ✨Imu velocity exiting #102 

* PID class has secondary sensor velocity support, implemented that with imu accel into exit conditions

* Made names more clear, added missing functions

* 🐛Max text width is wider #112 (#113)

* 🐛Exit condition print error #111 (#114)

* ✨Motion chaining #109 (#115)

* Motion chaining and quick exits are functional #109

* Added reverse constants, okapi units, finalized function names and comments

* 🐛Fixed scaling in drive pid #110 (#116)

* Upgraded example project, cleaned formatting everywhere

Main project builds fine, the example project is giving me strange errors about the LCD.  Not sure how to fix this

* Timers now correctly reset between motions #117

* Added liblvgl to example project, updated template

* Changing max speed works, new (old) default constants, new constructor #118 #119 #120

* Fixed typo in example project

* Cleaned up example project

* Main project updated to example, fixed #122 and #123

* Final 3.1.0 push.  Template and example project finalized

---------

Co-authored-by: Will Xu <[email protected]>

* Hotfix broken link

---------

Co-authored-by: Will Xu <[email protected]>
ssejrog added a commit that referenced this issue Jun 10, 2024
* Upgraded example project, cleaned formatting everywhere

Main project builds fine, the example project is giving me strange errors about the LCD.  Not sure how to fix this

* Timers now correctly reset between motions #117

* Added liblvgl to example project, updated template

* Changing max speed works, new (old) default constants, new constructor #118 #119 #120

* Fixed typo in example project

* Cleaned up example project

* Main project updated to example, fixed #122 and #123

* Final 3.1.0 push.  Template and example project finalized

* Bring final 3.1.0 over to dev (#125)

* New action for deploying website (#98)

* ⬆️3.1.0 (#124)

* New action for deploying website

* ⬆️ PROS 4 Porting work (#100)

* New action for deploying website (#98)

* PROS 4 Porting work

* Revert gitignore

* Added imu loading animation

---------

Co-authored-by: Jess Zarchi <[email protected]>

* 🐛Fixed unit conversion for exit conditions

* 🐛Fixed derivative kick #99 (#105)

* ✨Added imu scaling #104 (#106)

* ✨Imu velocity exiting #102 

* PID class has secondary sensor velocity support, implemented that with imu accel into exit conditions

* Made names more clear, added missing functions

* 🐛Max text width is wider #112 (#113)

* 🐛Exit condition print error #111 (#114)

* ✨Motion chaining #109 (#115)

* Motion chaining and quick exits are functional #109

* Added reverse constants, okapi units, finalized function names and comments

* 🐛Fixed scaling in drive pid #110 (#116)

* Upgraded example project, cleaned formatting everywhere

Main project builds fine, the example project is giving me strange errors about the LCD.  Not sure how to fix this

* Timers now correctly reset between motions #117

* Added liblvgl to example project, updated template

* Changing max speed works, new (old) default constants, new constructor #118 #119 #120

* Fixed typo in example project

* Cleaned up example project

* Main project updated to example, fixed #122 and #123

* Final 3.1.0 push.  Template and example project finalized

---------

Co-authored-by: Will Xu <[email protected]>

* Hotfix broken link

---------

Co-authored-by: Will Xu <[email protected]>

---------

Co-authored-by: Will Xu <[email protected]>
ssejrog added a commit that referenced this issue Jun 10, 2024
* New action for deploying website (#98)

* Upgraded example project, cleaned formatting everywhere

Main project builds fine, the example project is giving me strange errors about the LCD.  Not sure how to fix this

* Timers now correctly reset between motions #117

* Added liblvgl to example project, updated template

* Changing max speed works, new (old) default constants, new constructor #118 #119 #120

* Fixed typo in example project

* Cleaned up example project

* Main project updated to example, fixed #122 and #123

* Final 3.1.0 push.  Template and example project finalized

* ⬆️3.1.0 (#124)

* New action for deploying website

* ⬆️ PROS 4 Porting work (#100)

* New action for deploying website (#98)

* PROS 4 Porting work

* Revert gitignore

* Added imu loading animation

---------

Co-authored-by: Jess Zarchi <[email protected]>

* 🐛Fixed unit conversion for exit conditions

* 🐛Fixed derivative kick #99 (#105)

* ✨Added imu scaling #104 (#106)

* ✨Imu velocity exiting #102 

* PID class has secondary sensor velocity support, implemented that with imu accel into exit conditions

* Made names more clear, added missing functions

* 🐛Max text width is wider #112 (#113)

* 🐛Exit condition print error #111 (#114)

* ✨Motion chaining #109 (#115)

* Motion chaining and quick exits are functional #109

* Added reverse constants, okapi units, finalized function names and comments

* 🐛Fixed scaling in drive pid #110 (#116)

* Upgraded example project, cleaned formatting everywhere

Main project builds fine, the example project is giving me strange errors about the LCD.  Not sure how to fix this

* Timers now correctly reset between motions #117

* Added liblvgl to example project, updated template

* Changing max speed works, new (old) default constants, new constructor #118 #119 #120

* Fixed typo in example project

* Cleaned up example project

* Main project updated to example, fixed #122 and #123

* Final 3.1.0 push.  Template and example project finalized

---------

Co-authored-by: Will Xu <[email protected]>

* Hotfix broken link

---------

Co-authored-by: Will Xu <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant