Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Inconsistently Inaccurate Between Robots and Offline Simulation

#1
Hello RoboDK forum community,

I am currently trying to offline program through RoboDK two identical robot assembly stations. The problem that I am running into is that my robots aren't accurate with what the RoboDK simulation is showing and the robots aren't accurate between each other running the same program. I calibrated my TCP to <1mm accuracy and I know that my cell layout is accurate enough for what I am trying to do. Because this is my first proper attempt at offline programming, I could be missing something more fundamental here. 
I have attached my station file (the 'actest' program my accuracy testing program) along with pictures showing where my TCP roughly sits in real life at these points for both robot A and B. 
I have also tried running this program with both only J moves and only L moves. Both don't yield accurate results. 
As these pictures show, the inaccuracy of the TCP with respect to the targets varies point to point and robot to robot. This leads me to believe this issue has something to do with how the robot joint information on RoboDK differ from the joints on the real robots. Could the robot not being calibrated cause some of these positions to be more than 40mm off?

Any help here would be appreciated! I can't think of what else to do currently besides just teaching my points at the pendant. Then only being able to use RoboDK for the general motion, which basically defeats the main reason I'm using RoboDK to begin with.


Attached Files Thumbnail(s)
RobotA Point 1.png    RobotA Point 2.png    RobotA Point 3.png    RobotB Point 1.png    RobotB Point 2.png    RobotB Point 3.png   

.rdk   Adirondack Station.rdk (Size: 10.33 MB / Downloads: 187)
#2
How do you know your tool (TCP) is accurate within 1 mm? I checked your tool calibration in the RoboDK project you shared and I see you used 4 points on a plane. I recommend you to use more points to get a good understanding of tool errors (10 at least).

Also, how accurate is the robot supposed to be? Make sure the dimensions of your robot arm in RoboDK match the dimenstions in the robot controller.

It looks like you customized your post processor. What did you change? Are you mixing joint movements and cartesian movements?
#3
Albert,
"How do you know your tool (TCP) is accurate within 1 mm?"
I got that number from the robot controller when calibrating the TCP. Similar to when calibrating through RoboDK, it gives you an accuracy number. I am using slightly different values for my TCP in the simulation and on the real life robot. My real life TCP is calibrated but my simulation TCP is dimensioned off of the end of arm tool. This way the TCP with respect to the EOAT is the same in real life and the simulation. This seems like the right approach to me, but maybe I am misunderstanding the difference between simply defining the TCP and calibrating it?

"Also, how accurate is the robot supposed to be?"
I'm using brand new Leantec LA1725-20-K robots. They have a repeatability listed at 0.040mm, but I don't have a exact number for what the accuracy is I need for this project. It would probably be less than 1mm though. 

"Make sure the dimensions of your robot arm in RoboDK match the dimensions in the robot controller."
This I didn't do and also am not sure how to. The robot models are pulled from the RoboDK library. Each robot has mechanical parameters and they are called out on a plate in the robot cabinet. (see attached image) Is there some data field in RoboDK where I can put the specific robot parameters called out on this plate?

"It looks like you customized your post processor. What did you change?"
I didn't touch anything with the post processor. I am using it directly from what was sent to me from the robot manufacturer. 

"Are you mixing joint movements and cartesian movements?"
Yes. My plan is to use J moves as much as I can, but L moves only when necessary to maximize robot speed and reduce cycle time. 


Currently what I am working on doing to make the simulation accurate with real life is changing my targets in RoboDK to reference a frame that I can also calibrate in real life with the robot. I'm redoing my TCP calibration so I can then get a more accurate user coordinate from it.


Attached Files Thumbnail(s)
Robot Parameters.JPEG   
#4
After changing my targets in RoboDK to reference a frame that I also have calibrated on the real life robot, I still see large inconsistent inaccuracies. Maybe this was never the main issue at hand, but if the information helps, I've attached the new station with program 'Frameactest' being my new accuracy test program along with a video of the robot running this program. You can see in the video how the inaccuracies vary greatly between points. 


Attached Files
.rdk   Adirondack Station v2.rdk (Size: 10.33 MB / Downloads: 168)
.mp4   IMG_6971.mp4 (Size: 20.02 MB / Downloads: 179)
#5
By checking the mechanical parameters of the robot you shared and comparing against the robot you are using in RoboDK we can see an important mismatch. I assume the values are in microns, and H3 is modeled as 0 mm in the robot in RoboDK. Other values like L1 and H2 and L2 differ by a few mm (1-2 mm). I recommend you to model the robot properly to fix the accuracy issues. 

Also, getting a good accuracy of your TCP is not a good indicator if you used only 4 points. You should use more points and calibrate your TCP by a point instead of a plane.

Robot-parameters-mismatch-Leantec.png   
  




Users browsing this thread:
1 Guest(s)