UTNuclearRoboticsPublic / netft_utils

A C++ class and a ROS node for ATI force/torque sensors connected to a Netbox.
http://wiki.ros.org/netft_utils
28 stars 29 forks source link

Frame of the published netft_data #4

Open sayali-purdue opened 3 years ago

sayali-purdue commented 3 years ago

Both netft_utils.cpp and netft_utils_lean.cpp subscribe to the netft data published on a ROS topic. However, 'netft_utils.cpp' expects data to be in the original frame of a sensor (which is left-handed as per the source code and hence inverts x-axis, or can be right-handed as per the issue#3), whereas 'netft_utils_lean.cpp' expects data that is read from the topic to be in the right-handed frame (as it does not invert x-axis).

I think, as ROS system recommends right-handed frames (rep-0103), it is better to convert sensor data to a right-handed frame at its source, i.e., before it is published on a ROS topic 'netft_data'. Also, to make the code more readable it is always good to set the frame_id of published data so that any subscriber of that data knows its coordinate system. There are two files, netft_node.cpp and netft_utils_sim.cpp, which publish sensor data on 'netft_data' topic. In both these files, frame_id of the published 'netft_data' should be set to a right-handed sensor frame (and, if required, raw sensor data should be converted to this frame before it is published).

Moreover, frame of the raw sensor data in netft_rdt_driver.cpp is set to 'base_link'. I think it is incorrect. Since the user nodes of this data reset the frame to sensor frame before publishing, it does not lead to any errors. However, it should be set to a correct value in 'netft_rdt_driver.cpp' to avoid confusions or issues during code maintenance/reuse in future.

Would really appreciate if you could provide your thoughts/comments on the above points.

Thank you!