Skip to content

Improve Cartesian interpolation#3197

Merged
rhaschke merged 8 commits intomoveit:masterfrom
ubi-agni:cartesian-interpolator
Sep 9, 2022
Merged

Improve Cartesian interpolation#3197
rhaschke merged 8 commits intomoveit:masterfrom
ubi-agni:cartesian-interpolator

Conversation

@rhaschke
Copy link
Copy Markdown
Contributor

@rhaschke rhaschke commented Aug 28, 2022

So far, Cartesian interpolation only considered link frames to move along a straight-line. This PR augments this to arbitrary frames by considering a configurable offset to the link frame. Thus, now the frame resulting from link * offset should move along a straight line towards the target. Obviously, this is only relevant for rotational motions - a fixed offset for linear motions doesn't change the resulting motion. For example, the new implementation allows for circular motions around a non-link origin.

@codecov
Copy link
Copy Markdown

codecov bot commented Aug 28, 2022

Codecov Report

Merging #3197 (6363766) into master (7949bd6) will decrease coverage by 0.01%.
The diff coverage is 82.00%.

@@            Coverage Diff             @@
##           master    #3197      +/-   ##
==========================================
- Coverage   62.08%   62.08%   -0.00%     
==========================================
  Files         375      376       +1     
  Lines       33139    33179      +40     
==========================================
+ Hits        20572    20596      +24     
- Misses      12567    12583      +16     
Impacted Files Coverage Δ
...core/utils/include/moveit/utils/eigen_test_utils.h 30.77% <30.77%> (ø)
...nclude/moveit/robot_state/cartesian_interpolator.h 100.00% <100.00%> (ø)
...it_core/robot_state/src/cartesian_interpolator.cpp 80.00% <100.00%> (-2.17%) ⬇️
moveit_core/utils/src/robot_model_test_utils.cpp 78.61% <100.00%> (+2.19%) ⬆️
.../move_group_interface/src/move_group_interface.cpp 47.62% <100.00%> (+0.09%) ⬆️
moveit_core/robot_model/src/joint_model.cpp 55.47% <0.00%> (-3.36%) ⬇️
...meterization/work_space/pose_model_state_space.cpp 79.42% <0.00%> (-2.35%) ⬇️
...s/chomp/chomp_motion_planner/src/chomp_planner.cpp 69.68% <0.00%> (-1.26%) ⬇️
... and 5 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

- Fixup doc comments
- Add API providing the translation vector = direction * distance
- Simplify implementation
This allows performing a circular motion about a non-link origin.
Copy link
Copy Markdown
Contributor

@simonschmeisser simonschmeisser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good but I would appreciate a test for the link_offset parameter

@rhaschke
Copy link
Copy Markdown
Contributor Author

rhaschke commented Sep 4, 2022

Sure. I will add a short test...

@rhaschke
Copy link
Copy Markdown
Contributor Author

rhaschke commented Sep 8, 2022

Eventually, I added some tests, also for the original computeCartesianPath() functionality.

gtest 1.8 doesn't provide SetUpTestSuite().
Thus, we cannot share the RobotModel across tests.
@rhaschke
Copy link
Copy Markdown
Contributor Author

rhaschke commented Sep 8, 2022

Argh! I was using gtest 1.10 features not yet available in Bionic/Melodic.

@rhaschke rhaschke merged commit 1245f15 into moveit:master Sep 9, 2022
@rhaschke rhaschke deleted the cartesian-interpolator branch September 9, 2022 04:06
@simonschmeisser
Copy link
Copy Markdown
Contributor

Thanks a lot for improving the tests as well!

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