RoboDK Forum
robomath.Pose_2_UR off by 1000x可打印版本

+- RoboDK Forum (//m.sinclairbody.com/forum)
+-- Forum: RoboDK (EN) (//m.sinclairbody.com/forum/Forum-RoboDK-EN)
+ - - -论坛:RoboDK错误(//m.sinclairbody.com/forum/Forum-RoboDK-bugs)
+--- Thread: robomath.Pose_2_UR off by 1000x (/Thread-robomath-Pose-2-UR-off-by-1000x)



robomath.Pose_2_UR off by 1000x-j_cso-07-22-2022

Connected to my ur5e and got joint positions, then ran this:


Code:
r = RDK.Item("UR5e")
p = r.Pose()
print("Tool pose: ", p)
print("UR:", robomath.Pose_2_UR(p))

Tool pose: Pose(416.128, 445.368, 371.081, 0.130, 0.169, -0.204):
[[ 1.000, 0.004, 0.003, 416.128 ],
[ -0.004, 1.000, -0.002, 445.368 ],
[ -0.003, 0.002, 1.000, 371.081 ],
[ 0.000, 0.000, 0.000, 1.000 ]]

UR: [416.1276863988549, 445.3677680489658, 371.08122984066586, 0.002271590929845354, 0.002958832693163574, -0.0035630993852032887]

But on the robot, if I run the URScript command get_forward_kin(), it comes back with 0.416, 0.445, 0.371.

That is, URScript Pose is in meters, but robomath.Pose_2_UR() is returning millimeters. Likewise, robomath.UR_2_Pose() seems to be expecting mm instead of meters.

This is a bit disturbing. Did you guys test Pose_2_UR and UR_2_Pose literally at all?


RE: robomath.Pose_2_UR off by 1000x-Albert-07-22-2022

You simply need to convert millimeters to meters as you mentioned.

Our post processors for Universal Robots already account for the units in meters. We decided to have this function in millimeters to keep consistency with all the other robomath functions and our API (in mm).