{"record":{"id":"a0d58d0333549fa7","repo":"Genesis-Embodied-AI/genesis-world","slug":"this-method-has-been-removed-please-consider-oper-a0d58d","errorCode":null,"errorMessage":"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.","messagePattern":"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\\.","errorType":"exception","errorClass":"DeprecationError","httpStatus":null,"severity":"error","filePath":"genesis/engine/entities/rigid_entity/rigid_joint.py","lineNumber":107,"sourceCode":"\n    # ------------------------------------------------------------------------------------\n    # -------------------------------- real-time state -----------------------------------\n    # ------------------------------------------------------------------------------------\n\n    def get_pos(self):\n        \"\"\"\n        Get the position of the joint in the world frame.\n        \"\"\"\n        raise DeprecationError(\n            \"This method has been removed. Please consider operating at link-level to get the cartesian position in \"\n            \"word frame. Alternatively, 'get_anchor_pos' returns the anchor position of the joint in the world frame.\"\n        )\n\n    def get_quat(self):\n        \"\"\"\n        Get the quaternion of the joint in the world frame.\n        \"\"\"\n        raise DeprecationError(\n            \"This method has been removed. Please consider operating at link-level to get the cartesian orientation in \"\n            \"word frame. Alternatively, 'get_anchor_axis' returns the anchor axis of the joint in the world frame.\"\n        )\n\n    @gs.assert_built\n    def get_anchor_pos(self):\n        \"\"\"\n        Get the anchor position of the joint in the world frame.\n\n        Mathematically, the anchor point corresponds to the point that is fixed wrt parent link and is coincident with\n        the joint for the neutral configuration qpos0. This means that this point moves under the effect of the\n        generalized coordinates corresponding to this joint (and all its ancestors in the kinematic tree). Physically,\n        the anchor point is the \"output\" of the joint transmission, on which the child body is welded.\n        \"\"\"\n        tensor = torch.empty((self._solver._B, 3), dtype=gs.tc_float, device=gs.device)\n        _kernel_get_anchor_pos(self._idx, tensor, self._solver.dyn_state)\n        if self._solver.n_envs == 0:\n            tensor = tensor[0]","sourceCodeStart":89,"sourceCodeEnd":125,"githubUrl":"https://github.com/Genesis-Embodied-AI/genesis-world/blob/56e4aa5d82bdb83f2e532e4cc364cb69527acb06/genesis/engine/entities/rigid_entity/rigid_joint.py#L89-L125","documentation":"RigidJoint.get_quat has been removed because a joint has no cartesian orientation of its own; orientations belong to links. The error directs you to link-level orientation getters or joint.get_anchor_axis() for the joint axis in world frame.","triggerScenarios":"Calling joint.get_quat() on a RigidJoint, e.g. legacy code computing a joint frame rotation or aligning an attachment to a joint.","commonSituations":"Upgrading Genesis after the joint API was pruned to anchor-based quantities; porting attachment/IK code from an older release or outdated examples that read a joint's quaternion.","solutions":["Use joint.get_anchor_axis() if you need the joint axis in world frame","Use joint.child_link.get_quat() for the cartesian orientation of the attached link","Grep for 'joint.get_quat' and migrate each site to link or anchor API"],"exampleFix":"# before\nquat = joint.get_quat()\n# after\naxis = joint.get_anchor_axis()  # joint axis in world frame\n# or\nquat = joint.child_link.get_quat()","handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    q = joint.get_quat()\nexcept DeprecationError:\n    q = joint.child_link.get_quat()\n","preventionTips":["Use joint.get_anchor_axis() for the world-frame axis","Get orientations from the child link, not the joint"],"tags":["genesis","deprecation","rigid-joint","api-removal"],"backgroundTag":"removed-api-migration","analyzedSha":"56e4aa5d82bdb83f2e532e4cc364cb69527acb06","analyzedAt":"2026-08-28T15:15:07.922Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}