ros-industrial / industrial_core

ROS-Industrial core communication packages (http://wiki.ros.org/industrial_core)
155 stars 181 forks source link

JOINT_POSITION and JOINT_FEEDBACK #28

Closed liborw closed 11 years ago

liborw commented 11 years ago

What is the difference between JOINT_POSITION and JOINT_FEEDBACK which should be used and where?

JeremyZoss commented 11 years ago

JOINT_POSITION was the original message used to broadcast current joint position data from the controller to ROS. It is fairly simple, and only includes position data for a single robot.

We ran into limitations using this robot for systems using multiple robot arms. It also doesn't provide velocity and acceleration feedback, which is desired for some applications.

The JOINT_FEEDBACK message was created to mirror the data payload of the ROS trajectory_msgs\JointTrajectoryPoint message used in control_msgs\FollowJointTrajectoryActionFeedback.

Additionally, it includes a field to specify a robot ID for multi-robot systems. Another field is included to indicate which fields were populated with valid data from the robot controller. Fields that don't contain valid data can be broadcast as empty arrays in ROS. Using this field, controller-side robot drivers can support as much (or little) of the JOINT_FEEDBACK message payload as they want.

I would recommend migrating to the JOINT_FEEDBACK (and JOINT_TRAJ_PT_FULL) messages "eventually". The core industrial_robot_client libraries do not support these new message types, but we should roll this out for the next release. See fs100 package for the required modifications to industrial_robot_client to support multiple message types.

shaun-edwards commented 11 years ago

The REP for the new industrial robot client will clarify this and mark message ID's for deprecation.