project development

.

Fab // Deltabot: creating a platform for fab-able open source delta robots.

Fab // Seedbombs: Regreening urban wastelands by printing seedbombs.

.

assignment:

Complete your final project, tracking your progress: what tasks have been completed, and what tasks remain? what has worked? what hasn't? what questions need to be resolved? what will happen when? what have you learned? documentation during development, demand- vs supply-side time management, spiral development

.

prerequisite:

I was mainly inspired by my last years trip to Detroit where the demolition of the urban artefacts is ongoing. Houses shatter and disappear, the nature takes back the land.

w19_01urbangreen.jpg

.

guerilla gardening:

" .. is the act of gardening on land that the gardeners do not have the legal rights to utilize, such as an abandoned site, an area that is not being cared for, or private property. It encompasses a diverse range of people and motivations, ranging from gardeners who spill over their legal boundaries to gardeners with political influences who seek to provoke change by using guerrilla gardening as a form of protest or direct action. This practice has implications for land rights and land reform; aiming to promote re-consideration of land ownership in order to assign a new purpose or reclaim land that is perceived to be in neglect or misused." (Wikipedia)

w19_03gg.jpg

.

proposal:

How could this process of 'naturalization' be enhanced by robotics?
References as found on Google: piccolo cnc, electrowaste, seedbombs, clayprinting:

w19_02proposal.jpg

.

el poblenou:

There are many empty lots and I would like to organize group bombings and try to regreen the area. See here a typical vacant lot near Marina Metro Station, just a few blocks from the Fab Lab Barcelona:

w19_04PobleNou02

Interestingly enough there are some initiatives in PobleNou trying to plant fruits and vegetables, similar to the Urban Gardening movement in Berlin I found two spots just around the corner. The perfect location for my machine:

w19_05greenhubs.jpg

.

material reclaim:

Since there is sooooo much electronic waste or second hand stuff that is both beautiful and still working I had my eyes especially open to look for electric waste or devices simply not any more in use. The location of the FabLab Barcelona is just inside the same building as the IaaC (Institute for Advanced Architecture of Catalunya) and as the guys were cleaning out some remaining parts of previous years' works of the Physical Computing class I had a closer look. The interactive facade elements were ready to be thrown away but of course I had to slaughter them out first just using some tools:

w19_06secondhand01

Obviously some students have been faster than me but I could still obtain four servos. I need to check if they work but this is could be a first step for my final apparatus. I checked online and the price for those servos all together is way beyond 100 Euros:

w19_07secondhand02

Eventually also ALL the acrylic I used for my project were recycled from a shop around the corner that does billboards and similar sized products!

.

project overview:

Delta what?
A delta robot is a parallel robot that is designed for precise and fast movements of light payloads, generally used for pick-and-place/pack operations. The deltabot is composed of three two-segment arms/legs mounted in 120 degree intervalls. The arms/legs use parallelograms to restrict the motion of the "wrist", the end effector. Wrist and elbow use ball magnets in order to keep the distance but not an certain angle, that is the magic of the kinematics and it's beautiful to watch how to position of the effector is actually constantly being negotiated between the three servos.

What will it do?
My intention is to create a platform for Deltabots that are entirely fab-able (apart from servos and ball magnets probably). My very first ideology was also to use second hand parts but since I still change the design, I might run out of time but I am sure it is possible! I aim for an exchangeable end effector and choose a Moineau extruder that will squeeze a mix of soil, clay and seeds so that the machine is eventually printing seed bombs, interactively. The interface will be done via Processing Software and use serial communication to drive the servos and motors. I am aiming for a scale bigger than desktop 3D printers and I can see also purpose in academia for an interactive machine like this.

Who's done what beforehand?
There are quite some Deltabots out there, 3d-printer or not, three of four legged, servo and stepper motor based. I decided to go for a servo based one because it doesn’t require those massive pillars on each corner. Three legs will do their job. I based the design upon many references I found around the internet and I will provide all the sources within the code or design files! The basic idea of establishing this platform is also that it’s hard to loose track in between the different designs and softwares. My machine will run on free software and work smoothly - hopefully.

Parts and system explanation:

w16_02partsmachine.jpg

w16_03partsextruder.jpg

w16_04wiring.jpg

Materials, components, costs, processes and tasks:

w19_10tabella.jpg

.

interfacing the first mock-up:

I was looking for a template code or something that would help me approach the idea of moving the deltabot in space and Arduino and Processing are my prefered tool in this case. I need to make and interface in Processing that will send out serial values that can be read in Arduino IDE to be translated into Servo positions. Also I gave a first go to using Firmata but I think I will stick to the serial communication due to it's easier use and more reliable connection. Basically I will use the computer mouse as an input to drive the machine and I reckon that building a delta robot is more than anything else about the correct interfacing. Here my intention of workflow:

w15_00schematic.jpg

First tests: A simple interface based upon Processing Examples Sketches (Mouse 1D and Serial Write). Still running with Arduino UNO, the mouse movement along an axis translates into servo movements:

I put together a simple first version of a delta robot to understand the right movements. It still runs on the same sketch and basically just moving along the z axis due to the parallel movement:

