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

Improve Settling #31

Merged
merged 1 commit into from
Nov 14, 2023
Merged

Improve Settling #31

merged 1 commit into from
Nov 14, 2023

Conversation

AndrewLuGit
Copy link
Contributor

When the distance error is less than min_error, we multiply lin_speed by the cosine of the angular error. This causes issues when the distance error is greater than the exit error but the cosine of the angular error is close to zero, since the robot is not moving but still won't exit out of the movement.

To fix this, I added another condition to our settling logic, where count will be incremented when distance error is less than exit error or when distance error is less than min error and the cosine of the angular error is less than 0.1.

@mihirlaud mihirlaud merged commit b19b902 into rewrite Nov 14, 2023
@mihirlaud mihirlaud deleted the improve-settling branch November 14, 2023 23:33
mihirlaud added a commit that referenced this pull request Jan 29, 2024
* Begin rewrite of LEGS

* Streamline controller interface. Move motors to concrete chassis classes

* Add in movement flags. Add BoomerangController

* Add max velocity to move

* Upgrade to PROS 4.0.5

* Rename to VOSS

* Add lead percent to Boomerang builder

* add lvgl

* fix movement

* Fix min error implementation

* Fix reverse movement

* slew

* if negative, max slew

* Make slew a member function

* Selector (#19)

* Create Selector class

* Switch back to procedural programming

* Add label to display current auton. Change to dark theme

* Add radio button functionality

* Simplify text update, remove autonMap

* single-screen selector

---------

Co-authored-by: Andrew Lu <[email protected]>

* Add turn functionality (#21)

---------

Co-authored-by: Andrew Lu <[email protected]>

* Fix oscillations when near target (#27)

* Thread safe ADILocalizer (#22)

* Using mutex instead of bool semaphore

* Cleaner locking

* Changed all variables to atomic

* Include rtos for mutex

* Test cases

* Use mutex pointer

* Remove atomic

Builds, will readd atomic later

* Print to brain

* Mostly fixed atomic

prev_pose doesn't like being atomic

* Use mutex for prev_pose

* Use unique lock

* Testing

* Removed atomic (fixed data abort) & mutex works for abstract localizer

* Fix atomic (again)

* Removed debug prints

* Clean up main.cpp

---------

Co-authored-by: Mihir Laud <[email protected]>

* Minor fixes

* Safeguards (#28)

* Add validation code for ADILocalizerBuilder

* Fix build validation code. Add testing code

* Add safeguards to ADILocalizer update function

* Removed testing code

* add settle_time to PIDController (#20)

* settle_time

* Fix formatting

* Add default for settle_time. Fix angular settling

* Fix IDE warning

---------

Co-authored-by: Mihir Laud <[email protected]>

* commit (#31)

* Implement BoomerangController (#30)

* work

* Add settle time to Boomerang

---------

Co-authored-by: Mihir Laud <[email protected]>
Co-authored-by: Mihir Laud <[email protected]>

* IME Localizer + IMU (#29)

* Add IME Support for Odom

* Added some protections on the builder - CANNOT TEST CUZ LIBLVGL Broken

* Add testing code. Resolve IDE warning

* Added ability to use IMU on ADI and IME Localizers

Check Voss working thread for more details about what is working/broken

* Remove testing code. Add safeguards for IMELocalizer update

* Fix naming

* Fix boomerang naming

---------

Co-authored-by: cjsport11 <[email protected]>

* Add valid cases for IMU with no track width (#32)

* Imu set pose (#33)

* Create override functions for set_pose in localizers

* Add IMU checks

* change set_heading to set_rotation

---------

Co-authored-by: Andrew Lu <[email protected]>

* commit (#34)

* Added get motor function (#35)

* Added get motor function

* Mark the getMotor function const and remove it from cpp file

* Add getMotor example to main.cpp

* Implement chained(thru) boomerang motion (#36)

* Refector flags (#40)

* commit

* add settling when stopped, fix relative movements

* Refactor flags

---------

Co-authored-by: Andrew Lu <[email protected]>

* Pre-NUKE fixes (#37)

* commit

* add settling when stopped, fix relative movements

---------

Co-authored-by: Mihir Laud <[email protected]>

* commit (#39)

Co-authored-by: Mihir Laud <[email protected]>

* Fix reverse flag for thru case (#41)

* Format Code (#43)

* refactor includes, add clang-format

* create github action

* Committing clang-format changes

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>

---------

Co-authored-by: Mihir Laud <[email protected]>
Co-authored-by: 12944qwerty <[email protected]>
Co-authored-by: Mihir Laud <[email protected]>
Co-authored-by: THERocky <[email protected]>
Co-authored-by: Mayank Patibandla <[email protected]>
Co-authored-by: Rvernen <[email protected]>
Co-authored-by: cjsport11 <[email protected]>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants