Hi, I’m trying to control spherical or D6 joint on the standalone application.
My robot is composed of revolute, spherical and D6 joint. But using below command, only the revolute joint works.
ac = my_robot.get_articulation_controller()
ac.apply_action(ArticulationAction(joint_positions=np.pi/180*np.array(hand.joint), # [0 for i in range(24)]
joint_efforts=None,
joint_velocities=None,
joint_indices=[1, 0, 2, 15, 20, 4, 5, 16, 21, 7, 8, 17, 22, 13, 14, 19, 24, 10, 11, 18, 23]))
How can I move spherical and D6 joint on the code?
print("Num of degrees of freedom after first reset: " + str(hand_robot.num_dof))
> Num of degrees of freedom after first reset: 25
print("Joint Positions after first reset: " + str(hand_robot.get_joint_positions()))
> Joint Positions after first reset: [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0.]
print("joint sequence : " + str(hand_robot.dof_names))
> joint sequence : ['SphericalJoint_thumb_cmc:0', 'SphericalJoint_thumb_cmc:1', 'SphericalJoint_thumb_cmc:2', 'SphericalJoint_index_mcp:0', 'SphericalJoint_index_mcp:1', 'SphericalJoint_index_mcp:2', 'SphericalJoint_middle_mcp:0', 'SphericalJoint_middle_mcp:1', 'SphericalJoint_middle_mcp:2', 'SphericalJoint_pinky_mcp:0', 'SphericalJoint_pinky_mcp:1', 'SphericalJoint_pinky_mcp:2', 'SphericalJoint_ring_mcp:0', 'SphericalJoint_ring_mcp:1', 'SphericalJoint_ring_mcp:2', 'RevoluteJoint_thumb_mcp', 'RevoluteJoint_index_pip', 'RevoluteJoint_middle_pip', 'RevoluteJoint_pinky_pip', 'RevoluteJoint_ring_pip', 'RevoluteJoint_thumb_ip', 'RevoluteJoint_index_dip', 'RevoluteJoint_middle_dip', 'RevoluteJoint_pinky_dip', 'RevoluteJoint_ring_dip']
One thing I think weird is, there are also D6 joints on my roobt, but when I enter hand_robot.dof_names
, D6 joints are not indicated.
thanks!