-
Notifications
You must be signed in to change notification settings - Fork 545
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
[pilz_industrial_motion_planner] velocity drop to near 0 during a plan_sequence_path service generated motion #3161
Comments
I wonder if it's related to #3158 |
Also to confirm, are you using a version of humble that includes this PR? #3000 |
Thanks for reply.
yes, i am using the latest humble version which includes this PR. I have a new discovery, I plot the velocities in all JointTrajectoryPoint of result->response.planned_trajectories[0], I am using joint_trajectory_controller of ros2_controllers. |
I think i figured out something. I will trying to find the reason of the "jumping" timestamp. |
It appears that when the right side drops to zero, the time between waypoints on the left (reference) is slightly stretched out. Maybe the controller "misses" a time step and defaults to zero instead of interpolating? Not sure. Is there a ROS 2 control setting to affect this behavior, or does the trajectory need to be resampled in some way? I'm not sure |
OK, finally i figured out what's happened. There is an unnecessary time offset here: moveit2/moveit_planners/pilz_industrial_motion_planner/src/plan_components_builder.cpp Line 65 in f91a650
When concatenating blending trajectories here moveit2/moveit_planners/pilz_industrial_motion_planner/src/plan_components_builder.cpp Line 101 in f91a650
the first waypoint of the blend_trajectory do has a duration_from_previous 0.1, and duration_from_previous will be used for calculated time_from_start in this function:
With an unnecessary time offset, the first waypoint of an blended trajectory in time t is shifted to time t+0.1, After i get rid of the unnecessary time offset, I got my motion profile: |
Interesting. I had added this to get rid of some duplicate trajectory points that were causing errors on Rolling in #2961 Your fix may work, so long as it doesn't break what originally got fixed. I will need to test. |
Posting on the issue as well as the PR for visibility. It seems that the fixes in #2961 were conditioned on #1813 also having been backported to Humble. This seems to be why Pilz sequence blending worked fine on Humble but not on later versions. Indeed, it was not So I am fairly confident that merging the backport in #1821 will resolve this particular issue -- but will wait to confirm. |
Closed by #1821 |
Description
Hi, I have a issue when executing a trajectory generated by pilz_industrial_motion_planner plan_sequence_path service.
Here is the motion generated by plan_sequence_path. There are two MotionSequenceItems in my MotionSequenceRequest(go to right 0.3[m], then go to down 0.3[m]. blend radius is 0.2[m]).
And i noticed that velocity dropped to near zero two times during the motion(at the time transition start and end?)
that causes an unsmooth motion.
ROS Distro
Humble
OS and version
ubuntu 22.04
Source or binary build?
Source
If binary, which release version?
No response
If source, which branch?
humble
Which RMW are you using?
FastRTPS
Steps to Reproduce
pilz config file
pilz cartesian_limits:
c++ code snippet
Expected behavior
Robot moves smoothly during the motion.
Actual behavior
Robot drops velocity to near zero two times.
Backtrace or Console output
The text was updated successfully, but these errors were encountered: