How to assemble UR5e and Robotiq hand?

Hello everyone,

Isaac Sim Version

4.5.0
4.2.0
4.1.0
4.0.0
4.5.0
2023.1.1
2023.1.0-hotfix.1
Other (please specify):

Operating System

Ubuntu 22.04
Ubuntu 20.04
Windows 11
Windows 10
Other (please specify):

GPU Information

  • Model: NVIDIA GeForce RTX4070
  • Driver Version: 535.230.02

Topic Description

Detailed Description

I am trying to assemble the UR5e and Robotiq_2F_85_edit according to the tutorial at Assemble Robots And Rigid Bodies — Isaac Sim Documentation, but I am unable to attach them properly.

Steps to Reproduce

  1. Display the models of UR5e and Robotiq
  2. Click the “BEGIN ASSEMBLE” button
  3. Click the “SELECT ATTACH POINT” button and set the coordinates at the tip of the UR5e
  4. Click the “ASSEMBLE” button

Error Messages

After clicking the “BEGIN ASSEMBLE” button:
[Error] [omni.usd.commands.usd_commands] Cannot move/rename ancestral prim /World/Robotiq_2F_85_edit/Robotiq_2F_85

After clicking the “ASSEMBLE” button:
[Warning] [omni.metrics.assembler.ui.metricsAssemblerManager] Could not get Sdf layer for /World/ur5e

Screenshots or Videos

Step2

Step3

Please tell me how to assemble robot.
Thank you for any help!

1 Like

Have you resolved this issue?

I couldn’t reproduce the issue on my first attempt, and the following code snippet was generated:

from isaacsim.robot_setup.assembler import RobotAssembler,AssembledRobot 
from isaacsim.core.prims import SingleArticulation
import numpy as np

base_robot_path = "/World/ur5e"
attach_robot_path = "/World/Robotiq_2F_85"
base_robot_mount_frame = "/wrist_3_link"
attach_robot_mount_frame = "/base_link"
fixed_joint_offset = np.array([0.0,0.0,0.0])
fixed_joint_orient = np.array([-0.0,0.7071,0.0,0.7071])
single_robot = False

robot_assembler = RobotAssembler()
assembled_robot = robot_assembler.assemble_articulations(
	base_robot_path,
	attach_robot_path,
	base_robot_mount_frame,
	attach_robot_mount_frame,
	fixed_joint_offset,
	fixed_joint_orient,
	mask_all_collisions = True,
	single_robot=single_robot
)

# The fixed joint in a assembled robot is editable after the fact:
# offset,orient = assembled_robot.get_fixed_joint_transform()
# assembled_robot.set_fixed_joint_transform(np.array([.3,0,0]),np.array([1,0,0,0]))

# And the assembled robot can be disassembled, after which point the AssembledRobot object will no longer function.
# assembled_robot.disassemble()

# Controlling the resulting assembled robot is different depending on the single_robot flag
if single_robot:
	# The robots will be considered to be part of a single Articulation at the base robot path
	controllable_single_robot = SingleArticulation(base_robot_path)
else:
	# The robots are controlled independently from each other
	base_robot = SingleArticulation(base_robot_path)
	attach_robot = SingleArticulation(attach_robot_path)

Afterwards, I consistently encountered the same error you described.