Describe the feature you want
Hi all,
I’m debugging a systematic pose error on the real OpenArm and would like to ask whether OpenArm has an official / recommended place to calibrate this.
I already finished the overall grasping workflow. In RViz / simulation, the pose error is almost zero. On the real robot, however, I see a clear and consistent fixed offset.
What I observed:
When using a Cartesian path, the real robot error is very small
When using a non-Cartesian path, a stable fixed offset appears
I could add compensation in my own code, but I would prefer not to do that if OpenArm already has a proper calibration / tuning place for this
From my real robot logs (pose_compare_20260323.csv), the error looks systematic rather than random.
By stage:
MOVE_TO_PREGRASP
hand error: ~59.4 mm, 7.40°
tcp error: ~67.8 mm, 7.41°
CARTESIAN_APPROACH
hand error: ~53.0 mm, 7.65°
tcp error: ~61.8 mm, 7.65°
RETREAT
hand error: ~56.6 mm, 8.77°
tcp error: ~66.0 mm, 8.72°
The xyz error pattern is also very consistent across multiple runs:
x: about -11 to -17 mm
y: about -26 to -37 mm
z: about -42 to -47 mm
So the real end-effector is consistently landing on the same side of the target, especially lower in z.
This makes me think the root cause is more likely related to something like:
joint zero / mastering / calibration
URDF not matching the real robot
joint state -> FK mismatch
base frame or end-effector frame systematic offset
rather than just grasp-pipeline parameters like:
pregrasp_distance
goal_position_tolerance
I also already confirmed that in simulation, tightening the tolerances can achieve near-mm accuracy, so this does not look like just a planning tolerance issue.
My main question is:
In OpenArm, is there a dedicated / recommended place to tune this kind of real-robot systematic offset, instead of adding manual compensation in task-level code?
Any suggestions on where to check first would be greatly appreciated.
Describe the feature you want
Hi all,
I’m debugging a systematic pose error on the real OpenArm and would like to ask whether OpenArm has an official / recommended place to calibrate this.
I already finished the overall grasping workflow. In RViz / simulation, the pose error is almost zero. On the real robot, however, I see a clear and consistent fixed offset.
What I observed:
When using a Cartesian path, the real robot error is very small
When using a non-Cartesian path, a stable fixed offset appears
I could add compensation in my own code, but I would prefer not to do that if OpenArm already has a proper calibration / tuning place for this
From my real robot logs (pose_compare_20260323.csv), the error looks systematic rather than random.
By stage:
MOVE_TO_PREGRASP
hand error: ~59.4 mm, 7.40°
tcp error: ~67.8 mm, 7.41°
CARTESIAN_APPROACH
hand error: ~53.0 mm, 7.65°
tcp error: ~61.8 mm, 7.65°
RETREAT
hand error: ~56.6 mm, 8.77°
tcp error: ~66.0 mm, 8.72°
The xyz error pattern is also very consistent across multiple runs:
x: about -11 to -17 mm
y: about -26 to -37 mm
z: about -42 to -47 mm
So the real end-effector is consistently landing on the same side of the target, especially lower in z.
This makes me think the root cause is more likely related to something like:
joint zero / mastering / calibration
URDF not matching the real robot
joint state -> FK mismatch
base frame or end-effector frame systematic offset
rather than just grasp-pipeline parameters like:
pregrasp_distance
goal_position_tolerance
I also already confirmed that in simulation, tightening the tolerances can achieve near-mm accuracy, so this does not look like just a planning tolerance issue.
My main question is:
In OpenArm, is there a dedicated / recommended place to tune this kind of real-robot systematic offset, instead of adding manual compensation in task-level code?
Any suggestions on where to check first would be greatly appreciated.