-
-
Notifications
You must be signed in to change notification settings - Fork 145
Troubleshooting
This page lists common Robots failure modes and where to look first. If a problem happens while generating code, start at Create Program: it is the main validation boundary and should report errors before unsafe or misleading code is emitted.
Check:
- Rhino 8 is installed.
- Robots was installed through
_PackageManager. - Rhino was restarted after installation.
- Old manual
Robots.ghaorRobots.dllcopies were removed from the GrasshopperComponentsfolder.
If a Grasshopper file was created with an older version, obsolete components may load but fail immediately with a replacement message. Replace them with the current component named in the message.
If Rhino shows an assembly-not-found dialog while opening a sample, close the dialog and let the file finish loading. Grasshopper should repair the reference after the Robots package is loaded.
If the file still fails, restart Rhino after installing Robots and reopen the sample.
Check:
- The XML and 3DM files have the same base file name.
- Local libraries are in the local Robots folder.
- The library XML has valid syntax.
- The robot system, tool, or frame name exists in the XML.
- The library manager is not showing an unexpected
Local override.
Local libraries override downloaded libraries with the same file name. If you expected the online copy, remove or rename the local XML and 3DM pair.
See Robot libraries for the XML and 3DM conventions.
Check:
- The XML
modelvalue matches the 3DM layer name. - The mechanism parent layer uses the expected pattern, such as
RobotArm.ABB.IRB120. - Child layers are named
0,1,2, and so on. - Geometry is mesh geometry, not blocks, curves, surfaces, or unrelated Rhino objects.
Collision meshes are optional. If collision mesh layers are absent, display meshes are used for collision checking.
Errors mean generated code is unavailable or should not be used.
Common causes:
- A Cartesian target is unreachable.
- A target is outside joint limits.
- A target is near a singularity or has no valid configuration.
- External-axis values are missing or have the wrong count.
- A frame coupling is invalid for the selected robot system.
- A motion type is unsupported by the selected manufacturer.
- A command cannot be represented by the postprocessor.
- A controller-managed Fanuc tool or frame is missing its number.
- The program name or generated identifier is invalid for the controller.
Use Program Simulation, Deconstruct Program Targets, and the target index reported by the error to narrow the problem down.
Start from the warning text reported by Create Program, then compare it with the checked-program behavior in Program Parameter.
Common warnings include:
- The first target was changed to a safer motion form.
- A configuration change was detected.
- A speed limit changed the expected duration.
- Acceleration settings make velocity-only timing optimistic.
- Target data was cleaned or normalized.
Warnings are part of the review process. Do not hide them just because code was generated.
Check:
- The target plane orientation, not only its origin.
- The previous target or previous joints.
- Explicit configuration flags.
- Whether a joint target would be clearer for that pose.
- Whether the robot is near a singularity or joint wrap boundary.
Many robots can reach the same TCP plane with several joint configurations. The solver needs context to choose among them.
Check:
- The input is a checked
Program, not custom code. -
Create Programhas no blocking errors. -
Timeis in the expected range. -
Normalizedis true if you wantTimeto run from0to1. - You are using the pass-through
Programoutput fromProgram Simulationfor downstream visualization such asSimple Trail.
Custom-code programs cannot be simulated because Robots no longer has target-level motion data after the code is replaced.
Check:
- Mesh indices match the
Program Simulationmesh order. - The environment mesh is included as the last mesh when supplied.
-
Environment Planeis-1for static world geometry. - Collision groups are not accidentally testing unrelated parts.
- Step sizes are small enough for the geometry and motion.
- Collision meshes are not too simplified or misaligned.
Collision checking is sampled. A clear result is useful, but it is not proof that a real cell is safe.
Generated code is only available when Create Program completes without errors. Check the Errors output first.
Also check whether the program was replaced by Custom Code. Custom-code programs carry text through the Robots pipeline but cannot be checked or simulated as normal target-based programs.
Check:
- The manufacturer supports
Remote Connection. - The controller IP or SFTP URL is correct.
- The controller is reachable from the computer running Rhino.
- The controller is in the required remote or external-control mode.
- Required vendor runtime software is installed.
- The
Logoutput fromRemote Connectionshows the failing step.
Remote support exists for ABB, UR, and Franka Emika. Other manufacturers should use Save Program and the controller's normal transfer workflow.
Check:
- The selected robot library matches the physical robot and controller.
- Tool and frame numbers match controller-managed data.
- IO numbers or names match the controller IO map.
- Program name and file names are valid for the controller.
- The selected manufacturer supports the motion type, commands, external axes, and multi-file behavior you are using.
See Manufacturer support for controller-specific notes.
When asking in GitHub Discussions, include:
- Robots version.
- Rhino version and operating system.
- Robot manufacturer, model, and controller.
- The exact error or warning text.
- Whether the issue happens before
Create Program, during simulation, during code generation, or on the real controller. - A minimal Grasshopper file or screenshot when possible.
Do not include controller passwords, private IP ranges that matter, license keys, or proprietary production code in public issues.