UniversalRobots / Universal_Robots_ROS2_Driver

Universal Robots ROS2 driver supporting CB3 and e-Series
BSD 3-Clause "New" or "Revised" License
408 stars 212 forks source link

Use pose_broadcaster to publish the TCP pose #1108

Open fmauch opened 1 week ago

fmauch commented 1 week ago

This uses the PoseBroadcaster currently written by @RobertWilbrandt. As he wants to contribute that to ros2_controllers, this will stay in a draft state until it is merged upstream.

gavanderhoorn commented 5 days ago

High-level question: would it perhaps be better to have the hardware interface offer a quaternion instead of an Euler angle triplet?

That would seem cleaner to me, in the sense of it being more of an N-to-1 mathematical abstraction.

While they aren't necessarily very human friendly, quaternions have definite benefits mathematically, and making it the responsibility of the hardware interface/driver to convert whatever internal orientation representation it uses to this 'intermediary representation' would seem to make sense.

fmauch commented 5 days ago

High-level question: would it perhaps be better to have the hardware interface offer a quaternion instead of an Euler angle triplet?

That would seem cleaner to me, in the sense of it being more of an N-to-1 mathematical abstraction.

While they aren't necessarily very human friendly, quaternions have definite benefits mathematically, and making it the responsibility of the hardware interface/driver to convert whatever internal orientation representation it uses to this 'intermediary representation' would seem to make sense.

I was discussing that with @RobertWilbrandt, as well and I would agree. But I think that's a question to discuss once the PR on ros2_controllers is there.

gavanderhoorn commented 5 days ago

Oh, just noticed #856 actually does it that way.

RobertWilbrandt commented 1 day ago

I don't have any strong opinions on this - Going through REP 103 i went through the options and preferred RPY because the values cannot represent any invalid state (while i would expect that a quaternion should be normalized). From an application point of view i agree, so i changed the representation in pose_broadcaster now.