ros2_controllers
ros2_controllers copied to clipboard
Admittance with filters
Re-introduced filters to the admittance_controller as originally done in https://github.com/ros-controls/ros2_controllers/pull/382. Improved testing, variable names and comments.
Depends on https://github.com/ros-controls/control_toolbox/pull/152 and https://github.com/ros-controls/control_toolbox/pull/153
Tests currently fail due to compensation already moving the robot after the first update step. This is expected but was not expected in past test. So a discussion should occur to decide how to change the test.
Codecov Report
Merging #560 (aefd00d) into master (e7f9962) will decrease coverage by
4.90%
. Report is 352 commits behind head on master. The diff coverage is25.91%
.
:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@ Coverage Diff @@
## master #560 +/- ##
==========================================
- Coverage 35.78% 30.88% -4.90%
==========================================
Files 189 7 -182
Lines 17570 832 -16738
Branches 11592 505 -11087
==========================================
- Hits 6287 257 -6030
+ Misses 994 133 -861
+ Partials 10289 442 -9847
Flag | Coverage Δ | |
---|---|---|
unittests | 30.88% <25.91%> (-4.90%) |
:arrow_down: |
Flags with carried forward coverage won't be shown. Click here to find out more.
Files Changed | Coverage Δ | |
---|---|---|
...ontroller/test/test_load_diff_drive_controller.cpp | 11.11% <0.00%> (ø) |
|
...ive_controller/test/test_diff_drive_controller.cpp | 12.66% <7.81%> (ø) |
|
diff_drive_controller/src/odometry.cpp | 42.16% <11.11%> (ø) |
|
diff_drive_controller/src/speed_limiter.cpp | 46.55% <11.11%> (ø) |
|
...iff_drive_controller/src/diff_drive_controller.cpp | 47.13% <46.94%> (ø) |
|
...de/diff_drive_controller/diff_drive_controller.hpp | 100.00% <100.00%> (ø) |
|
...troller/include/diff_drive_controller/odometry.hpp | 100.00% <100.00%> (ø) |
This pull request is in conflict. Could you fix it @guihomework?
@destogl I discover that "allowing edits" means allow others to write to my branch. I did not knot this was possible. Isn't it better to always rebase rather than do a merge from the master (which is then not a straight line merging for the PR anymore) ? I can force-push a rebased PR now if desired to get a cleaner history.
This pull request is in conflict. Could you fix it @guihomework?
Merging master into this branch introduced a test failure (another one than the known one). This came from some invalid parameters that cannot be tested in on_init
because they are only used on_configure
Additionally I should have fixed the other test failing due to gravity compensation. In fact this test (receive_message_and_publish_updated_status
) should not pass when there is a mass at eef because gravity compensation (the one of the filter in PR or the hard-coded one in existing code) will necessarily make the posture after one iteration deviate from the start.
Why that particular test passed before is because a smoothing (equivalent to the new LP filter) was hard-coded and applied after gravity compensation, which meant that after one iteration almost no gravity compensation was seen by the eef (0.1 instead 23 N). It makes no sense to filter the gravity compensation, only the noisy input data from the sensor should be filtered and that is what the proposed implementation does (LP then GC filter)
I think CI fails as it relies on 2 other PRs.
This pull request is in conflict. Could you fix it @guihomework?