Vase Painting With Robotic Arm

by mina_s in Workshop > 3D Design

6371 Views, 34 Favorites, 0 Comments

Vase Painting With Robotic Arm

IMG_4456.jpg
F84GTAVLVZ9DCEZ.jpg
FP5WRDNLVZ9DCHC.jpg
FWJ3057LVZ9DCG5.jpg

This project was created as a course assignment at the California State University, Long Beach; taught by Behnaz Farahi: DESN 490: Generative AI and Robotics.

In this project, our objective was to use a robot to create art.

Team Members: Mina Seif, Paulo Cuellar

Supplies

rhino icon.png
grasshopper logo.png
robodk icon.png
brush.jpg
Screen Shot 2024-05-03 at 11.58.19 AM.png
ur10e.jpeg
vase.jpg

Rhinoceros, Grasshopper Plugin, RoboDK, a brush, brush holder, a UR10e Robotic Arm, and a vase

Downloads

Testing the Robotic Arm

blob grasshopper screenshot.png
thumbnail_shape thingy.png
blob.jpg
IMG_4423.jpg
Robot Drawing Contour Map

We started with an image that we ran through an algorithm in Grasshopper to create a contour map that was flattened into curves. Those curves on Rhino were exported to RoboDK where we used a pen and the UR10e robot to draw on a piece of paper.

This step is optional but highly recommended. There are a lot of things to figure out when using these programs together and then running a huge robotic arm. Test out what you can and work out the bugs before you transition to drawing/painting on more than one plane.

Brush Painting

heart 2.jpg
IMG_4460.jpg
Robot Drawing Heart in Box
kaizen.jpg
kaizen 2.jpg
IMG_4459.jpg
Robot Calligraphy

Next, we wanted to experiment with varying line widths so we switched from the pen to the calligraphy brush. You can edit the attached brushholder.stl to make sure it fits your brush/pen/tool. In Rhino, we drew curves with varying heights so that when the robot followed the curves, it would lift up and press down creating different line widths.

Figuring out how much to lift a curve was a trying process and our brush often smashed into the table. We recommend using a brush you don't care too much about.

Because painting with a brush requires ink, we also had to add a "dip" function to our program, so that the robot would dip the brush in ink before drawing a new curve. To do this, we created two targets in RoboDK. One above the ink tray, and one in it. Then in our program, we copy and pasted the dip movement in between each curve.

Don't forget to check your movement speeds so it's not throwing ink or paint around.

P.S. We are aware that our calligraphy does not have the correct traditional strokes, we're sorry.

Painting on 3 Dimensions

vase drawing.jpg
RoboDK Screen Capture Drawing Curve

Now that we were comfortable painting on 2 Dimensions, we moved on to a 3D object: our vase.

In Rhino, we modeled a surface that reflected our vase and drew a curve on that surface. We transported our vase and curve into RoboDK and then worked on how to make the robot draw sideways rather than straight up and down.

Making sure the robot could draw the curve without hitting itself, the vase, or the table took A LOT of troubleshooting.

We found that changing the position and angle of the drawing was the best option. After many hours, we found a simulation in which the robot would draw without any collisions, but when we ran it on the actual robot, it stopped itself saying it was a "protective stop."

3D Paint Tests

paper vase 2.jpg
paper vase4.jpg
paper vase 6.jpg
paper vase8.jpg
Robot Painting on Vase Test 1
Robot Painting on Vase Test 2
Robot Painting on Vase Test 3

So instead of going any further down that path, we decided to make our curve shorter (about 90 degrees rather than 270) and put the vase on a spinning display platform.

After we simulated it on the robot and found no issues, we wrapped our vase in paper and tested out different speeds and quantity of drawing loops (where we would have the robot repeat the program of drawing our curve).

Final Painting

vase1.jpg
vase2.jpg
vase3.jpg
vase4.jpg

When we were satisfied with our paper painting, we ran our program without paper and achieved our final product!

Downloads

Narrative

Robotic Arm Vase Painting

We used a simple curve path for the robot to follow in our project, but this has the potential to create art that could not be done by human hands. Robotic arms are used in many high precision and time-effective industries, to be able to create something beautiful with them is a step towards collaboration with emerging technology rather than rejection.