Universal_Robots_ROS_Driver icon indicating copy to clipboard operation
Universal_Robots_ROS_Driver copied to clipboard

Cartesian control robot cannot reach the pose

Open mayday-sauce opened this issue 4 years ago • 3 comments

Summary

I am using the beta testing branch with UR10e and am trying to send the robot a simple Cartesian trajectory. I am using an action client on /pose_based_cartesian_traj_controller/follow_cartesian_trajectory", and publishing goals cartesian_control_msgs::FollowCartesianTrajectoryGoal. However, the robot moves in unexpected ways and the teach pendant keeps displaying error "pose can't be reach, get_inverse_kin can't find the inverse kinematics". Maybe the problem is that I am using physical units and coordinate systems as defined on the teach pendant (e.g., coordinates in milimetes, coordinate system of TCP oriented with z axis pointing away from the TCP). I am not sure about the physical units in cartesian_control_msgs::FollowCartesianTrajectoryGoal.

Any help is kindly appreciated!

Versions

  • ROS Driver version: ROS melodic
  • Affected Robot Hardware Version(s): UR10e

mayday-sauce avatar Jun 21 '21 16:06 mayday-sauce

@mayday-sauce That sounds interesting.

and the teach pendant keeps displaying error "pose can't be reach, get_inverse_kin can't find the inverse kinematics"

As a first guess, that sounds like a classic problem of singularities and/or impossible requests to inverse kinematics. There is no feasibility check on the ROS-side, so the teach pendant might be the last instance informing you about this during interpolation. Could you use this read-only controller (same action interface) to display your Cartesian trajectory as a moving PoseStamped and check, whether the motion is what you expect?

stefanscherzinger avatar Jun 21 '21 16:06 stefanscherzinger

Maybe the problem is that I am using physical units and coordinate systems as defined on the teach pendant (e.g., coordinates in milimetes, coordinate system of TCP oriented with z axis pointing away from the TCP)

As everything in ROS uses metres for translations, and quaternions for orientations (REP-103), wouldn't this be the problem @stefanscherzinger ?

The interface is not just for URs, it's a generic message, so poses should be specified using ROS standard units (ref REP-103 again).

gavanderhoorn avatar Jun 21 '21 17:06 gavanderhoorn

wouldn't this be the problem

Yes, that is surely part of the problem.

(e.g., coordinates in milimetes, coordinate system of TCP oriented with z axis pointing away from the TCP)

@mayday-sauce The coordinate system for specifying the trajectory waypoints is the robot base. The units are those mentioned by @gavanderhoorn , i.e. meters and radians. If you are not sure what you are sending, take the extra step and visualize your trajectory with the controller I mentioned above.

stefanscherzinger avatar Jun 21 '21 18:06 stefanscherzinger