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

Tune ISMC #32

Merged
merged 16 commits into from
Jun 28, 2023
Merged

Tune ISMC #32

merged 16 commits into from
Jun 28, 2023

Conversation

evan-palmer
Copy link
Collaborator

Checklist

  • I have performed a thorough review of my code
  • I have sufficiently commented my code
  • The implementation follows the project style conventions
  • All project unit tests are passing
  • If relevant, documentation has been provided or updated to discuss the changes made
  • System integration tests were performed successfully

Changes Made

Bug fixes were made to the integral sliding mode controller. Additionally, the controller was tuned for both the BlueROV2 and BlueROV2 Heavy. Support was added to launch a Foxglove Studio connection and additional bug fixes were made.

Associated Issues

Testing

Integration and regression testing was performed in the SITL environment.

@evan-palmer evan-palmer self-assigned this Jun 24, 2023
README.md Show resolved Hide resolved
blue_control/package.xml Outdated Show resolved Hide resolved
blue_control/src/controller.cpp Outdated Show resolved Hide resolved
@evan-palmer
Copy link
Collaborator Author

One main issue that I just noticed is that the Gazebo localizer is publishing poses to the ArduSub EKF in the wrong frame (base_link). This should be updated to transform this into the correct pose

@evan-palmer
Copy link
Collaborator Author

One main issue that I just noticed is that the Gazebo localizer is publishing poses to the ArduSub EKF in the wrong frame (base_link). This should be updated to transform this into the correct pose

After following up on this, publishing the pose in the base_link_frd frame caused a number of issues. I anticipate that MAVROS does something under-the-hood that I'm not aware of

blue_utils/include/blue_utils/utils.hpp Show resolved Hide resolved
blue_utils/package.xml Outdated Show resolved Hide resolved
blue_utils/scripts/send_pwm.sh Outdated Show resolved Hide resolved
@evan-palmer evan-palmer merged commit 3878cb2 into develop Jun 28, 2023
@evan-palmer evan-palmer deleted the 28-feature-tune-smc branch June 28, 2023 05:22
evan-palmer added a commit that referenced this pull request Jun 29, 2023
* started implementation of thruster dynamics

* Finished initial implementation of bridge

* Finished initial implementation of bridge

* forgot to save

* removed unused configs directory

* Implement an interface to manage control of the thrusters (#9)

* started porting bridge to base controller

* continued base controller implementation

* bedtime

* Added parameter to control publish rate

* Continued controller implementation and fixed docker errors

* save point

* reincluded bridge to separate concerns

* continued base controller implementation

* added linear velocity calculation

* cleaned up lambdas and continued base controller

* Started implementing vehicle dynamics

* Continued vehicle dynamics implementation

* Finished initial untested version of vehicle dynamics

* Resolve initial bugs

* Started working on unit testing the dynamics

* i dont remember

* Started implementing test cases and squashed some bugs

* Finished vehicle dynamics test cases and added current effects

* Added TCM and started thruster dynamics

* Removed unrelevant files

* Fixed comments

* started implementation of manager

* Removed unused packages and cleaned up manager implementation

* Removed dynamics package as not in pr scope

* Implemented and tested parameter backup procedure, started on passthrough mode enabling

* Cleaned up implementation and started param backup service

* Time for some video games baby

* Removed unnecessary methods

* Removed more unused methods

* Added interface to stop thrusters and improve success rate of mode change command

* Refactored to use multithreadedexecutor

* Save point for golf

* Finalized initial version

* Resolved PR comments

* Implement system hydrodynamics (#7)

* started porting bridge to base controller

* continued base controller implementation

* bedtime

* Added parameter to control publish rate

* Continued controller implementation and fixed docker errors

* save point

* reincluded bridge to separate concerns

* continued base controller implementation

* added linear velocity calculation

* cleaned up lambdas and continued base controller

* Started implementing vehicle dynamics

* Continued vehicle dynamics implementation

* Finished initial untested version of vehicle dynamics

* Resolve initial bugs

* Started working on unit testing the dynamics

* i dont remember

* Started implementing test cases and squashed some bugs

* Finished vehicle dynamics test cases and added current effects

* Added TCM and started thruster dynamics

* Removed unrelevant files

* Fixed comments

* Started refactoring to resolve pr comments

* Continued PR refactor

* Missing semicolon

* found a pattern that makes sense

* updated coriolis implementation

* Finished refactor

* Added docstrings

* Adding back negative

* Updated test cases

* Removed unused dependencies

* Removed irrelevant packages from dockerignore

* fixed comment

* Fixed comment spacing

* Removed unused time derivatives

* cleaned up documentation

* Added deadzone formula

* Implemented initial version of thrust surface

* Fixed thruster model tests

* Added docstrings

* Resolved remaining PR comments

* Implement a base controller and integral sliding mode controller (#10)

* Implemented initial version of base controller

* Fixed deps

* Started implementation of ismc

* Continued ismc implementation

* Added service to arm and disarm controller

* Fixed custom controllers build

* use modernize bind

* Resolved PR comments

* Implement launch files (#16)

* Started integration of launch files and updated dockerfile to properly install mavros

* precommit

* Added message interval client

* Added vision pose plugin

* Added docstrings

* Fixed pr comments

* Removed controller arming from manager (#17)

* Port angler_localization to blue_localization (#18)

* Ported angler_localization

* Added localization package to dockerignore

* Resolved controller bug and fixed dockerfile

* Removed redundant install

* Resolved PR comments

* Integrate support for simulation with Gazebo and ArduSub (#23)

* Started integrating ardusub and gazebo into dockerfile

* Added Gazebo Garden installation to dockerfile

* Added workspace.repos for models

* added vcs import to devcontainer

* Started blue description

* Added ability to launch gz with models

* Started to add ardusub process into launch

* Added ros_gz and ardupilot bridge to enable sitl

* Cleaned up for PR

* Fixed codespell and ran linters

* Resolved PR comments

* Use tf2_eigen for msg conversions (#26)

* Added tf2_eigen and switched dynamic matrices to fixed-size matrices

* Resolved PR comments

* Added thruster dynamics without battery state model (#27)

* Started implementing thruster dynamics without battery state

* Added thruster models without battery state

* Tune ISMC and resolve coordinate frame issues (#32)

* Started debugging controller

* Added proportional gain and fixed missing initial conditions

* Added gazebo localizer and fixed some more bugs

* IT WORKS

* Cleaned up comments and re-added heavy launch file

* More bug fixes

* Started cleanup

* Continued cleanup and updated readme

* Added support to run foxglove from launch

* Renamed reference to twistaccelcmd

* Started to resolve pr comments

* WIP: tuning the controller for the bluerov2 base configuration

* WIP: Im tired of this

* WIP: resolved bugs in transforms and tcm

* Final fixes for pr and added keyboard teleop

* Resolve blue_control build errors (#38)

* Resolved build issues and cleaned up utils

* Resolved bugs in build and bluerov base config tcm

* Removed negatives from zeros in the config files

* Moved tf2 import to correct file
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.

1 participant