pilz_industrial_motion icon indicating copy to clipboard operation
pilz_industrial_motion copied to clipboard

prbt_base is not default reference_frame

Open martiniil opened this issue 6 years ago • 7 comments

related: #98

Steps to reproduce

  1. Modify urdf such that prbt_base does not match root-link world
  2. Execute a ptp pose command without reference frame

Expected behavior

Robot should move relative to prbt_base frame

Observed behavior

Robot moves relative to world frame

martiniil avatar Feb 22 '19 13:02 martiniil

Is it intended that we require prbt_base and world to be identical? I am not sure if I fully understand the meaning of these frames. At least it should be possible to position the robot by simply altering the transform from world to prbt_base_link? screenshot from 2019-02-22 14-47-53

martiniil avatar Feb 22 '19 13:02 martiniil

Please see ROS-I wiki: Create URDF for an Industrial Robot for a description of standard frames.

Yes, it is possible to move the robot around / move prbt_base to not match the world coordinate system. If you want to command positions in "world" or "base" coordinates in the API is a question of conventions. I'm not aware of a standard there.

MoveIt commander refers to a group for every motion plan request; I think that sounds like a good default. Maybe you should choose the default reference frame based on the default planning group as well?

jschleicher avatar Feb 25 '19 10:02 jschleicher

Please see ROS-I wiki: Create URDF for an Industrial Robot for a description of standard frames

Slightly off-topic: a more up-to-date (but still WIP) reference: Coordinate Frames for Serial Industrial Manipulators (rendered).

Yes, it is possible to move the robot around / move prbt_base to not match the world coordinate system. If you want to command positions in "world" or "base" coordinates in the API is a question of conventions. I'm not aware of a standard there.

Convention would say: Cartesian commands are in the "base frame" of the robot (ie: group).

This would seem to correspond to what industrial robots do.

MoveIt commander refers to a group for every motion plan request; I think that sounds like a good default. Maybe you should choose the default reference frame based on the default planning group as well?

MoveIt follows that convention.

If commanded poses are not relative to the base frame of the group, they are transformed into it.

gavanderhoorn avatar Feb 25 '19 11:02 gavanderhoorn

Yes, that sounds very reasonable. Thanks for the input. Actually, our Readme states that prbt_base is used as default.

martiniil avatar Feb 26 '19 12:02 martiniil

Reminder: Increase ROBOT_API if behaviour change on existing programs can be expected.

agutenkunst avatar Feb 27 '19 10:02 agutenkunst

WIP: 7d66d110025c0a768beb7727154fdc70ad957123

martiniil avatar Apr 04 '19 10:04 martiniil

Wait for backwards compatibility feature.

hslusarek avatar Jun 06 '19 11:06 hslusarek