code: def step(self, action):
          
  
          input_1 = self._make_input(action[:7], self.env._right_hand_quat)
          if self.env.mujoco_robot.name == "sawyer":
              velocities = self.controller.get_control(**input_1)
              low_action = np.concatenate([velocities, action[7:]])
          elif self.env.mujoco_robot.name == "baxter":
              input_2 = self._make_input(action[7:14], self.env._left_hand_quat)
              velocities = self.controller.get_control(input_1, input_2)
              low_action = np.concatenate([velocities, action[14:]])
          else:
              raise Exception(
                  "Only Sawyer and Baxter robot environments are supported for IK "
                  "control currently."
              )
  
          # keep trying to reach the target in a closed-loop
          for i in range(self.action_repeat):
              ret = self.env.step(low_action)
              velocities = self.controller.get_control()
              if self.env.mujoco_robot.name == "sawyer":
                  low_action = np.concatenate([velocities, action[7:]])
              else:
                  low_action = np.concatenate([velocities, action[14:]])
  
          return ret
docs: Move the end effector(s) according to the input control.
  
          Args:
              action (numpy array): The array should have the corresponding elements.
                  0-2: The desired change in end effector position in x, y, and z.
                  3-6: The desired change in orientation, expressed as a (x, y, z, w) quaternion.
                      Note that this quaternion encodes a relative rotation with respect to the
                      current gripper orientation. If the current rotation is r, this corresponds
                      to a quaternion d such that r * d will be the new rotation.
                  *: Controls for gripper actuation.
  
                  Note: When wrapping around a Baxter environment, the indices 0-6 inidicate the
                  right hand. Indices 7-13 indicate the left hand, and the rest (*) are the gripper
                  inputs (first right, then left).