Genesis-Embodied-AI/genesis-world · error · DeprecationError

This method has been removed. Please consider operating at l

Error message

This method has been removed. Please consider operating at link-level to get the cartesian position in word frame. Alternatively, 'get_anchor_pos' returns the anchor position of the joint in the world frame.

What it means

RigidJoint.get_pos has been removed because a joint is not a cartesion object with a well-defined position; only links carry cartesian poses. Calling it raises DeprecationError pointing to the replacements: link-level positions or joint.get_anchor_pos for the joint anchor in world frame.

Source

Thrown at genesis/engine/entities/rigid_entity/rigid_joint.py:98

            ("q_idx_local", "qs_idx_local"),
        ):
            if name == name_old:
                gs.logger.warning(
                    f"This property is deprecated and will be removed in future release. Please use '{name_new}' instead."
                )
                getter = getattr(self, f"_{name_old}")
                return getter()
        raise AttributeError

    # ------------------------------------------------------------------------------------
    # -------------------------------- real-time state -----------------------------------
    # ------------------------------------------------------------------------------------

    def get_pos(self):
        """
        Get the position of the joint in the world frame.
        """
        raise DeprecationError(
            "This method has been removed. Please consider operating at link-level to get the cartesian position in "
            "word frame. Alternatively, 'get_anchor_pos' returns the anchor position of the joint in the world frame."
        )

    def get_quat(self):
        """
        Get the quaternion of the joint in the world frame.
        """
        raise DeprecationError(
            "This method has been removed. Please consider operating at link-level to get the cartesian orientation in "
            "word frame. Alternatively, 'get_anchor_axis' returns the anchor axis of the joint in the world frame."
        )

    @gs.assert_built
    def get_anchor_pos(self):
        """
        Get the anchor position of the joint in the world frame.

View on GitHub (pinned to 56e4aa5d82)

Solutions

  1. Use joint.get_anchor_pos() for the joint anchor position in world frame
  2. Use joint.child_link.get_pos() (or the appropriate link) for a cartesian position
  3. Grep for 'joint.get_pos' and replace each call with the appropriate link or anchor API

Example fix

# before
pos = joint.get_pos()
# after
pos = joint.get_anchor_pos()  # anchor in world frame
# or
pos = joint.child_link.get_pos()
Defensive patterns

Strategy: validation

Try / catch

try:
    p = joint.get_pos()
except DeprecationError:
    p = joint.get_anchor_pos()

Prevention

When it happens

Trigger: Calling joint.get_pos() on any RigidJoint from entity.get_joints(...), e.g. to place an end-effector target or log a joint location in old scripts.

Common situations: Migrating code from an older Genesis release where joints exposed get_pos/get_quat; writing IK or plotting code that assumed a joint has a frame origin; following outdated tutorials.

Related errors


AI-assisted analysis of Genesis-Embodied-AI/genesis-world@56e4aa5d82 (2026-08-28). Data as JSON: /api/errors/6a5e5717d9cca20b. Report an issue: GitHub.