Hello,
I am reaching back to you as i think i might have found some root causes of my issue. Let me explain:
The context: My simulation consist of a structure on which 3 manipulators are mounted (see picture below). Each manipulator consists of one robot arm (UR, Yaskawa or Staubli) and a gripper (Robotiq 2f140). The arms were all converted to USD using the URDF importer and the robotiq 2f140 gripper is a working asset already converted. Regarding file structure, my simulation.usd file is just a simple scene referencing my manipulators.usd files.
The problem: there is a discrepancy between the trajectory planned in MoveIt2 and the one executed in Isaac Sim. See previous posts above. I have this problem with all my manipulators, in all types of simulation:full sim with everything, or minimal sim with only the robot.
Partial solution 1: I started tuning some parameters of the PhysicsScene, notably the “Time Steps Per Second” that I increased from 60 to 120 and finally to 240. This made the “motion problem” less likely to happen in my “full simulation” (i.e with the 3 manipulators) although it was still appearing from times to times (but rare). However, testing this parameter change in a simpler simulation (i.e only one manipulator) completely removed the motion issue! I did many motion tests and all were executed correctly in the simulator :)
First half of the video with a timesteps/s at 120: executed correctly
Second hald of the video with a timesteps/s at 60: incorrect motion
only one manipulator: now working fine, see:
But when simulating more than one manipulator at the same time; the grippers started to act weirdly (very looking like a collision problem but no collision reported in the physics debug window). So I fixed the “moveit motion discrepancy problem” but then jumped into the “weird gripper behavior”. See video:
Note that the manipulator USD files are the exact same in both cases (referenced in the sim); so the issue does not come from the USD definition of the robot.
Partial solution 2: I then started tweaking the Minimum Position Iteration Count and Minimum Velocity Iteration Count (still in the PhysicsScene properties) to force the solver to do more iterations. Because I am suspecting the gripper to not be solved correctly by the physics engine due to a too low number of iterations and hence creating artificial collisions and thus weird behavior.
I tried higher number for the minimum iteration count like 64, 128, 200 and also the maximum at 255. I also tried to change the “Min Simulator Frame Rate” in the physics stage settings to increase the FPS but without success.
All values tested directly impact the FPS that drops to 5-6 FPS on my machine* :/ . The weird gripper behavior was less likely to happen but was not completely removed! I think 8 simulations out of 10 are not working properly due to the gripper.
Partial solution 3: improved performance mode on Linux to reach 5GHz in CPU freq made the simulation more fluid.
Question:
Considering that:
- I tried the different optimization tricks described in the official documentation,
- From the “Time Steps Per Second” documentation, it is stated that application might cap the number of simulation steps to avoid running more simulations steps with a low frame rate,
- I made sure to simplify the simulation, removing all non-necessary colliders, trying to disable the rendering light reflection, shadows, etc,
- The FPS reported by the GUI is still stuck at 5-6 FPS,
Is it possible that this problem is related to a performance issue? Meaning the computer is not able to handle all the required computations, hence capping the number of simulation steps, hence resulting in incorrect physics simulation?
Machine*: Asus ROG M16 with RTX4080 Laptop GPU (12Gb VRAM) and 32Gb RAM, running Isaac Sim 5.0.0