.

implementing kinematics and GUI:

Kinematics of a Deltabot are pretty complex and not easy to understand if your background is not necessarily mathematics or related fields:

w15_03kinematics.jpg

I found some articles that were dealing with the mathematical calculations of a deltabot and would work in Arduino/Processing eventually using serial communication. Matt Greensmith used the delta bot kinematic calculations from the Trossen Robotics Forum and added a controlP5 interface that works just perfectly! Just insert your dimensions, servo reaches, USB ports etc and you are ready to go! See here the "family tree" to understand where things were coming from:

w15_04codetree.jpg

Seeing here the slightly adapted GUI by Matt Greensmith to controll my first machine! It is initially based upon a sketch from Principia Labs that I can't locate anymore in the internet but it uses controlP5 library to have a graphical user interface (GUI) in Processing and calculating in the background the calculations from the Trossen Robotics Forum. At the end, Processing sends out x,y,z Values via serialWrite and Arduino is listening via serialRead and with the servo.h library translating to Servo positions. It works!

.

full scale prototype:

I spent quite some time in 3D modelling to understand servo freedoms and limitations, negotiating with the size of the overall machine:

w19_20threedprocess.jpg

I finished modelling one arm / leg of the delta robot and printed some iterations of my designs.

w19_21threedprocess.jpg

Since 3dprinting was too slow for my use I decided to go with lasercutting and I was happy to find some acrylic boards in the shop next door, trashed - so for free! I went to lasercut them on the MultiCAM 2000 machine that we have in FabLabBCN/IaaC.

w19_40lasercut01.jpg

I had to redrill some of the holes because I didnt measure perfectly. This is the most central connection to the turning point so better make sure it fits super tight, anyloose connections in here will multiply over the machine. This parts will be the biceps / upper arm of the machine:

w19_41lasercut02.jpg

I went to the shop to get some Aluminium rods of 6mm and 8mm diameter. I tried to cut them off with a saw first but they melted together (actually interesting..) so I went to cut them one by one to pieces of roughly 49.5cm (a rod being 100cm).

w19_50lowerarms.jpg

I measured, taped and sanded to reach the same length with all of them. Since I was already thinking of using ball magnets I nedded something metallic in the arms and using a screw isn't a bad idea at all: you can fix it in the rod and still fix the real length by adjusting the length it stands out (I did the glueing it with epoxy resin) It is metallic so attracted by the magnets and the allen key head allows for pretty smooth movement on the surface of the ballmagnet (lubricant may be interesting). I took some alcohol to clean off the rods and used some tape to make it look nicer. See here the last steps of finishing the 6mm pieces that will be come the lower arms / forearms:

w19_51lowerarms.jpg

The 8mm aluminium rod I cut into 40mm long pieces. This length plus the part until the center point of the ball joint should be equivalent to the distance between the center points of the ballmagnets on the end effector below (forming a parallelogram). I filleted the edges, lasercut some small rings to keep distance when grabbing through the hole of the biceps (mid point being the axis of movement) and again used some tape.

w19_60joints01.jpg

I went back to my old home Milan, Italy last weekend and visited the amazing guys at WeMake FabLab. Since I contacted them beforehand they were happy to let me print my final pieces on their machines. They came out perfectly and were the last parts I needed in order to fit the ball magnets in place. I wish there was more real exchange between the Fab Lab Network. Grazie ragazzi, the pieces are perfect! #FabLabErasmus

w19_61wemake.jpg

I finished one site before putting it into place and then fix the other side. The acrylic rings could be even tighter or fixed with a zip tie to stay in touch, also here some lubricant would not be bad to lower the friction between the elements. I took the ballmagnets, put a screw on it to get the polarity right (also ballmagnets have a + and -)! I used epoxy glue to fix the ballmagnets with the right orientation into the 3d printed parts and so far it works very nicely and gets all the degree of freedoms it should have. Passing it through the two layers of lasercut acrylic of the biceps and the second side was fixed too (again, epoxy to make sure):

w19_62joints02.jpg

My endeffector: again using ballmagnets and fixing them with epoxy resin to the lasercut acrylic. The metal parts are not necessary but I am sure I had a clue at a certain point what I was doing.. Again, check out the orientation of the magnets to apply equal forces of magnetism. Once the resin is hardened the part is happy to be tested. The middle hole is meant to attach different kinds of machines, anything you can think of basically:

w19_70effector.jpg

Now that all the parts are the first time joint together and the ballmagnets seem to be stable enough and giving a lot of freedom it was time for some passive aerobics. Nothing broke! (Yes, machine is upside down):

The servos I am using are asking for 4.8 to 6V and around 800mA each. I went to a local hardware store and found cute mini power supply with 5V and 5A. Turning the potentiometer I could trim it up to 5.91V as measured with the multimeter. I also did the cable myself. For the output it is important to use V+ and V- and not the ground as we would if having a ground on the plug itself too:

w19_75powersupply.jpg

.

preliminary setup:

