Robot not maintaining Z position during MoveL between points
I have noticed that the robot Z co-ordinates (displayed on the teach pendant) vary quite a lot from the programmed position. My program consists of series of TriggL and MoveL statements with same Z co-ordinates but different X-Y co-ordinates (all linear moves are done in the same X-Y plane).
Here is snapshot of my code:
MoveL [[44.043,104.280,0.200],[0.00000000,0.00000000,1.00000000,0.00000000],[0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v30,z0,R3DP_Tool,\WObj:=BedOrigin;
TriggL [[45.000,104.206,0.200],[0.00000000,0.00000000,1.00000000,0.00000000],[0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v30,robvel,z0,R3DP_Tool,\WObj:=BedOrigin;
MoveL [[45.000,104.206,0.200],[0.00000000,0.00000000,1.00000000,0.00000000],[0,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v30,z0,R3DP_Tool,\WObj:=BedOrigin;
TriggL [[210.006,104.206,0.200],[0.00000000,0.00000000,1.00000000,0.00000000],[-1,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v30,robvel,z0,R3DP_Tool,\WObj:=BedOrigin;
MoveL [[210.006,104.206,0.200],[0.00000000,0.00000000,1.00000000,0.00000000],[-1,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v30,z0,R3DP_Tool,\WObj:=BedOrigin;
TriggL [[211.207,104.323,0.200],[0.00000000,0.00000000,1.00000000,0.00000000],[-1,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v30,robvel,z0,R3DP_Tool,\WObj:=BedOrigin;
MoveL [[211.207,104.323,0.200],[0.00000000,0.00000000,1.00000000,0.00000000],[-1,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v30,z0,R3DP_Tool,\WObj:=BedOrigin;
TriggL [[212.370,104.670,0.200],[0.00000000,0.00000000,1.00000000,0.00000000],[-1,0,3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v30,robvel,z0,R3DP_Tool,\WObj:=BedOrigin;
MoveL [[212.370,104.670,0.200],[0.00000000,0.00000000,1.00000000,0.00000000],[-1,0,3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v30,z0,R3DP_Tool,\WObj:=BedOrigin;
TriggL [[213.444,105.232,0.200],[0.00000000,0.00000000,1.00000000,0.00000000],[-1,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v30,robvel,z0,R3DP_Tool,\WObj:=BedOrigin;
MoveL [[213.444,105.232,0.200],[0.00000000,0.00000000,1.00000000,0.00000000],[-1,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v30,z0,R3DP_Tool,\WObj:=BedOrigin;
TriggL [[214.386,105.987,0.200],[0.00000000,0.00000000,1.00000000,0.00000000],[-1,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v30,robvel,z0,R3DP_Tool,\WObj:=BedOrigin;
MoveL [[214.386,105.987,0.200],[0.00000000,0.00000000,1.00000000,0.00000000],[-1,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]],v30,z0,R3DP_Tool,\WObj:=BedOrigin;
I am using zone 0 (z0) in all the moves. I don't want to use fine since robot comes to a complete stop. If the programmed Z height is 1.60 mm from Wobj, I am observing deviations as much as 1.50 to 1.70 mm.
Link to video-1 (Programmed Z Height: 1.60 mm): https://vimeo.com/user109562193/review/397067732/c79deb907c
Link to video-2 (Programmed Z Height: 3.20 mm): https://vimeo.com/user109562193/review/397067739/722d793823
Is this deviation normal for zone 0? Can it be improved?
Comments
-
Is the robot calibrated correctly?
Is the tool and any payload defined correctly?
It appears from your code that the z co-ordinate has been manually entered (as all robtargets have exactly the same z value)?
Robots are repeatable not accurate so you will get deviation when you manually enter potions/robtargets as opposed to teaching them.
There is an option called absolute accuracy that improves the accuracy of the robot.0 -
Is the robot calibrated correctly?We upgraded to IRC5 from S4C in 2018 and our robot arm (IRB 140) was also serviced at that time. I believe this was calibrated at the factory before shipping. Is there a way to verify this?
Is the tool and any payload defined correctly?
This is the tool declaration:
! Tool declarationPERS tooldata R3DP_Tool := [TRUE,[[71.200,43.500,34.111],[0.50000000,0.50000000,0.50000000,0.50000000]],[1.000,[0.000,0.000,20.000],[1.00000000,0.00000000,0.00000000,0.00000000],0.000,0.000,0.005]];
I think i have the weight accurate. I can re-check this by weighing it. How to find the center of gravity of the tool?
It appears from your code that the z co-ordinate has been manually entered (as all robtargets have exactly the same z value)?
Yes. The RAPID code is generated from a g-Code file. There are lot of X/Y moves in the same Z plane. The robtargets are not manually entered. They are obtained from the g-Code file. Usually there are a lot of robtargets with same Z value but different X/Y values.
Robots are repeatable not accurate so you will get deviation when you manually enter potions/robtargets as opposed to teaching them.
The robtargets are programmed points.
There is an option called absolute accuracy that improves the accuracy of the robot.
Is this a hardware option or software?0 -
To check the calibration jog the robot so all axis are exactly at 0°, or use a moveabsj command to send the robot there.
All the calibration marks should line up exactly.
Use the LoadID function to determine the center of Gravity.
Absolute accuracy is a correction table that is built at the factory using a laser measurement system.
Last I heard it could be added in the field but would be expensive as an technician and equipment has to be sent out from the factory.0 -
graemepaulin said:
Use the LoadID function to determine the center of Gravity.0 -
Nevermind, values were updated after a controller restart.0
Categories
- All Categories
- 5.5K RobotStudio
- 396 UpFeed
- 18 Tutorials
- 13 RobotApps
- 297 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 250 ScreenMaker
- 2.8K Robot Controller
- 316 IRC5
- 61 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 798 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 5 Job listings