I'm not familiar with using JointTrajectoryAction in particular, but according to the docs, the result is supposed to be empty. This means that you would use the state of the ActionClient to determine the result of your command to the controller. For example, some states that you could get (e.g. with my_joint_trajectory_action_client.get_state() ) could be GoalStatus.SUCCEEDED or GoalStatus.ABORTED. There are other states that you could get; see the actionlib docs for details.