ros-industrial / universal_robot

ROS-Industrial Universal Robots support (https://wiki.ros.org/universal_robot)
1.05k stars 1.03k forks source link

Question about the orientation of the URs's base #676

Open gonzalocasas opened 3 months ago

gonzalocasas commented 3 months ago

Disclaimer: I know this has been discussed and changed already a few times. (eg. here), but it still relatively hard for me to understand how to deal with it, or how others deal with it.

The current URDF models have the base of the robot rotated 180 degrees in respect to the real robots. For a lot of things, this is not a big problem, but the final result is that the models become harder to use for people that have not extensive understanding of robotics. Concretely, what happens is that the base rotation (which is done to satisfy the requirements of REP-103 that have a defined X+ orientation) causes the cartesian coordinate system to be mismatched to an off-the-shelf UR's cartesian coordinate system.

So, if a user works consistently in joint space, nothing happens, everything is fine. But for example, if anyone tries to read the coords off of the flex pendant, they will not match the ones that the model reports.

I honestly struggled a lot to understand if this was a problem on my side, but now I'm pretty sure the model is mismatched to reality and I wonder how are others dealing with it. I also understand the importance of conventions, but in this case, I find it hindering for usage and adoption. Internally, I always end up removing the fake rotation that is added in the base_link-base_link_inertia joint so that these match, but it feels extremely odd and inconvenient, and I don't know if there's a better way to fix this.

gonzalocasas commented 3 months ago

/cc per our conversation last week @chenkasirer @yck011522