Skip to content

Update pilz tutorials for POLYLINE planner#1075

Open
AimanHaidar wants to merge 2 commits into
moveit:mainfrom
AimanHaidar:pilz/polyline
Open

Update pilz tutorials for POLYLINE planner#1075
AimanHaidar wants to merge 2 commits into
moveit:mainfrom
AimanHaidar:pilz/polyline

Conversation

@AimanHaidar
Copy link
Copy Markdown

edit description

Description

This update the tutorials for the feature in #3610

I hope it turns out well.

Checklist

  • Required by CI: Code is auto formatted using clang-format
  • While waiting for someone to review your request, please consider reviewing another open pull request to support the maintainers

edit description

clang-format

corrections
@AimanHaidar
Copy link
Copy Markdown
Author

@AndyZe
@nbbrooks
Is this tutorial appropriate for the merged feature presented in #3610

@130s
Copy link
Copy Markdown
Contributor

130s commented May 26, 2026

Will review this PR as I'm interested in testing POLYLINE.

Copy link
Copy Markdown
Contributor

@130s 130s left a comment

Choose a reason for hiding this comment

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

Thanks! I was able to execute the tutorial program. Just minor suggestions, basically approving.

Took a screenshot and posted on youtube https://www.youtube.com/watch?v=tfKC5PbwQZM Personally "how it looks when it works" for this Pilz and Moveit's RViz plugin is helpful so I suggest to include a link in the tutorial. I'm not trying to make money out of it :) but I understand if people yellow/red-flag agaist posting video link.

velocity profile in Cartesian space. This planner only accepts a
start state with zero velocity. The planning result is a joint trajectory. The user needs to adapt
the Cartesian velocity/acceleration scaling factor if the motion plan fails due to violation of cartesian limits.
the planner will fail if three or more consecutive waypoints are collinear.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
the planner will fail if three or more consecutive waypoints are collinear.
The planner will fail if three or more consecutive waypoints are collinear.

Nit.

- ``start_state/joint_state/(name, position and velocity``: joint
name/position of the start state.
- ``path_constraints``: a list of position constraints to be followed in
Cartesian space. Each waypoint is defined as a ``moveit_msgs::msg::PositionConstraint``
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
Cartesian space. Each waypoint is defined as a ``moveit_msgs::msg::PositionConstraint``
Cartesian space. Each waypoint is defined as a ``moveit_msgs::msg::PositionConstraint`` ([(link to jazzy)](https://docs.ros.org/en/jazzy/p/moveit_msgs/msg/PositionConstraint.html))

I find always nice to have a link to the official definition for data types. I don't know if there's a way to link to the appropriate version of the reference to the version of the moveit tutorial.

@@ -425,7 +470,7 @@ is used instead:

The
:codedir:`pilz_sequence.cpp file <how_to_guides/pilz_industrial_motion_planner/src/pilz_sequence.launch.py>`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This line is not modified in this PR so far though, I do not find the file how_to_guides/pilz_industrial_motion_planner/src/pilz_sequence.launch.py in the how_to_guides/pilz_industrial_motion_planner/src folder. Is this meant to be how_to_guides/pilz_industrial_motion_planner/src/pilz_sequence.cpp?

item2.req.goal_constraints.push_back(kinematic_constraints::constructGoalConstraints("panda_hand", target_pose_item2));

// -------- Motion Sequence Items 3
moveit_msgs::msg::MotionSequenceItem item3;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Btw, data structure the message Pilz uses may not be complexed but there are many ingredients in the hierarchy. Some visual like this eases my mind.

MotionSequenceItem
|-- MotionPlanRequest
  |-- Constraints https://docs.ros.org/en/jazzy/p/moveit_msgs/msg/Constraints.html
    |-- PositionConstraint https://docs.ros.org/en/jazzy/p/moveit_msgs/msg/PositionConstraint.html
      |-- BoundingVolume https://docs.ros.org/en/jazzy/p/moveit_msgs/msg/BoundingVolume.html
        |-- geometry_msgs/Pose

plan_and_execute("[CIRC] Turn");
}

{
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

(This comment is for pilz_moveit.launch.py, which is not included in this PR. Referring to this line just to start a review thread)

Although it's likely out of the scope of this PR, pilz_moveit.launch.py file seems generic, there doesn't seem anything specific about either starting pilz specific processes, nor anything specific about tutorials (yes there are some specific things, which should be pass-able via arguments).
I'm guessing as a tutorial, it's valuable to have each tutorial as standalone project (then move_group.rviz is external to pilz tutorial part).

I don't know. Duplicating such generic files confuses me (especially in .launch.py format, which is hard for me to glimpse the content).

item3.req.max_velocity_scaling_factor = 0.1;
item3.req.max_acceleration_scaling_factor = 0.1;

// For the item, it must be 0!
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
// For the item, it must be 0!
// For the last pose, the blending radius must be 0!

Just clarifying a bit.

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