Wildcard week

Assignment

source and ideas

Options

This week, we had the opportunity to learn about various topics in the Barcelona Lab:

Light-painting using 6-axis robotic arms

This week, we were able to use one of the ABB IRB-120 robots that BcnFabLab has in its workshops.

Controlling a 6 Axis Robotic arm

The main difference when understanding how to program a 6-axis machine is that we have to start thinking beyond points in a 3D space, and we need to start thinking about points in an N-dimensions space, where each point has 3 coordinates for the actual contact point, and the rest of the coordinates indicate additional information (eg. the tip of the tool is touching (1,1,2), but where is it the arm approaching it from? from right above it? from its side, etc..)

Up until now, we’ve had to think about 2D and 3D points in space in laser cutting and 3D printing/CNC machining respectively, but with robotic arms that have more degrees of freedom, we can approach the same point in space from various “directions”.

So we can start thinking about “2D planes in space” instead of “points in space”. This gives us:

Programming the robot’s movements

For this assignment, I used Rhino + Grasshopper, as well as a custom-made plugin used for this very purpose.

Understanding the grasshopper script that does most of the magic

Click on the image to see the original-size image, without compression, so you can read the text.

From left to right, and from top to bottom:

Simulating the robot’s movement

Before running code generated through algorithms, and without human supervision, it’s worth inspecting the output to make sure there are no surprises.

The simulated movement can be seen in the video below.

You will appreciate how the arm moves exactly as we programmed it:

Controlling actuators and end-effectors through the robot’s control panel

Controlling the robot arm to move in the way we want, with precision, covers most (but not all) of the requirements we had.

We also needed a way to control the LED to turn it on at the right moment, but we don’t want to get our hands next to the robotic arm as it’s moving around, so we needed a way to trigger the LED to turn on, from a safe distance.

The Flex-pendant

The robot’s flex-pendant allows us to:

This last feature is what we used to control the blinking LED.

By connecting the board to the actuator linked to “special function #2” button, which appears in the picture below like 2 horizontal lines, at the top right-hand side of the panel, we were able to turn on the light at the right moment, and not before.

Final result

the blooper or “Artistic take”

Here’s one of the failed attempts.

The reason why this didn’t work out are that the text was too long, and our phone cameras did not have a BULB option to capture images for longer than 30 seconds.

This would not be a problem if we had a DSLR and an ND filter that could reduce our light by a few stops: the more stops the ND filter reduces, the longer the text could be, and the darker the background would have been.

Without this filter, we were only able to use a pair of polarised sunglasses. Not ideal, but better than nothing.

The video recording

Unfortunately, while we were so busy with @EduardoChamorro, calibrating the camera settings on our phones to capture the long exposure image, I completely forgot to record the actual robot moving and drawing.

Assets