moveit / srdfdom

Semantic Robot Description Format
BSD 3-Clause "New" or "Revised" License
12 stars 68 forks source link

Parse <collision_default> and <enable_collisions> tags #97

Closed rhaschke closed 2 years ago

rhaschke commented 2 years ago

This PR augments the SRDF XML with tags <collision_default> and <enable_collisions> to allow specifying ACM defaults for individual links. For example,

<collision_default link="panda_hand_coarse" allow="ALWAYS" />
<enable_collisions link1="panda_hand_coarse" link2="panda_link0" />

UPDATE: See below for the final xml tags.

will disable collision checking for panda_hand_coarse with all other links (particularly newly introduced objects) but enable collision between panda_hand_coarse and panda_link0.

rhaschke commented 2 years ago

Yes, as Michael asked for an adaption of the XML tags, the example should be adapted correspondingly. This PR should be merged in sync with https://github.com/ros-planning/moveit/pull/2938. However, nobody reviewed that PR yet.

v4hn commented 2 years ago

This PR should be merged in sync with ros-planning/moveit#2938.

Why in sync? I was about to merge this now as the basis for the MoveIt patch. Feel free to merge this now if you agree.

However, nobody reviewed that PR yet.

Sorry, I did not have enough time for both yet, so I focused on the basis first.

rhaschke commented 2 years ago

Why in sync?

This PR changes API and thus breaks MoveIt. Thus it should be merged in sync with https://github.com/ros-planning/moveit/pull/2938, which is currently broken due to your requested API changes.

v4hn commented 2 years ago

This PR changes API and thus breaks MoveIt.

Of course. ignore me, I have no idea what I was thinking...

Thus it should be merged in sync with https://github.com/ros-planning/moveit/pull/2938

:+1:

which is currently broken due to your requested API changes.

I will not manage before Christmas, but I could review after and once CI succeeds again. But maybe @JafarAbdi is faster? ;)

kbrameld commented 1 year ago

I'd like to ask for some clarification in regards to these changes.

If a robot has a link that has collision disabled by default (via disable_default_collisions), does that mean that link does not collide with other collision objects in the environment (eg. table, wall) and other robots? Or does it just disable collisions between links in the robot.

rhaschke commented 1 year ago

It means disabling collisions with any robot link or world object.

kbrameld commented 1 year ago

Thanks @rhaschke