Hi, I have been experimenting with the AR4 I’ve built, I am happy with it.
I am getting Collision or motor errors on J2&J6. The encoder test script works, and jogging works. However when I run GCODE I get this error, usually just before the command finishes.
If I disable these two encoders it works fine. It is confusing me because everything seems to be wired correctly, and it seems to be almost achieving its goal. Some gcode executes without errors. I have considered reducing the sensitivity but I’m concerned this will just hide the problem.
Could I get any hints on how I can possibly debug this further or potential causes?
Maybe related, I can get position out of reach errors. The most common circumstance is right after calibration, I can get the error by just moving it 1cm. I’ve learned to avoid these, by avoiding certain joint values. I think it’s problem in the kinematics, finding invalid solutions.
I sometimes have to run the calibration twice for it to calibrate correctly too, my guess is that the calibration file isn’t loaded correctly on startup. This is the least of my concerns however
My apologies, I did not see your reply. I just watched the video and it looks like the robot wrist is in singularity - J4 and J6 are in alignment with each other, this makes any movement in the X direction ambiguous. Here is some info on that: "A robot wrist singularity occurs when a robotic arm with a wrist configuration (such as a 6-axis robot) reaches a position where two of its axes align, causing a loss of one degree of freedom. This singularity happens because the wrist's rotation axes become collinear, making it impossible for the robot to determine the orientation of the end-effector uniquely. This is common in industrial robots with a spherical or articulated wrist (axes 4, 5, and 6).
Why J5 (the wrist pitch) Must Have an Angle
J5 is the central joint in the wrist's 3-axis assembly, controlling the pitch. It plays a critical role in avoiding wrist singularity. Here’s why maintaining an angle for J5 is essential:
Preventing Axis Alignment (Singularity):
When J5 is at 0° or 180°, axes J4 (roll) and J6 (yaw) become collinear. In this condition, the robot loses one degree of freedom because rotations around J4 and J6 become indistinguishable. This makes it mathematically and physically impossible to control certain orientations of the end-effector.
Ensuring Smooth Interpolation:
Motion planning algorithms require J5 to maintain a non-singular posture to interpolate smoothly between points. At singularity, the required velocities of J4 and J6 can spike to unrealistic or damaging levels as the robot attempts to compensate for the loss of control.
Preventing Control Instabilities:
In a singular configuration, the Jacobian matrix (used for inverse kinematics) becomes ill-conditioned or non-invertible. This can cause instability in position control or make the robot's movements erratic.
Protecting Hardware and Efficiency:
Singularities can stress the motors and mechanical components of the robot due to rapid or erratic motion as the controller tries to resolve the loss of control.
Practical Implications
To avoid wrist singularity:
Ensure that during programming or motion planning, J5 maintains a safe pitch angle (e.g., 10°–170°).
Robot manufacturers typically implement singularity avoidance algorithms in their control systems, which adjust motion paths dynamically to keep J5 away from problematic angles.
This concept is crucial in robotic automation, as singularities can severely affect task performance, cycle time, and the robot's lifespan. Understanding and handling singularities is an essential part of programming and operating 6-axis robotic arms." Try giving J5 a slight angle before jogging forward in the X direction. Let me know if that makes sense or if im missing any details.
Hi Chris, thanks for your fast reply. I’ll look into the shielding. I jogged the x axis immediately after calibration and I just attached a video of this. I did X, then I did Y. Note that the Y axis took a while to move to 0.899. The AR4 in this time period is maneuvering itself, J4 did a 90 degree turn. After this operation is complete I can jog the X axis. I’ll send a video of this too
I wonder is there could be an issue with the shielding. When you get position out of reach can you tell me which direction you are jogging after calibration? I assume you are jogging from the home position. I would like to see if I can replicate this issue.