How to handle the physical joints and actuated axis in YARP/ROS2 #609
Replies: 1 comment 2 replies
-
@traversaro said: Based on my knoledge, I think it is useful to strictly separate:
The nomenclature is definitely not homogenous across software and publications, so feel free to propose better names if you like (it would be great to have a better name for physical joint, as "joint" is an extremly overloaded name). The two concepts are quite similar if for each joint you have a single actuated axis, so in those context the difference is not considered. However, as soon as we have either fully actuated mechanisms (i.e. more and less number of joints == number of actuated axis), but in which the actuated axis does not match the physical joints (such as in the case of the iCub's eyes) or under actuated mechanism, i.e. more and less number of joints > number of actuated axis, such as iCub's hand) it is important to fully distinguish the two concepts, starting from the documentation of the mechanism (see robotology/icub-models#30 (comment)). A related concept (but I do not think there is a direct connection) is the transmission_interface feature of ros_control. In this case, it seems to me that (but it is just an intuition based on the introspection):
If my assumptions are true, then it does not make a lot of sense to publish actuated axis on /joint_state, but we should rather publish physical joints values (if we have them) on /joint_state, perhaps changing something on the YARP side, for example adding an interface to the devices to exposing physical joints metadata (names) and values, that seems easier then adding a way to expose coupling laws.
An additional note on this: for under-actuated mechanisms, even if you have the values of the actuated axis and the coupling laws, in general you cannot reconstruct the exact value of the physical joints, that instead may be available in some other way (for example via additional encoder sensors, as the MAIS sensors in iCub 1/2 hands).
A possible alternative name for "physical joint" is "kinematic pair" (see en.wikipedia.org/wiki/Kinematic_pair), that for sure is less ambigous but also less intuitive to understand what it is. |
Beta Was this translation helpful? Give feedback.
-
This question came out after trying to visualize
iCub
tfs onrviz2
, we noticed thatrobot_state_publisher
cannot publish the tf for the frames of the eyes and hands since they are underactuated (physical joints > actuated axis) and it does not know the coupling laws.YARP and analogously ROS2 nws publishes on
/joints_state
only actuated axis, probably we need an additional layer that handles these coupling laws.Somehow related to robotology/gazebo-yarp-plugins#470
cc @pattacini @traversaro @xEnVrE @randaz81 @elandini84
Beta Was this translation helpful? Give feedback.
All reactions