Can I use both position and torque control on different joints of a robot?

I want to use position control to control some joints of a robot and use torque control to control the rest joints in IsaacSim.
I plan to do this by using view._physics_view.set_dof_position_targets or view._physics_view.set_dof_actuation_forces for the ArticulationView of the robot. These two functions will apply commands to all joints of a robot prim. Will there be any conflicts if I call these functions without a step() call in SimulationContext? @Ossama_Ahmed @rgasoto @toni.sm

~/.local/share/ov/pkg/isaac_sim-2022.2.1/exts/omni.isaac.core/omni/isaac/core/articulations/articulation_view.py

def switch_control_mode(
self,
mode: str,
indices: Optional[Union[np.ndarray, List, torch.Tensor]] = None,
joint_indices: Optional[Union[np.ndarray, List, torch.Tensor]] = None,
) → None:
“”" Switches control mode between velocity, position or effort.

    Args:
        mode (str): control mode to switch the articulations specified to. mode can be velocity, position or effort.
        indices (Optional[Union[np.ndarray, List, torch.Tensor]], optional): indicies to specify which prims 
                                                                             to manipulate. Shape (M,).
                                                                             Where M <= size of the encapsulated prims in the view.
                                                                             Defaults to None (i.e: all prims in the view).
        joint_indices (Optional[Union[np.ndarray, List, torch.Tensor]], optional): joint indicies to specify which joints 
                                                                             to manipulate. Shape (K,).
                                                                             Where K <= num of dofs.
                                                                             Defaults to None (i.e: all dofs).
1 Like