moveit / moveit2

:robot: MoveIt for ROS 2
https://moveit.ai/
BSD 3-Clause "New" or "Revised" License
1.04k stars 512 forks source link

added possibility to optionally optimize time during compute cartesian path ‎️‍🔥 #2874

Open Duke194 opened 3 months ago

Duke194 commented 3 months ago

Description

Added the ability to opt out of time optimization during Cartesian path computation.

This change requires a corresponding update in https://github.com/moveit/moveit_msgs/pull/179, which is related to this PR.

This feature is necessary for our project to plan trajectories with multiple waypoints and turning points. We have tested the planning with and without this feature. Without this feature, time optimization removes some essential points, resulting in incorrect trajectories. With this feature enabled, the trajectory is planned correctly without any issues.

Duke194 commented 3 months ago

Ping. Could someone please review/merge this?

Duke194 commented 2 months ago

Someone there ? ping

rhaschke commented 2 months ago

Instead of using a simple boolean flag, did you considered to specify the time parameterization plugin via a string? This would allow to change the time parameterization method as well as disable time parameterization (if empty).

Duke194 commented 2 months ago

This makes sense to me, thanks! Rather than calling it time_optimize, I'd propose calling the option compute_time_stamps or generate_trajectory to highlight that if this option is false, the output of the capability is just a path an not a trajectory. What do you think?

I see your point. But I think we should then go for generate_trajectory, I think it fits best.

Duke194 commented 2 months ago

Instead of using a simple boolean flag, did you considered to specify the time parameterization plugin via a string? This would allow to change the time parameterization method as well as disable time parameterization (if empty).

I didn't considered that because for our specific use case it is sufficient to get a path out of this capability. We do the time optimization aka. trajectory generation afterwards ourselves. I do not know if the parametrization needs to be configurable. Probably depends on the use case.

sjahr commented 2 months ago

@Duke194 Just realized your targeting the humble branch with your PR. Do you mind changing it to main? We'll backport it to humble with a github bot afterwards immediately. I think this is ready to be merged once you addressed my review

rhaschke commented 2 months ago

I suggest implementing the more generic selection of time parameterization suggested in https://github.com/moveit/moveit2/pull/2874#issuecomment-2210411652.

Duke194 commented 2 months ago

@Duke194 Just realized your targeting the humble branch with your PR. Do you mind changing it to main? We'll backport it to humble with a github bot afterwards immediately. I think this is ready to be merged once you addressed my review

I'll do it on main this week.

github-actions[bot] commented 1 month ago

This PR is stale because it has been open for 45 days with no activity. Please tag a maintainer for help on completing this PR, or close it if you think it has become obsolete.