URDF imported robot pose

Hi, I want to change the pose of the Imported URDF, I tried:

from isaacsim.core.api.robots import Robot
class MyManipulator(Robot):
    def __init__(
        self, 
        robot_name: str, 
        urdf_path:str,
        app : SimulationApp,
        jnt_states_topic: str,
        jnt_cmd_topic: str,
        *args, **kwargs
    ) -> None:
        self._robot_name = robot_name
        self._jnt_cmd_topic = jnt_cmd_topic
        self._jnt_states_topic = jnt_states_topic
        self.robot_prim_path = self._import_robot(urdf_path)
        self._app = app
        super().__init__(prim_path=self.robot_prim_path, name=robot_name, *args, **kwargs)
    def _import_robot(self, urdf_path: str) -> str:
        # Set the settings in the import config
        import_config = _urdf.ImportConfig()
        import_config.set_merge_fixed_joints(False)
        import_config.set_convex_decomp(True) # Collision
        import_config.set_fix_base(True)
        import_config.set_make_default_prim(False)
        import_config.set_self_collision(True) #
        import_config.set_create_physics_scene(False)
        import_config.set_import_inertia_tensor(False) # 
        import_config.set_default_drive_strength(1047.19751)
        import_config.set_default_position_drive_damping(52.35988)
        import_config.set_default_drive_type(_urdf.UrdfJointTargetType.JOINT_DRIVE_POSITION)
        import_config.set_distance_scale(1)
        import_config.set_density(0.0)
        status, self.robot_prim_path = omni.kit.commands.execute(
            "URDFParseAndImportFile",
            urdf_path=urdf_path,
            import_config=import_config,
            get_articulation_root=True,
        )
        if not status:
            raise RuntimeError("Failed to import URDF file.")
        while is_stage_loading():
            self._app.update()


    robot_position = [0.0, 0.5, 1000.0]
    robot_orientation = [0.0, 1.0, 0.0, 0.0] # [qw, qx, qy ,qz]
    #
    MyManipulator(
        robot_name, 
        urdf_path=manipulator_urdf_path, 
        app=simulation_app,
        jnt_states_topic=joints_states_ros_topic,
        jnt_cmd_topic=joints_command_ros_topic,
        position=robot_position,
        orientation = robot_orientation
    )

However, robot pose is not set to the new pose, but still located at the origin!

P.S: Related issue

Isaac Sim Version

4.5.0

Operating System

Ubuntu 22.04

GPU Information

  • Model: GeForce RTX 2070
  • Driver Version: 550.127.08

Please try using the set_world_pose method to set the robot’s pose after creating the MyManipulator instance.

@VickNV thanks for your kind suggestion, I tried that, but it didn’t work as I am importing my Robot URDF using the URDF importer, might that be a bug in the URDF importer? or did I miss something?