Articulation Controller

Hi,

I have imported urdf model into Isaac Sim of a robotic hand with 16 joints. I want to send a joint-state position command to a subset of joints. I am using an articulation controller.

# Load the articulation from the USD model
    articulation = Articulation(prim_path, name="robot")
    articulation.initialize()

position = articulation.get_joint_positions()
    print(f"position: {position}")
# Control specific joints
    finger_joint_names = ['four', 'five', 'six', 'seven']  # Specify the joints of one finger
    finger_joint_positions = [np.deg2rad(50), np.deg2rad(50), np.deg2rad(50), np.deg2rad(50)]  # Example positions
    control_articulation(articulation, finger_joint_names, finger_joint_positions)
# Synchronize and update the simulation
    stage_utils.update_stage()
    
    # Adding a small delay to ensure the simulation processes the update
    time.sleep(1)  # Adjust as needed


    position = articulation.get_joint_positions()
    print(f"position: {position}")

I print the positions before and after setting the articulation. In Isaac Sim, on the property panel, and accessing the respective joint, Drive --- > Angular ---> Joint State I can see that the angle value is set. Also visually, I can see respective joints moving to the specified position.

However the print out of the positions, before and after does not look like it.

Joint names: ['five', 'nine', 'one', 'twelve', 'four', 'eight', 'zero', 'thirteen', 'six', 'ten', 'two', 'fourteen', 'seven', 'eleven', 'three', 'fifteen']
(Before) position: [-8.6294255e-10 -9.4900332e-10 -8.8591601e-10  1.8173253e-09
 -3.0888611e-11 -3.3964959e-11  3.1285891e-11  1.7682103e-10
 -7.9601181e-10 -7.1037964e-10 -1.9322841e-10 -2.1620002e-12
  1.4708317e-10 -1.0724152e-10 -2.5180196e-11 -7.7534999e-11]
(After) position: [ 6.5209061e-02 -9.4764274e-10 -8.7771007e-10 -2.4782138e-11
  1.4149317e-01  4.6171192e-11 -3.5568402e-11 -7.0371736e-11
  7.5302303e-02  1.1320920e-09 -1.9305087e-10  2.9341701e-12
  1.4133956e-01  7.1922385e-10  1.0072250e-10 -1.4786570e-11]

It all looks close to ‘0’. What could be the problem. Why I cannot see the right positions.

thanks,

Because when you get the position, the joint has not yet moved