So time to get the machine in working position! I found a nice aluminium frame with wooden joints from a previous exhibition and fixed the machine in it with a threaded rod, some pieces of wood, fishing line to prevent (a little bit) pitch/roll/yaw. For the first tests I was again rigging up with Arduino UNO which gets its power supply via USB from the computer and the servos being connected to the power supply directly (almost 6V and max 5A):

w19_85assembly01.jpg

Thanks to Martin who filmed the first movements of the full scale prototype! I was excited and happy that it went smooth:

See here my "final" graphical user interface, it changes some details when turned on and off and connects all the values within the script. You can either change specific positions in x,y,z (top right, just click it and type it in) and the script will calculate necessary servo movements. Second option: drive x,y via a 2D screen + z slider or third, controll each servo on its own. It almost runs in "real-time", having a low delay but certainly still some lags:

.

electronics:

I made a Barduino board! Instead of using the FTDI cable we also made the modified version for the FTDI chip that has been modified by our friend and colleague Yani in the FabLab Barcelona. Connecting both boards to your computer, opening Arduino Software. Check your USB port and it's ready to be programmed as a Arduino Pro or Pro Mini with ATmega328 (5V and 16Mhz). The pins are done via through-hole pins on the bottom:

w15_07barduinoready.jpg

Since my Barduino wouldn't run even if I tried fixing it with Ferdi several times I was happy enough to be able to use the one from my friend Milena. I programmed it via Arduino IDE as a Arduino Pro / Pro Mini. And now - finally - the GUI can communicate to Barduino! No Servos are connected yet but PIN13, one of the LED on the board is turning on and off when power for the servos are enabled (part of the script):

.

final (re-)assembly:

See here the final wiring with the power supply and the servos (connections on the other side):

w15_08barduinohookup.jpg

First tests with the new setup (Barduino + GUI). It works!

.

extra machine - the extruder:

Initially I thought of having a container and extruder in one piece but it would require a lot of torque. Ferdi should me some references and I took a paste extruder straight away from Thingiverse and made it part of my system:

w19_91extruder02.jpg

The material container was prepared in the composites week and after breaking a Dremel to cut off leftovers I obtained a very strong and rigid box. I connected both parts with some screws and put a rubber band inbetween to make it a little bit more watertight:

w19_89container.jpg

The 3d printed chocolate / paste extruder and nozzle. I took a NEMA engine from the FabLab that was laying around, perfect. The machine works with a spirale inside another spiral, forwarding material continously. I connected the extruder to the effector plate and I wish the centriod of this part was lower since it makes the machine shake quite a bit. Also I aborted the 3d print of the nozzle to get a bigger diameter for soil / clay with seeds inside:

w19_91extruder02.jpg

The next step is to connect the extruder with the material container and subsequentelly hang the container. The tube should be rigid in its shape but also flexible to allow for movement. Special attention has to be given to the connections since they should be watertight in the best case:

w19_92extruder03.jpg

.

calibration:

Now that everything is cooked together I needed to calibrate the whole setup, basically measuring machine sizes, lenghts of arms and radii, angles of servos and fixing some connections tighter:

Since the whole thing is pretty big I left it parked next to its bigger brother for the time of calibration:

w19_94pano.jpg

Some close-ups of the machine after I tried to tighten the frame a bit:

w19_95detail.jpg

Ongoing and never-ending calibration:

w19_97calibration.jpg

Behind the pictures, the machine hanging in my room in the studio I am living at the moment (Studio P52, Barcelona):

w19_98backstage.jpg

.

final setup:

w20_186.jpg

w20_149.jpg

GUI (the machine was hanging at this point to take pictures of it, thus shaky but you get the point):

more in week 20 - final project! thanks for reading.

.

prospective:

w19_995urbangreen.jpg

w19_997greenChina.jpg








.

feedback sessions:

w19_999feedback.jpg

w17_15review.jpg

w19_9999feedback.jpg

"That's a huge project [..] an ambitious one. I am happy to hear your confidence", Neil Gershenfeld.

.

files:

Files wlzr Fab Academy '15 // w19

.

bookmarks / links:

MIT Center for Bits and Atoms - classes Wikipedia - Guerilla Gardening Piccolo - the tiny CNC-bot The Ecologist - E-waste in Ghana: where death is the price of living another day Guerilla Gardening - Seed bombs WASProject - clay printing Wikipedia - El Poblenou Wikipedia - Delta robot Marginally Clever - Delta Robot Kinematics Trossen Robotics - Delta Robot Kinematics Sheet Delta robot dimension visualisation sketch Robottini - Delta robot with Arduino Team Principia - Arduino-Processing Serial Communication Team Principia - Arduino Serial Servo Control Matt Greensmith - Delta robot GUI in (Processing and Arduino) WeMake Milan - Fab Lab Milano Thingiverse: ttsalo Moineau stepper extruder Studio P52 , Barcelona

.

global pre-presentations:

Fabacademy 2015 05.20B Review15: Final projects Pt 1 Fabacademy 2015 05.27B Review16: Final projects Pt 2 Fabacademy 2015 06.03B Review17: Final projects Pt 3 Fabacademy 2015 06.03D Review18: Final projects Pt 4

-

..beam me up!