Home› Programming
Discussion
Back to discussions page
mhowe
Partner, Wrist Camera URCap 1.3.0 Posts: 41 Handy
palletizing |
103 views
|
Answered | |
/ Most recent by Maneesh
in Programming
|
5 comments |

in Programming
Has anyone encountered an application that involved a pretty complicated pallet? Like 3 one direction 2 rotated 90 degrees than back to three another direction. If so how did you manage to do it in the programming? Any UR Cap out there?
I was able to make the pallet for the customer however they have about 15 different pallet patterns so I was seeing if anyone had encountered this and figured an easier way. Thank you!
I was able to make the pallet for the customer however they have about 15 different pallet patterns so I was seeing if anyone had encountered this and figured an easier way. Thank you!
Best Answers
-
matthewd92 Founding Pro, Tactile Sensor Beta Testers Posts: 1,261 Handy
We worked on a proof of concept about 18 months ago like this. We stored the data in three lists, two lists contained the x and y center point of each of the positions on the pallet and the third list was rotation so that we could rotate the hand into the correct orientation. Doing this we could then use pose_trans from a known start point (the first point in the pallet) and pick each of the elements in sequence.
Since UR will not allow you to have a list of lists [[1,2,3],[4,5,6]...] you could use a list of poses to store all of the pallet information in a single list but then you would have to pull out the data separately such as this<div>BeforeStart</div><div> palletConfig≔[p[0,0,0,0,0,0],p[50,0,0,0,0,0],p[100,0,0,0,0,0],p[25,25,0,0,0,90],p[75,25,0,0,0,90]]</div><div> positionCounter≔0</div><div>Robot Program</div><div> currPalletPosit≔palletConfig[positionCounter]<br></div><div> x≔currPalletPosit[0]/1000</div><div> y≔currPalletPosit[1]/1000</div><div> rx≔d2r(currPalletPosit[5])</div><div> pickPosition≔pose_trans(initialPose,p[x,y,0,0,0,rx])</div><div> overPick≔pose_trans(pickPosition,p[0,0,-50/1000,0,0,0])</div><div> MoveJ</div><div> Waypoint_1</div><div> overPick</div><div> pickPosition</div><div> overPick</div><div> Waypoint_1</div><div> positionCounter≔positionCounter+1</div><div> If positionCounter≥length(palletConfig)</div><div> positionCounter≔0</div>
Here is what that example project looks like running, you can see the 90-degree rotation on the second row of parts. It is picking 3 from the first row, and 2 from the second row.
The code is attached below -
matthewd92 Founding Pro, Tactile Sensor Beta Testers Posts: 1,261 Handy
I forgot to attach the default installation file, it's attached here. If this doesn't work then initialPose is a taught reference point. Go to the installation tab and just teach a reference point and call it initialPose, then everything should be green. The .urp and the default.installation file are included in this zip file -
Maneesh Posts: 2 Recruit
mhowe said:Has anyone encountered an application that involved a pretty complicated pallet? Like 3 one direction 2 rotated 90 degrees than back to three another direction. If so how did you manage to do it in the programming? Any UR Cap out there?
I was able to make the pallet for the customer however they have about 15 different pallet patterns so I was seeing if anyone had encountered this and figured an easier way. Thank you!
Comments
-
mhowe Partner, Wrist Camera URCap 1.3.0 Posts: 41 Handy
Thank you! That answers my question!0 · TwitterFacebook -
mhowe Partner, Wrist Camera URCap 1.3.0 Posts: 41 Handy
@matthewd92 I uploaded the urp file to the simulator and the pickPosition is yellow. Do I have to define the initialPose?0 · TwitterFacebook