This article explains why a collision error can appear with nothing touching the robot when the collision sensitivity is set high, and how to set the velocity and acceleration of your motions to avoid it.
Symptoms
- A collision error (2.9011 or 5.7060) appears during a motion although nothing touches the robot, the tool or the cables.
- It repeats at the same motions — typically slow approach or retract moves, short moves, or the first move after force or compliance control is released.
- Fast transfer moves in the same program run without problems.
- The error disappears when the collision sensitivity is lowered.
Why It Happens
The robot does not measure external force directly. It predicts the joint torque each motion needs from a dynamics model and compares it with the measured torque. At the moment the acceleration changes, the model cannot follow the real response perfectly, so a short prediction error occurs.
At high collision sensitivity settings, the robot also checks how fast the estimated external force changes. This check can react to that short prediction error.
The prediction error grows with the jerk — how abruptly the acceleration changes. A motion raises its acceleration from zero to the set value and back within its acceleration time (roughly velocity ÷ acceleration), so:
jerk ∝ acceleration ÷ (velocity ÷ acceleration) = acceleration² ÷ velocity
In other words, low velocity combined with high acceleration gives the largest jerk and is the most likely to cause false detection.
How to Set Motions
- Set velocity and acceleration as a pair. The lower the acceleration and the higher the velocity, the smaller the jerk. If a motion causes false detection, lower its acceleration or raise its velocity. Lowering only the velocity while keeping the acceleration makes it worse.
-
Do not leave a high global acceleration on slow motions. The global acceleration (
set_accx,set_accj) is usually set high for fast transfer moves. Approach and retract moves that only lower the velocity then reach a high jerk. Give slow motions their own, lower acceleration. - Short moves need lower settings. A short move may never reach the set velocity, so it finishes accelerating sooner and the jerk is higher than expected. Lower both velocity and acceleration further.
-
Take care with posture. Velocity and acceleration of task motions such as
movelare defined at the TCP. With the arm strongly folded, near the workspace boundary or near a singularity, the same TCP acceleration can drive some joints much harder. Use lower acceleration there, or split large posture changes into joint motions. -
For joint motions, lower only the axis concerned.
movej/movejxandset_accjaccept a list with one acceleration per joint. If the error always names the same joint ("Collision occurred at Joint AxisN"), lower the acceleration of that joint only — a single value applies to all six joints.
After Releasing Compliance or Force Control
Right after compliance or force control is released, the controller switches back to normal motion control and its internal calculation is in transition for a short time. A motion that starts during this period has a larger prediction error. Add a short wait (wait()) after releasing compliance or force control, before the next motion.
Adjustment Procedure
- From the log, find the program line, the motion and the joint where the error occurs, and note the velocity, acceleration, global settings and blend radius in effect.
- If it is the first motion after force or compliance control, add the wait shown above and test again.
- Lower the acceleration of that motion. If cycle time allows, raise its velocity instead of lowering it.
- If the motion is short or in a folded or near-singular posture, lower velocity and acceleration further, or split it into joint motions.
- For a joint motion, lower the acceleration of the joint named in the error only.
- Repeat the same cycle many times before you judge the result — false detection can be intermittent.
- Then raise the acceleration step by step to recover cycle time, and keep the last stable value.
- Lower the collision sensitivity only if the application and your risk assessment allow it.
About Values from Other Installations
Joint acceleration values reported as working in a specific installation were confirmed only for that robot, posture, payload and program. They are not official limits or recommended values. Use them only as a starting point for your own test.
When You Contact Support
- Robot model, serial number and controller software version
- Collision sensitivity setting, and tool weight and center of gravity
- The program (DRL or task), with the motion line where the error occurs
- Velocity, acceleration and blend radius of that motion, and the global
set_velx/set_accx/set_velj/set_accjsettings - Whether force or compliance control is released right before the motion, and whether a wait is used
- The controller log exported right after the error, and a video if possible
Comments
0 comments
Please sign in to leave a comment.