-
Notifications
You must be signed in to change notification settings - Fork 172
Make TimeParamerization configurable #339
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
Make TimeParamerization configurable #339
Conversation
Codecov Report
@@ Coverage Diff @@
## master #339 +/- ##
==========================================
- Coverage 54.59% 54.56% -0.02%
==========================================
Files 102 102
Lines 7832 7847 +15
==========================================
+ Hits 4275 4281 +6
- Misses 3557 3566 +9
Continue to review full report at Codecov.
|
|
|
v4hn
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.
Mostly looks good. I'll leave it to you whether you want to deal with the missing pointers in upstream before merging.
I would be happier with this if ...
- the time parameterization were an actual plugin in MoveIt
- if the triple
<plugin, vel_scaling, acc_scaling>would be somehow one property instead of three needed in multiple places - if we could add additional string overloads to load these properties instead of having to pass shared_ptr.
| // add timing | ||
| trajectory_processing::IterativeParabolicTimeParameterization timing; | ||
| timing.computeTimeStamps(*merged_traj, 1.0, 1.0); | ||
| time_parameterization.computeTimeStamps(*merged_traj, 1.0, 1.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.
This can (and could before) break a lower specified dynamics limit in one of the merged trajectories. The merged trajectory might suddenly be "inexplicably" faster.
But the real solution to this is not adding yet another set of parameters, but implement a "proper" merge, that does not need to compute a whole new timing for the trajectory, but resamples the trajectories as needed.
So I guess it's best to leave this as is until then.
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.
Please file an issue as a reminder...
|
|
||
| #if !MOVEIT_VERSION_GE(1, 1, 9) | ||
| // the pointers are not yet available | ||
| namespace trajectory_processing { | ||
| MOVEIT_CLASS_FORWARD(TimeParameterization); | ||
| } | ||
| #endif |
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.
I just saw you backported the polymorphic base class change to melodic. So this should be unnecessary.
But Jafar and you both did not notice the missing pointers in the original patch, so I just filed this PR. It might be worth creating a patch release for melodic with this addition as well. If you should do that, these lines can go away
| #if !MOVEIT_VERSION_GE(1, 1, 9) | |
| // the pointers are not yet available | |
| namespace trajectory_processing { | |
| MOVEIT_CLASS_FORWARD(TimeParameterization); | |
| } | |
| #endif |
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.
Until we have a new release of MoveIt, this addition is required. Do you propose a patch release of MoveIt before?
I could do that over the weekend indeed...
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.
I guess you can remove this now. :)
It was consensus to not use plugins for these (although I proposed plugins originally)
I can understand you somehow. But, that would make it impossible for the user to change a single of these properties.
String names are more brittle and cannot be checked at compile time. |
Replaces #333, implementing #333 (review). Fixes #330.
The TimeParameterization method becomes a property in corresponding stages and PlannerInterfaces.
This allows users to configure them easily.