Robot Simulation Tips#

Improve Simulation Performance#

  • You can speed up the simulation by reducing the number of objects in the scene, reducing the complexity of the objects in the scene, or reducing the number of simulation steps. For more information, see Isaac Sim Performance Optimization Handbook for more details.

  • Alternatively, you can reduce the number of sensors, or reduce the resolution of sensors in the scene. See Isaac Sim Benchmarks for more performance benchmarks.

Simulation Time Stepping and Rendering Rate#

  • adjust the rendering and physics stepping in simulation. If your system is GPU limited, decrease the rending rate could allow more physics stepping to happen per frame, so although it may appear less smooth with a lower frame rate, the physics simulation may be more accurate and more simulation time would have elapsed per frame.

  • These parameters can be set using the Simulation Manager and the Rendering Manager, assessbile via Python

Adjusting friction for wheeled robots#

  • add and adjust friction parameters to both the wheels and the ground. See Adding Contact and Friction Parameters for instructions.

  • Coefficient of friction is the ratio between between the normal force and the friction force. Increasing the Coefficient of static or dynamic friciton to a higher value will increase the friction force for the same normal force. Coefficient of friction should not exceed 1.0 in most cases.

  • modify the frictiion combine mode to adjust how friction is computed between two objects.

Gripper not picking up objects#

  • You can increase the friction parameters on both the fingers and object. See Adding Contact and Friction Parameters for instructions.

  • Use the Physics Authoring Toolbar (Tools > Physics Toolbar), especially the Mass Distribution Tool to make sure the weight of the object and weight of the arms are reasonable.

  • The gripper is not following your commands accurately, consider increase the stiffness and damping gains in the controller.

Colliders#

  • Colliders should only be applied to the parts of the robot that need to interact with the environment.

  • Use simple shape colliders (box, sphere, capsule, convex hull) or convex hull whenever possible for better performance.

  • Only use convex decomposition colliders when necessary, such as tips of end effectors, as they are more computationally expensive. Adjust the Error Percentage, Shrink Wrap, and ofset parameters in the advanced tab for better accuracy.

  • Apply collision filters to avoid unnecessary collision checks between parts of the robot that should not collide with each other, such as the rubber pads on the finger and the finger itself. Overlapping colliders can cause instability in the simulation and cause the robot to “explode”. Collision filters can be set via Physics Collision Group

  • For dynamic collisions, use convex hull, convex decomposition, box, sphere, or SDF approximations only. Triangle mesh, and Mesh simplification only works for static objects.

Masses#

  • For accurate simulation, the mass, center of mass, diagonal inertia, principal axes of the rigid body should be set using the MassAPI, and match the real world masses as closely as possible.

  • If it’s not specified, the mass will be estimated based on the volume of the mesh, with dentisty set to 1000 kg/m^3 by default.