15. Wildcard week

The task for the week is to apply digital process for a assign not included in the FAB ACADEMY schedule, here at the FAB we received a small course for different topics, where i choosed the Robotic arms handle using RoboDK, because it always seemed amazing how much you can do with a robotic arm and its applications in the industry, and the fact that you can easily control it with an application (it can also be controlled with python but it is more complex, than for a week of the FAB).

Other topics covered in group

In addition to robotic arms, our group delved into other exciting topics this week. We explored Google’s Teachable Machine, which allowed us to create machine learning models without extensive coding knowledge. This tool proved invaluable for quick and easy development of AI models for various applications. We also learned about thermoforming, an other design applications, from the gorup assigment i choosed we learnt the shortcuts in RoboDK and manual operation of the UR5e just to see the limitations.

Our robot UR5e

The UR5e collaborative robot (cobot) is incredibly useful due to its ability to perform a wide range of tasks, including assembly, machine tending, and material handling. Its flexibility allows it to be easily reprogrammed and redeployed, making it ideal for automating repetitive tasks and enhancing productivity. This versatility means businesses can quickly adapt the UR5e to new processes, reducing downtime and increasing efficiency in various applications. For more details, visit the Universal Robots UR5e page or check the UR5e datasheet.

  • Datasheet resume

    Category Specification
    Payload and Reach Payload: 5 kg (11 lbs)
    Reach: 850 mm (33.5 in)
    I/O and Communication Digital Inputs/Outputs: 16 each
    Analog Inputs/Outputs: 2 each
    Communication Protocols: Modbus TCP, PROFINET, Ethernet/IP, USB 2.0
    Power Consumption Average Power Consumption: 200 Watts (comparable to a gaming console), making it energy efficient
    Safety Features Built-in force/torque sensor and collision detection for safe collaboration with human workers without the need for safety barriers
    Axes and Rotation Six axes with 360° rotation
    Maximum Speed: 180°/s

RoboDK

RoboDK simplifies inverse kinematics and enhances the control of universal robot arms (URs) through its intuitive graphical interface, eliminating the need for complex manual calculations and coding. Supporting a wide range of industrial robots, including URs, RoboDK offers a comprehensive library of models for seamless integration across different brands. Its advanced simulation capabilities enable users to test and refine robot programs virtually, reducing errors and optimizing performance before deployment. Integrated CAD/CAM features further enhance accuracy by facilitating direct import of 3D models.

Inverse kinematics

If you are wondering how the handling of a 6-axis robot was so simplified, it is thanks to the software that is responsible for calculating the necessary angles of each axis to reach the required distance, using the method of the Jacobian determinant of a matrix was what began the programming of these robots and thanks to it we can easily drag and position our robot.


unfortunately in the laboratory where the UR computers are located there are some unlicensed so I did my program and at the end I saw that it did not worked for me, at least it helped me to see the restrictions and compare.

  • Features of the robot: it does not allow you to access features of the bot like defining point of origin or more important speed as my goal for this week was to draw something in oil since it has its joke and it seemed interesting to see how it was done, without license my program wanted to do the drawing in 30 seconds something that was impossible, in addition to that by making short and precise movements so abrupt once I put the program in the machine it auto blocks by the backward.

  • Follow line and utility tools: basically all the manufacturing options that require you to have previously imported a 3d model, when I switched to a computer with these options unlocked I thought that I would use them do my practice but it is more thought to paint with spray and paint hose, example: when doing the tracking we assume that we have an O in 3D, the movement it does is on the sides of the O and not by the top contour.

  • Size of the program, when you open the program you realize that it is actually doing a python program, so when you do not have the license this limits it to 50 lines of that program equivalent to about 50 moves per point, so if you use curves it is practically useless.

  • Learning to use the program

    The first thing to do is to go to the web page and select your UR model, in my case the UR5e, then you will see you UR appear with cartesian arrows using +,- you make them bigger or smaller, as well with the movement squares, to make them visible press the alt key, if you double click in the UR can move the axes independently scrolling or on the right side a setup and movement menu will open, here you can change the name or more important position the object between another as reference.

    In the file tab you can import .stl files for reference or to add them as a tool in your UR tip,

Creating the Program

  • The first step es to import the 3D files and your tool, then we have two important tools the coordinate system as our .stl loose thei origin we need to add one and fix the object in it, then the target tool is used to move the UR.

    We have 3 movements: the linear that will take the easiest movement for the robot to arrive to the target selected, the direct linear helpfull when you need the arm to go straight anf the circular-curve, this one works really strange as what it does is to draw a curve between three points, starter-medium-final, the issue is that sometimes the robot want to take an easy path of movement an reposition before starting the movement, finally make a set of movements to build the program.

    My program

    As briefly mentioned, the way we program the SDK is by using one of the possible movements to get from target one to target 2. The targets are positions of the robot. In my case, to generate the drawing, I used a reference .stl and moved the tip of the tool to different locations. To fill the brush with oil, I generated the rotary movement and copied it several times within the program, approximately every 5 movements.

    In the video you can see the program at what would be a speed of x10, unfortunately I could not record the application of the paint because even if I lowered the speed of the robot it continued to block from time to time due to issues with circular movements, mainly in such a small space.

  • Learning to use the controller

    Now we turn on the controller release the lock button and assemble the tool with the brush, in the controller we have 3 important pages, the I/O page if you need the program to send signals that, you can specify in the program page, the move page where you can freely move the UR while pressing that button, send the UR to home positition or help with arrows, finally in the program page you can open your program (sometimes at the moment when passing the program from the USB fails) so is better if you create a new script in the controller and the open your "script" there and save it.

Results

  • I think that the biggest problem at the time of making the program was the handling of the curves since these withers come out to the wrong side or are larger than expected, it is supposed that for that are the utility tools, but as you mention before they are more for spray and would do a cooker in the place where the UR is, at the moment that painted the oil for its consistency poured more in some tracks than in others in addition to that it is very relevant the position of the brush so that it does not thinner or thicker the line, in general I believe that with more practice it would be very interesting to use UR to draw funds more than anything or with an ultra fine brush details although to reach that level of precision programming by python would be the best option.

    The next zip includes the two .stl files to use as reference, you can open them in many 3D viewing programs, two robodk only files that you cannot open anywhere robodk that includes the workstation pintada.rdk and the tool Plumon_Base.tool and finally the program as .script.txt you can open it and see the python syntaxis: The files.

Final Comments

I explored the world of robotic arms using RoboDK with the UR5e robot. The UR5e's versatility in automating tasks like assembly and material handling, along with its easy reprogrammable nature, makes it an invaluable tool in many applications. Despite encountering challenges with unlicensed software, which limited features and complicated programming, I gained insight into the robot's capabilities and the complexities of handling curves and precise movements. This experience has shown me the potential of the UR5e for creative applications, while also highlighting the need for more practice and possibly advanced programming with Python for finer control.