Skip to content
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

Adding messages for sequences #65

Merged
merged 10 commits into from
Apr 23, 2020
Merged

Conversation

ct2034
Copy link
Contributor

@ct2034 ct2034 commented Feb 21, 2020

These messages are required for motion sequences. See moveit/moveit#1893

@ct2034 ct2034 mentioned this pull request Feb 21, 2020
13 tasks
@ct2034 ct2034 changed the title adding messages for sequences Adding messages for sequences Feb 24, 2020
@ct2034 ct2034 marked this pull request as ready for review February 24, 2020 10:01
@jschleicher
Copy link

Could anyone review, please? We need these messages to proceed merging moveit/moveit#1893, so please review @mlautman @davetcoleman

Copy link
Contributor

@v4hn v4hn left a comment

Choose a reason for hiding this comment

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

It's a reasonable interface to have and MTC could in theory also solve these queries (they're just not very interesting there...), so it's not strictly tight to your planner either.

Please have a look at the inline comments though.

action/MoveGroupSequence.action Outdated Show resolved Hide resolved
action/MoveGroupSequence.action Outdated Show resolved Hide resolved
action/MoveGroupSequence.action Outdated Show resolved Hide resolved
srv/GetMotionSequence.srv Outdated Show resolved Hide resolved
and address comment from review. Thanks to @v4hn!
the array contains resulting parts for every query
Copy link
Contributor

@v4hn v4hn left a comment

Choose a reason for hiding this comment

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

Looks good now!

@jschleicher
Copy link

@gavanderhoorn @davetcoleman Could you please add a second review?!

Copy link
Member

@davetcoleman davetcoleman 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 great inline documentation, but I asked for just a little more.

action/MoveGroupSequence.action Outdated Show resolved Hide resolved
msg/MotionSequenceItem.msg Outdated Show resolved Hide resolved
Copy link
Contributor

@rhaschke rhaschke left a comment

Choose a reason for hiding this comment

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

Why is it necessary to add both a service and an action?

msg/MotionSequenceResponse.msg Outdated Show resolved Hide resolved
@jschleicher
Copy link

jschleicher commented Apr 17, 2020

Why is it necessary to add both a service and an action?

We just 'copied' move_action_capability.h and plan_service_capability.h and implemented them for sequences.

Would you suggest to deprecate / remove the service capability?

@@ -0,0 +1,3 @@
# List of motion planning request with a blend_radius for each.
# In the response of the planner all of these will be executable as one sequence.
MotionSequenceItem[] items
Copy link
Member

Choose a reason for hiding this comment

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

I would probably remove this abstraction and directly include lists of MotionPlanRequest and blend_radius

Choose a reason for hiding this comment

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

Can you explain why? Having the two together in a structure enforces a 1-to-1 mapping of radii to requests.

With separate lists that is note as easily enforced.

Copy link
Member

@henningkayser henningkayser Apr 20, 2020

Choose a reason for hiding this comment

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

It's not really a 1-to-1 mapping since the last blend_radius is redundant. Also, message types usually have their own semantics with multiple use cases, but here the semantics already implies the use case of being an array item. So, while this abstraction removes a sanity check it makes the message structure a little more complicated than necessary. There are many messages that just use a convention for array lengths (i.e. Marker, RobotTrajectory..).

Copy link

@gavanderhoorn gavanderhoorn Apr 20, 2020

Choose a reason for hiding this comment

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

It's not really a 1-to-1 mapping since the last blend_radius is redundant.

may be, but that's not a very strong argument to not do it.

Also, message types usually have their own semantics with multiple use cases, but here the semantics already implies the use case of being an array item.

Not sure I follow this: the semantics of MotionSequenceRequest or something else? Because the name does not necessarily imply that it's an array to me (but: not a native speaker).

So, while this abstraction removes a sanity check it makes the message structure a little more complicated than necessary.

Huh? If by abstraction you refer to the item struct, then I'm not sure how that removes a check.

It also doesn't seem very unreasonable for a MotionSequenceRequest to contain items, which themselves contain information about each item respectively. From that nested structure it's very clear that the information in those items belongs together.

While if there were just two plain arrays at the level of the request, interpretation of the message is actually less clear as the relationship between the information in the first array and the second array would only be apparent from and encoded in the code interpreting the message (ie: comes from an external and essentially unconnected source).

There are many messages that just use a convention for array lengths (i.e. Marker, RobotTrajectory..).

that may be, but this seems a bit like a tu-quoque: the fact that this is done in other messages does not necessarily make it a good pattern to apply here.

srv/GetMotionSequence.srv Outdated Show resolved Hide resolved
@jschleicher
Copy link

@rhaschke @henningkayser Are your comments addressed? Or should we incoporate further changes?

Copy link
Contributor

@rhaschke rhaschke left a comment

Choose a reason for hiding this comment

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

You introduced several new typos.

action/MoveGroupSequence.action Outdated Show resolved Hide resolved
action/MoveGroupSequence.action Outdated Show resolved Hide resolved
srv/GetMotionSequence.srv Outdated Show resolved Hide resolved
msg/MotionSequenceResponse.msg Outdated Show resolved Hide resolved
Copy link
Contributor

@rhaschke rhaschke left a comment

Choose a reason for hiding this comment

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

In the maintainer meeting we agree to progress as is.

@rhaschke rhaschke merged commit 9ab34a0 into moveit:master Apr 23, 2020
@tylerjw tylerjw mentioned this pull request May 8, 2020
18 tasks
tylerjw pushed a commit to tylerjw/moveit_msgs that referenced this pull request May 11, 2020
This is a prerequisite for the Pilz Motion Planner.
rhaschke pushed a commit that referenced this pull request May 12, 2020
This is a prerequisite for the Pilz Motion Planner.
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.

None yet

7 participants