Discussion
Dispensing application with Robotiq Wrist Camera |
253 views
|
Answered | |
/ Most recent by bcastets
in Applications
|
12 comments |


This concept is inspired of 2 related DoF articles:
- https://dof.robotiq.com/discussion/2296/camera-easy-to-edit-relative-trajectory-with-robotiq-wrist-camera#latest
- https://dof.robotiq.com/discussion/2196/robotiq-wirst-camera-relative-motion-with-fixed-orientation#latest
This program structure solves 3 common problems face with dispensing application:
1-The position of the profile on which the robot have to do dispensing may vary. The robot have to be capable to do dispensing whatever the position of the profile.
We will use the Robotiq Wrist Camera to solve this problem.
2-The dispensing trajectory have to be easy to edit. It may happen that after you complete your first program you need to adjust some waypoints. It is necessary to have an easy way to do those adjustments.
3-The dispensing tool attached to the robot often comes with a lot of surrounding equipment like pipes supplying dispensing material. This equipment impose some motion restriction to the robot. To avoid any problem, the robot should as much as possible keep the same tool orientation.
The keep the same tool orientation, the z orientation of the TCP is adjusted to compensate the z rotation of the waypoints.
This TCP adjustment is done just before the relative trajectory.
https://share.robotiq.com/public/7afd115666ac
The Z axis of the dispensing tool should be vertical during dispensing with the axis point down.
There are 2 set nodes where you need to set your TCP.
Here below are the settings I use for this concept.
Un your case, you have to save the TCP you calculated in a variable. Keep this variable as a reference.
Let say that you name this variable: myTCP
Replace the Set command by the following script command:
I should work.
Thank you. What about rTrajectoryRef feature point? I am using your easy to edit relative programming article (https://dof.robotiq.com/discussion/2296/camera-easy-to-edit-relative-trajectory-with-robotiq-wrist-camera#latest)
and when I initially set rTrajectoryRef under the master setup folder, I am setting it with a certain TCP, but if my TCP is changing, don't I also need to change this reference point feature to reflect the changing TCP?
Thanks!
What is important is that you use the same TCP when you initially set rTrajectoryRef under the master setup folder and when you set relative waypoints.
After that if the TCP change that should not be an issue.
Why to you need to change your TCP on each program execution ?
In my first program I directly edit the Z rotation of the TCP but this works only if the Z axis of the TCP is same as the flange Z axis. I heard about cases where the dispensing tool Z axis is not identical to flange Z axis.
Something could also be improved with the toolORef waypoint which is use as a tool orientation reference. This point is place in a moveJ in the before start program but there is not need to move the robot at this point in the before start. It make more sense to use a feature point instead.
I attach the updated version of the program to this post.
In my first program I directly edit the Z rotation of the TCP but this works only if the Z axis of the TCP is same as the flange Z axis. I heard about cases where the dispensing tool Z axis is not identical to flange Z axis.
Something could also be improved with the toolORef waypoint which is use as a tool orientation reference. This point is place in a moveJ in the before start program but there is not need to move the robot at this point in the before start. It make more sense to use a feature point instead.
https://share.robotiq.com/public/443231fe8047
I'm trying something similar as your project. I'm using a UR10e and a Wrist camera to first detect the object, extract object_location and apply x,y,z data to a Point Feature. After the camera detects the object, the Point Feature coordinates do not get updated. I made sure the specified feature inside MoveL is the right one, and that if the object is detected, the object_location data is assigned to the Point Feature variable.
However, if I move the object that I'm detecting for a few milimeters in either direction, the robot TCP does not move to the updated one, but still to the previously defined one inside the Installation-Features-Point Feature (Teach this Point). I've looked through your attached code but coulnd't find any conceptual differences.
I open a support ticket for you. Our support team may be able to troubleshot your program.
I would also recommand to check wrist camera elearning video:
https://elearning.robotiq.com/course/view.php?id=5§ion=5