How to wrap a USD file combined by Assembler into a Robot class

Hello

I combined the UR5e (localhost\NVIDIA\Assets\Isaac\2023.1.0\Isaac\Robots\UniversalRobots\ur5e\ur5e.usd) and Robotiq’s 2F-85 (localhost\NVIDIA\Assets\Isaac\2023.1.0\Isaac\Robots\Robotiq\2F-85\2f85_instanceable.usd) from Isaac Sim’s asset list using the GUI Assembler, and saved the resulting USD file as ur5e_attached.usd.

I would like to control the UR5e with the attached 2F-85 by wrapping this USD file into the Robot class using the following program, but I am encountering an error where the USD file cannot be wrapped into the Robot class.

Could someone kindly share a program that controls a robot arm with an attached end-effector, like in this example?

from omni.isaac.kit import SimulationApp
simulation_app = SimulationApp({"headless": False})
from omni.isaac.core import World
from omni.isaac.core.objects import DynamicCuboid
from omni.isaac.core.utils.types import ArticulationAction
from omni.isaac.franka import Franka
from omni.isaac.core.articulations import ArticulationView
from omni.isaac.sensor import Camera
import omni.isaac.core.utils.numpy.rotations as rot_utils
from omni.importer.urdf import _urdf
from omni.isaac.core.utils.stage import add_reference_to_stage
from omni.isaac.core.utils.nucleus import get_assets_root_path
from omni.isaac.core.robots import Robot
import numpy as np



my_world = World(stage_units_in_meters=1.0)


my_world.reset()

# set up paths and prims(UR5e)
ur5e_name = "UR5e"
ur5e_prim_path = "/UR5e"
ur5e_path = "ur5e_attached.usd"


# set references to staget in isaac
add_reference_to_stage(usd_path=ur5e_path, prim_path=ur5e_prim_path)


ur5e = my_world.scene.add(Robot(prim_path=ur5e_prim_path, name=ur5e_name, position=np.array([-3.1, 3.1, -0.769])))
ur5e = ArticulationView(prim_paths_expr=ur5e_prim_path, name=ur5e_name)

my_world.initialize_physics()


my_ur5e = my_world.scene.get_object(ur5e_name)

ur5e_controller = my_ur5e.get_articulation_controller()

while simulation_app.is_running():
    my_world.step(render=True)
    if my_world.is_playing():
        if my_world.current_time_step_index == 0:
            my_world.reset()
        observations = my_world.get_observations()
        random_numbers = np.random.uniform(-1,1,6)
        actions = ArticulationAction(
            joint_positions=random_numbers,
            )
        ur5e_controller.apply_action(actions)
            

simulation_app.close()

Here is an image of the setup when I combined the assets using the GUI Assembler:

Thank you in advance.

What is the exact error message you’re receiving when trying to wrap the USD file into the Robot class?

@VickNV
Thank you for your response.

I have provided more details on this issue, including the USD file and program, in a separate post.
I would appreciate it if you could check that as well.

Thank you. Let’s close this topic and focus on that one using the latest version (4.2.0).