Unstable robot assembler in isaac sim 4.5

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: GeForce RTX2080
  • Driver Version: 535.183.01

Topic Description

Detailed Description

When using the robot assembler (tools > robotics > asset editors > robot assembler) with two official assets (a robot and a gripper from the assets browser), the simulation is very unstable.

Steps to Reproduce

  1. Open a new stage.
  2. Add a UR10e universal robot from the official assets browser (Robots/UniversalRobots/ur10e/ur10e.usd).
  3. Add a 2F140 Robotiq gripper from the official assets browser (Robots/Robotiq/2F-140/Robotiq_2F_140_physics_edit.usd).
  4. Open the robot assembler under tools > robotics > asset editors > robot assembler and assemble the robot and the gripper as follows:
  • base robot: /World/ur10e
  • attach robot: /World/Robotiq_2F_140_physics_edit
  • Base robot attach point: /gripper
  • Attach robot attach point: /robotiq_base_link
  • Click on assemble
  1. Play the simulation and observe “exploding” behavior (see video attached) where the arm is moving randomly ?!? and the gripper detaches itself.

Error Messages

Just after the problem arises, multiple “Invalid PhysX transform detected”

Screenshots or Videos

Additional Information

What I’ve Tried

I tried different robots (Yaskawa, Staubli) that were converted to USD from URDF file but same behavior arises when i move the robots’s joints with the physics inspector.

Related Issues

Additional Context

1 Like

can we actually sort this issue out its been a long standing problem and there have been multiple reported problems for robotiq asset with UR or any robot and its a very typical configuration used in labs and even big OEM’s. I’ve reported the same issue in all versions of Isaac sim. I thought this was fixed in 4.5 finally but no, even the beta assets where we have the option to import usd for ur5e with robotiq as option directly doesn’t work let alone robot assembler.

I followed your steps and didn’t reproduce the issue.

Here is the python code from my “Assembly Summary Frame”:

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

base_robot_path = "/World/ur10e"
attach_robot_path = "/World/Robotiq_2F_140_physics_edit"
base_robot_mount_frame = "/gripper"
attach_robot_mount_frame = "/robotiq_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)

Could you compare it to yours?