UR3: Rivet Bot 0.9

Concept

Tool Gauge was supplying a customer with a fiberglass filled part with 10 nutplates installed. That amounted to 20 riveting operations in total. Initially, the customer planned to use 4 1/8” pop-rivets and 16 3/32” pop-rivets. To our team that was undesireable:

  • Two different sized rivets means changing rivet guns or swapping out anvils mid-cycle
  • Different fasteners increases the odds of mixing the hardware up mid-cycle We proposed a redesign using all 1/8” rivets. The customer opted for all 3/32”.

3/32” rivets are small. They are the smallest commercially available rivets I can find in distribution, smaller than any metric rivets in case you were curious. This would not be a problem except few manufacturers supply tools capable of using 3/32” rivets.

After some investigation, we were hoping to integrate a Gesipa GAV8000 into the end of arm tool for a UR3. The discussions for this are still ongoing as of time of writing so there is still the possibility this will be used at a later date. A GAV8000 would allow our team to install all rivets in nearly 60 seconds, a significant time in that parts could be assembled in cycle with the injection molding machine. Any longer would require assembly at a later date, increasing the overhead costs and lead-time.

Implementation

Tool Gauge has access to a few fun toys, some of which were unnecessary for this project specifically, but are underutilized and lessons here could enable ambitious designs at a later date.

CAD

A Milwaukee M12 Rivet Tool was being used to manually install rivets. It was scanned using a Faro Laser Line Scanner and uploaded into CATIA.

Using the point cloud as a reference, an end of arm tool was sketched and 3D printed within a day. The tool plus a force-torque sensor was then mounted to a UR3-CB3 , with an estimated end of arm tool mass right at the threshold of 3kg for that model.

Demo

After a week of troubleshooting, assembling, and reprinting some components in need of reinforcement, a reliable process was established:

Noteworthy Conclusions/Lessons for Future Projects

There are a few takeaways that stand out in this integration. Some on the hardware/CAD side and others on the robotic programming side.

  • Hardware:
    • 3D Scanning is a practical means to integrate hand-tools into robotic tooling
    • Thoughtful 3D printing can enable tools that are both rigid and light
  • Programming:
    • Waypoints and Variables can have similar functions but are not interchangeable:
      • Waypoints are easily defined manually. They can be taught through manual manipulation of the robot
      • Variables can be manipulated by the software/programmer, but can only be defined in code. Variables cannot be defined through manual manipulation
      • It kind of goes without saying (if you have programming experience), but variables can be integers, floats, and strings in addition to vectors.
    • The universal robot ecosystem does not treat waypoints as variables. There is a workaround:
      1. Start the program with a list of waypoints hidden in an if: False statement.
        • The if false loop will never be run within the program
        • This allows you to register and save waypoints without ever sending the robot to those points
        • This saves the waypoints at the top of the program, making them easier to find for any engineers who need to follow up on your work
      2. Assign the waypoints to similarly named variables
        • I recommend assigning these as initialized variables (it’s a program option)
        • These variables can be manipulated and changed programmatically
    • Mild in-process learning is possible: every cycle the machine compares the actual location it riveted to the programmed location and adjusts
    • Some basic knowledge of the UR Scripting Language can enable shorter, more flexible code. The riveting program is a simple 20 part loop comprised of a few switch-case statements, an if statement to transition from top to front, and some tool point offsets using transforms.