-
-
Notifications
You must be signed in to change notification settings - Fork 145
Simulation
This page covers the kinematic simulation used by Program Simulation and the sampled collision checks built on top of that simulation. Collision checking is a subsection here because it depends on the same posed meshes, target samples, and step-size assumptions.
For the broader definition-building sequence, see Workflow guide. For unexpected animation or collision results, see Troubleshooting.
Robots uses a kinematic, non-dynamic simulation. It samples the planned path, solves robot kinematics, poses the robot meshes, and estimates duration from velocity limits and waits.
The simulation includes:
- Joint and linear motion.
- Geometric fly-by zones.
- Stop points.
- Wait commands.
- Speed-limited slowdowns, including singularity-related slowdowns where they are detected.
- External mechanisms that are part of the robot system.
The simulation does not integrate acceleration, deceleration, jerk, servo dynamics, controller lookahead, payload flex, cable motion, fixture motion outside the supplied geometry, or safety-rated controller behavior. Acceleration values are still useful for postprocessors that support them and for warnings when the velocity-only timing estimate is likely optimistic.
Zones with nonzero distance or rotation values are simulated as geometric fly-bys. The simulation samples the blended path but still treats targets with commands as stop points. This matches the important programming rule: command timing should not be hidden inside an approximation zone.
The Check Collisions component tests two sets of posed meshes against each other. Meshes within one set are not tested against other meshes in that same set.
The mesh indices match the Meshes output from Program Simulation, plus the optional environment mesh at the end. Robot libraries can provide separate collision meshes for mechanisms and tools. When they do, collision checking uses those collision meshes internally while keeping the same index order. If no collision mesh is defined for a part, its display mesh is used instead.
Example: to test the tool against the third and fourth robot axes, put 7 in one set and 3, 4 in the other set. The order of the two sets does not matter.
The optional Environment mesh lets you test the robot against a fixture, stock, table, or other cell geometry.
Environment Plane selects which posed plane moves the environment mesh. This is useful when the environment is attached to a moving mechanism such as a positioner. Use -1 for world/static environment geometry.
Invalid mesh indices and invalid environment plane indices are reported before collision checking starts.
Linear Step Size is measured in millimeters. It advances along the same sampled motion path used by simulation, including fly-by zones. A smaller value is slower but reduces the chance of stepping over a collision.
Angular Step Size is measured in radians. It adds intermediate checks when joint-angle change is large, including cases where two target planes share an origin but differ in orientation.
Collision checking is still a sampled check. Very small or fast-moving details can be missed if the step sizes are too coarse or the collision geometry is too simplified.
- Use display meshes for visual clarity.
- Use optional collision meshes for faster and more reliable checking when display meshes are dense or overly detailed.
- Keep collision meshes slightly conservative when clearance matters.
- Keep fixtures and stock in the environment mesh if they are not part of the robot library.
- Treat a clear collision result as a useful check, not a safety certificate.
See Robot libraries for the 3DM collision mesh layer convention.