pilz_industrial_motion
pilz_industrial_motion copied to clipboard
prbt_base is not default reference_frame
related: #98
Steps to reproduce
- Modify urdf such that
prbt_base
does not match root-linkworld
- 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
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
?
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?
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.
Yes, that sounds very reasonable. Thanks for the input.
Actually, our Readme states that prbt_base
is used as default.
Reminder: Increase ROBOT_API if behaviour change on existing programs can be expected.
WIP: 7d66d110025c0a768beb7727154fdc70ad957123
Wait for backwards compatibility feature.