-
Notifications
You must be signed in to change notification settings - Fork 24
feat/fix: PID quaternion-based DP controller #643
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
base: main
Are you sure you want to change the base?
Conversation
…ith new test setup
for more information, see https://pre-commit.ci
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #643 +/- ##
==========================================
+ Coverage 18.77% 26.91% +8.14%
==========================================
Files 38 38
Lines 2376 2478 +102
Branches 426 680 +254
==========================================
+ Hits 446 667 +221
+ Misses 1815 1626 -189
- Partials 115 185 +70
Flags with carried forward coverage won't be shown. Click here to find out more.
🚀 New features to boost your workflow:
|
Andeshog
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since this is still a draft I wont comment on the debugs and prints and so on. But I do encourage utilizing Eta and Nu from vortex-utils, along with the relevant functions 👍 Also, when time comes it would be cool to see a version of the integration test utilizing this controller for a continuous proof of the quality 💯
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything in this file exist in vortex-utils, and most is embedded in the Eta struct as well 😄
| // TODO: parameter callback for dynamic reconfigure of PID gains | ||
| //@brief Callback function for parameter updates | ||
| // @param parameters: vector of parameters to be set | ||
| rcl_interfaces::msg::SetParametersResult parametersCallback( | ||
| const std::vector<rclcpp::Parameter>& parameters); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider using a yaml-based approach like Anbit did. Mixing this approach with a service call (Trigger) allows for the same dynamic reconfiguration, but without relying so much on ROS.
| Kp: [70.0, 70.0, 70.0, 12.0, 12.0, 12.0] | ||
| Ki: [2.0, 2.0, 2.0, 0.12, 0.12, 0.12] | ||
| Kd: [10.0, 10.0, 10.0, 4.0, 5.0, 4.0] | ||
| # Kp: [70.0, 70.0, 70.0, 12.0, 12.0, 12.0] | ||
| # Ki: [2.0, 2.0, 2.0, 0.12, 0.12, 0.12] | ||
| # Kd: [10.0, 10.0, 10.0, 4.0, 5.0, 4.0] | ||
| Kp_x: 10.0 | ||
| Kp_y: 0.0 | ||
| Kp_z: 0.0 | ||
| Kp_roll: 0.0 | ||
| Kp_pitch: 0.0 | ||
| Kp_yaw: 0.0 | ||
| Ki_x: 0.0 | ||
| Ki_y: 0.0 | ||
| Ki_z: 0.0 | ||
| Ki_roll: 0.0 | ||
| Ki_pitch: 0.0 | ||
| Ki_yaw: 0.0 | ||
| Kd_x: 0.0 | ||
| Kd_y: 0.0 | ||
| Kd_z: 0.0 | ||
| Kd_roll: 0.0 | ||
| Kd_pitch: 0.0 | ||
| Kd_yaw: 0.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it not more tidy to have the parameters in vectors here?
Goal: correctly implement and validate the existing quaternion-based DP controller
Completed work
Known issue
rqt_reconfiguretool, the system receives the correct value, but all other gains are immediately reset to 0 in the controller's internal stateTODO