Skip to content

Set Default Joint Configuration

SUMMARY

Set Default Joint Configuration stores a default joint configuration (in degrees) on the robot object. The default is the joint positions loaded into the manipulator's state at robot creation - see Manipulator States for how state is seeded and how it switches between offline and live modes.

UNITS

Joint configuration in degrees, ordered base to wrist.

The Skill

python
robot.set_default_joint_configuration(q=[0, -90, 90, -90, -90, 0])
A UR10e manipulator posed at its configured default joint configuration

The Code

python
"""
Override the default joint configuration used as the offline commanded state.

Supports Universal Robots (UR), Epson, and virtual.

Usage:
    python set_default_joint_configuration.py
"""

from loguru import logger

from telekinesis.synapse.robots.manipulators import universal_robots


def main():
    """Override the default joint configuration and verify the readback."""

    #===================== Create Robot ==========================================
    robot = universal_robots.UniversalRobotsUR10E(name='UR10e')

    # ==================== Run Skill ============================================
    # Log the brand-default joint configuration [deg]
    logger.info(f"Default joint configuration [deg]: {robot.default_joint_configuration}")

    # Set a new default joint configuration [deg]
    new_default = [0.0, -90.0, -90.0, 0.0, 90.0, 0.0]
    robot.set_default_joint_configuration(q=new_default)
    logger.success(f"Updated default joint configuration [deg]: {robot.default_joint_configuration}")

    # ==================== Visualization (Optional) =============================
    # set_default_joint_configuration() only changes the IK seed, not the
    # commanded state — drive the robot there to see the change reflected.
    robot.set_joint_positions(joint_positions=new_default)
    robot.visualize_rerun(live=False)


if __name__ == "__main__":
    main()

Parameter Configuration

ParameterTypeDefaultDescription
qlist[float] | np.ndarrayrequired1D joint configuration vector in degrees, length equal to the number of joints on the robot.

Returns

TypeDescription
NoneThe default configuration is stored on the robot object. Read it back through robot.default_joint_configuration.

Where to Use the Skill

  • IK seed - Use the default joint configuration as the implicit q_init for Inverse Kinematics. When q_init=None, the solver seeds from default_joint_configuration, so setting it once at startup biases every subsequent IK call toward a preferred posture.
  • Safe home pose for robot motions - Set the default to a known-good "home" configuration that is reachable, collision-free, and far from joint limits and singularities, then drive the robot back to it whenever you want a deterministic reset point.

When Not to Use the Skill

Do not use the default joint configuration on real robot unless validated on the real system.