-
Notifications
You must be signed in to change notification settings - Fork 543
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
Fix Pilz blending times... the right way #2961
Conversation
moveit_planners/pilz_industrial_motion_planner/src/trajectory_blender_transition_window.cpp
Show resolved
Hide resolved
@ct2034 want to give this a sanity check? (or maybe it's been too long...) |
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.
LGTM!
Could you verify that this prevents the duplicate timestamp issue you saw in the tutorial? I could never reproduce it for whatever reason, so would be good to know if it works for you.
Oh, it for sure resolves this issue. It's how I've been testing it. In fact, the previous PR squashed duplicate time points, but this one actually handles it correctly and ensures the two points are spaced accordingly. |
* Fix Pilz blending times... the right way * Remove more debugs * Format (cherry picked from commit 4fad0d0) # Conflicts: # moveit_planners/pilz_industrial_motion_planner/src/command_list_manager.cpp # moveit_planners/pilz_industrial_motion_planner/src/trajectory_blender_transition_window.cpp
* Fix Pilz blending times... the right way * Remove more debugs * Format (cherry picked from commit 4fad0d0) # Conflicts: # moveit_planners/pilz_industrial_motion_planner/src/command_list_manager.cpp # moveit_planners/pilz_industrial_motion_planner/src/trajectory_blender_transition_window.cpp
Description
Found the issue!
Turns out that Pilz's
appendWithStrictTimeIncrease()
function had a single if-statement that encompassed two conditions:In both cases, the whole trajectory segment was appended with a
dt=0
.The problem is that in case 1, it's appropriate to add a
dt=0
(as the trajectory is empty, the first point should be att=0
). In case 2, we needed to apply a non-zero sample time offset dictated by the actualdt
of that trajectory's first waypoint.Closes #2945
Checklist