Skip to content

pilz_industrial_motion_planner#461

Merged
JafarAbdi merged 11 commits intomoveit:masterfrom
PilzDE:trapezoidal_planner
Nov 18, 2020
Merged

pilz_industrial_motion_planner#461
JafarAbdi merged 11 commits intomoveit:masterfrom
PilzDE:trapezoidal_planner

Conversation

@jschleicher
Copy link
Copy Markdown
Contributor

@jschleicher jschleicher commented Feb 24, 2020

Tutorial for trapezoidal pilz_industrial_motion_planner moveit/moveit#1893

@jschleicher jschleicher mentioned this pull request Feb 25, 2020
13 tasks
Copy link
Copy Markdown
Contributor

@felixvd felixvd left a comment

Choose a reason for hiding this comment

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

Lots of spelling and nitpicks, I'm not sure how best to contribute those. Very much looking forward to seeing this merged!

.. code:: yaml

cartesian_limits:
max_trans_vel: 1
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.

We should consider spelling these out.


For all commands the planner needs to know the limitations of each robot
joint. The limits used are calculated from the limits set in the urdf as
well as the limits set on the parameter server (usually put there by
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.

I would note that the file is generated by the setup assistant and the average user does not need to worry about it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I've rephrased the paragraph; is it better now?

@felixvd
Copy link
Copy Markdown
Contributor

felixvd commented Feb 26, 2020

One more thought: This seems to have had multiple names, from "simple" command planner, the to "industrial motion", and now "trapezoidal". The changes all make sense, but I wonder if there has been a previous discussion on the name from the user perspective. Which name is easiest to remember for new users? Should these motions just be considered part of the "basic" MoveIt package, without an extra name? Should they maybe have their own move_ptp, move_lin, move_circ convenience interfaces? Not trying to advocate for this, but it's worth thinking about. UX is important, after all.

@felixvd
Copy link
Copy Markdown
Contributor

felixvd commented Feb 28, 2020

Also I just noticed that we assume that the user knows what "standard robot motions" like PTP, LIN, CIRC are, but that's not a given. Industrial robot manuals always explain these in detail, and to my knowledge they are diligent about it, because the difference between joint space and cartesian space is not intuitive to new users.

It would be very helpful if we had 3 animations side by side of the robot arm executing the three different movements, starting and ending at the same pose, like this. With those, a sentence like this could be enough: "PTP motions move linearly in joint space, LIN motions move linearly in cartesian space (the "real" 3D world), and CIRC motions perform an arc through a midpoint in cartesian space. For more explanation on how these motions work, look at this robotics tutorial."

Maybe you know of a tutorial that we could link to?

@jschleicher
Copy link
Copy Markdown
Contributor Author

jschleicher commented Mar 9, 2020

This seems to have had multiple names, from "simple" command planner, the to "industrial motion", and now "trapezoidal". The changes all make sense, but I wonder if there has been a previous discussion on the name from the user perspective. Which name is easiest to remember for new users? Should these motions just be considered part of the "basic" MoveIt package, without an extra name? Should they maybe have their own move_ptp, move_lin, move_circ convenience interfaces? Not trying to advocate for this, but it's worth thinking about. UX is important, after all.

In the current implementation the user has to load the corresponding pipeline, so using OMPL and pilz_industrial_motion_planner without restart is left for future extension.
Regarding the name we have discussed this again - and like to stay with pilz_industrial_motion_planner. Okay?

@jschleicher jschleicher changed the title Trapezoidal planner pilz_industrial_motion_planner Mar 9, 2020
@felixvd
Copy link
Copy Markdown
Contributor

felixvd commented Mar 10, 2020

I have no problem with the name, but can you explain what you mean by loading the corresponding pipeline? I might have overlooked something. Does that mean you can't use "free motion" planning with OMPL and this plugin at the same time?

@gavanderhoorn
Copy link
Copy Markdown
Member

Does that mean you can't use "free motion" planning with OMPL and this plugin at the same time?

MoveIt can't load two planners into the same move_group right now, so: no, you can't use both OMPL and the Pilz planner at the same time.

Related: moveit/moveit#1257.

@felixvd
Copy link
Copy Markdown
Contributor

felixvd commented Mar 10, 2020

😱

@gavanderhoorn
Copy link
Copy Markdown
Member

😱

Copy link
Copy Markdown
Member

@henningkayser henningkayser left a comment

Choose a reason for hiding this comment

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

Great documentation, I think it explains the different modes really well. There are some minor nits that should be fixed before merging.


- ``planner_id``: LIN
- ``group_name``: name of the planning group
- ``max_velocity_scaling_factor``: scaling factor of maximal Cartesian
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Are these really used for Cartesian velocity instead for joint velocities? This might be slightly confusing since the factors apply to joint velocities following the documentation in the message definition.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good question. The implementation scales the cartesian velocity, so that e.g. 1m/s maximum speed is executed with 0.25m/s for a scaling_factor = 0.25. Isn't that what you'd expect as a user of the planner?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I agree that it's probably what I would expect from the planner. It's just not how it's defined in the message, there it's documented as the factor for joint velocities. I'm fine with leaving it as is for now. My only concern is that this will technically allow to move joints at full speed which might be a surprise if you expect the usual behavior.

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.

Yes, but the name is the same as the scaling factor the move_group applies to each maximum joint velocity.

In cartesian space, I would agree if it was called max_cartesian_velocity_scaling_factor. But at that point, why not just make it max_cartesian_velocity? That's very desirable anyway, I remember it has come up in issues before.

@jschleicher jschleicher marked this pull request as ready for review October 15, 2020 14:03
so that the folder is consistent with its content
@jschleicher
Copy link
Copy Markdown
Contributor Author

@henningkayser Could you please merge the tutorials as follow-up of moveit/moveit#1893 ?

@JafarAbdi JafarAbdi merged commit 9a25cf0 into moveit:master Nov 18, 2020
@jschleicher jschleicher deleted the trapezoidal_planner branch January 8, 2021 10:34
martiniil pushed a commit to PilzDE/moveit_tutorials that referenced this pull request Feb 3, 2021
jschleicher added a commit that referenced this pull request Mar 11, 2021
* Add Pilz Industrial Motion Planner tutorial (#461)

Co-authored-by: jschleicher <j.schleicher@pilz.de>
Co-authored-by: Dave Coleman <dave@picknik.ai>
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.

5 participants