Skip to content

Ros2/power on position independance#72

Merged
AndreasJosefGassner merged 2 commits intomainfrom
ros2/power-on-position-independance
Feb 16, 2026
Merged

Ros2/power on position independance#72
AndreasJosefGassner merged 2 commits intomainfrom
ros2/power-on-position-independance

Conversation

@AndreasJosefGassner
Copy link
Collaborator

This PR makes the published joint values independent of the GELLO's joint positions on power-on and thus removes the need for an error prone manual initialization routine before teleoperation.

Until now, it is necessary that the GELLO arms are within a certain range of poses when they get powered on, in order that the joint position mapping between the GELLO arms and the real robots are correct. This is because the Dynamixel motors reset their internal position registers to values between 0 and 2π radians on power up, losing tracking of full rotations (multi-turn), and the publisher didn't handle this ambiguity.

Implementation approach:
On startup, the publisher normalizes the initial motor positions by removing assembly offsets, applying joint signs, and wrapping values to each joint's working range. This resolves the multi-turn ambiguity from the motor's power-on reset. After initialization, all position updates are computed incrementally using deltas between consecutive readings, maintaining continuity across the full joint range. Final positions are clamped to the FR3's joint limits.

⚠️ Breaking change:
In the publisher's config files, the best_offsets parameter has been renamed to assembly_offsets and their values need to be updated:

  • For pre-assembled Franka GELLO Duo's, use the new values provided
  • For self-assembled GELLO variants, use the newly added get_offsets.py script to determine them (see README)

@AndreasJosefGassner AndreasJosefGassner merged commit b6d977d into main Feb 16, 2026
1 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants