Welcome! Log In Create A New Profile

Advanced

Delta robots

Posted by philwaud 
jhdgkss1
Re: Delta robots
February 03, 2010 08:15AM
HI there i have just started building one of these. BUt i am haveing troyuble getting my head around the maths. I have read all the documentation on these things, but i am klooking for a relativly straight forward set of formulas to convert x,y,z positions into angles for the servos..
VDX
Re: Delta robots
February 03, 2010 08:34AM
... it's depending of your setup - think of a straight line between the tip of the servo-axis and the last joint on your tool platform.

Here you can use simply Pythagoras for translation of the last joint along the straight line depending of the angles of the arms.

But for the combination of all joints for the translation of your tool-centerpoint you have a second pythagoras setup combining all three end-joints.

It's a really big formula, but you can separate it in all the single triangles and so simplify until you can program the algorhytmus ...

Viktor
jhdgkss1
Re: Delta robots
February 03, 2010 10:18AM
Hi there thanks. So what your saying is work out each arm seperatly and then merge the results useing good old trig?
VDX
Re: Delta robots
February 03, 2010 11:00AM
... yes, especially for the IK: - move your toolpoint in XYZ, that's the same as moving all end-joints simultanuous, so you'll receive new 'straight lines' from the joints to the servo-tips ... so you have simple trig. again winking smiley

And when your program is running, you can transform any cartesian vektor in the servo-angles by dividing the cartesian path in small pieces and calculate the translation of the corresponding joints.

The real movement isn't a really stright line, but more a sinusoidal wave, so your dividing should be pretty small - i'll suggest dividing in linesegments of 0.5mm to max. 1mm ... wen wanting higher accuracy/straightness maybe below 0.2mm ...

Viktor
Re: Delta robots
February 03, 2010 04:50PM
hi Viktor,

in my experiments i found that a servo's PID control will fail if the force is in the direction of the movement. I guess the hexapod car-simulator is possible with servo's only due to the fact that it is given relatively fast moves; the momentum of the rig+car creates a counter force it has to fight and thus the PID control of the servo works.

With regards,
Reinoud
VDX
Re: Delta robots
February 03, 2010 05:20PM
Hi Reinoud,

... i think it's strongly depending of your setup, preloads and the PID-algorhythmus - i know some comercial servo-driven 3- and 5-axis parallel kinematic CNC-machines and the ABB-deltas are functional in slomo and highspeed too ... in either orinetation.

My tripod has Nema17-steppers and M5 studding with PTFE-nuts and fairly homogene friction, so no overreactions.

The idea for the bigger delta or parallel-scara is using high resolution steppers - i have some 1.2Nm 3Ampere-steppers with 1/256-microstepping drivers (or max. 51200 steps per rev.), or some planetary-geared BergerLahr-steppers with 8.5Nm and 50000 steps per rev.

The steppers don't have the same dynamic as servos, but the BL-steppers can run with 200kHz or around 4 revs per second, so they're smooth and fast enough for this application ...

Viktor

Edited 1 time(s). Last edit at 02/03/2010 05:21PM by VDX.
Temple
Re: Delta robots
February 03, 2010 10:32PM
I've been following this post for a few days and I wonder if you really need the magnetic ball joints. I'm thinking you could use a strong enough string as the bar connecting the arm and platform. On each face of the platform you would have two holes for the string to be tied to which would form an upside down “U” shaped loop. You would then drill a hole through the arm and pass the loop through that. Basically the platform would hang from the three arms and controlling the angle of each arm would position the platform accordingly. I would think that if the weight of the platform is sufficient such an arrangement would work out similarly to the magnetic joint delta while being easier to construct.
Re: Delta robots
February 03, 2010 10:41PM
It's not a bad idea. I had something similar where the string is on a spindle and through the center on a fourth leg is a tension rod to keep up the slack.

The major problem with that design and pretty much every other design is that this robot is going to need to be calibrated. The string will introduce a springy member that will do things like sway, stretch, and so forth.

Also, in some configurations, the arms need to push as well as pull the platform.

Rope would be much more useful for cheap room sized robots, and ones with tension management systems.
Re: Delta robots
February 03, 2010 11:16PM
temple im not sure i understand what your saying, could you make a drawing?
VDX
Re: Delta robots
February 04, 2010 03:04AM
... go through the linked posts and atached images ...

A string-tripod is good for something, but it's instable when you're moving faster or want apply forces.

Better use a 6-wire-setup as in 'joy-string' where you combine two wire-tripods - one from above and one up with preloads for stretching the wires ...

The problem whith strings and other not exactly center-fixed hinges is the complexity of the calculation of the joints and the accuracy of the tool-tip.

For my microtech-setups i need a repeatability around or better 10 microns, so i need exact cardanic hinges, crossed bearings or this magnetic spheres, if i don't allow dust or magnetic scraps going between the two rotating surfaces ...

Viktor

Edited 1 time(s). Last edit at 02/04/2010 04:04PM by VDX.
Re: Delta robots
February 04, 2010 02:50PM
An update to my delta design. I finished the all laser cut design.

The file attached has an offset of .135 mm to compensate kerf.

Are there any preferences for file formats? My laser service required .dxf for example. What are the various kerf compensations you used thus far? I could provide 2-3 standard offsets if required.



Cheers,

Torsten
Attachments:
open | download - DRAWING_PKM_Plywood_Sheet_Thickness_3mm.pdf (277.5 KB)
open | download - DRAWING_PKM_Plywood_Sheet_Thickness_4mm.pdf (177.8 KB)
open | download - DRAWING_PKM_Assy_Drawing.pdf (247.3 KB)
Re: Delta robots
February 04, 2010 03:23PM
I think .dxf is typically the best format for cutting sheet parts. Do you think you could provide a zero-offset .dxf for parts cut on an OMAX waterjet cutter?

Thanks!

Jacob
Re: Delta robots
February 06, 2010 04:13PM
Sure.

Those Drawings are for first generation opto endstops ( uses 3 to get reference for each leg).

Cheers,

Torsten
Attachments:
open | download - 0135mmOffset.zip (449.2 KB)
open | download - Nominal.zip (444.3 KB)
Re: Delta robots
February 08, 2010 06:28AM
Hi Torsten,

i've looked at their website and that tells me the max. cutting size is 60x30 cm. It's an `Epilog Engraver' laser cutter/engraver. The silly thing is that they use `correldraw' (!) (advertised by the producer though) and they send it like a print job. Do you know if it will import the dxf files? or shall i go for the pdf? Could you post the newest pdf files?

I just phoned the lasercutter folks (fablab utrecht) and they have both plywood and perspex there in 3 and 4 mm. What would you recommend? I like the perspex for the looks, but wouldn't it be heavier than triplex/plywood?

As for their `kerf' they say its between 0.1 and 0.2 mm so i think/home the 0.135 will do; might need a little sanding in the worst case :-/

As for the software, you've seen i haven't been that idle this weekend and i now can evaluate the polynomials quite fast, more than fast enough, with the help from yet again some basic clever math. Hopefully I'll be able to run the stepper motor today; first off to the shop for some connector stuff; dont like botching up this time winking smiley

With regards,
Reinoud
Re: Delta robots
February 08, 2010 07:36AM
Hi Reinoud,

yeah i saw that you put up a lot of new stuff into the repository, Did you sleep at all during the weekend winking smiley?

Let me just check for the corel draw and .dxf format, but i supose they want to have the drawings in either .eps or .svg format then. I'll do a new layout to suit the 30*60 cm. For the material i would just go with the one that is the easiest to glue with instant glue and that is cheaper, which should be plywood. It has sufficient material properties for the job.


Regards

Torsten
Re: Delta robots
February 08, 2010 10:19PM
Hello all, I have some updates. I'm not happy with the below work but I think I've found yet another solution so I would post some progress before scrapping everything again.

This is the oldest of the designs, but I'm worried that because its already curved that it won't have and structural support and will kink.
[objects.reprap.org]

I found today IsoTruss structures, which solves this dilemma by using straight rods.

This is my next favorite, which shares a lot with hexagonal torsion boxes, but here I am relying on the strength of the laminated layers to provide a skin. Also, I don't like the price point, but most of the important ideas are here.
[objects.reprap.org]

Here is an outside look.
[objects.reprap.org]

Here is a model of the platforms. As you can see, I'm again using the hex grid to provide support.
[objects.reprap.org]

The hexagons are based off of the hexagon shapes produced by catarina.

And for completeness, the code its a mess.

Once I get a shape and structure I like, I'll release something more complete.

Lawrence Kincheloe
Re: Delta robots
February 19, 2010 03:08PM
can someone link me to the blogs of the people working on this? thanks
Re: Delta robots
February 20, 2010 08:22PM
there isn't one for my work, but I just recently had the urge to scrap everything and just make it out of aluminum tubing. Until I realized how much of a pain it is to weld aluminum. Maybe acrylic? I'm paralyzed by complexity and a lack of machining capability + a tight budget.

I'm just about ready to just release all the ideas out there untested in hopes that someone can build it and validate the design.
Re: Delta robots
February 20, 2010 09:10PM
theres no harm in getting ideas out there!

how bout Torsten or Viktor?

Torstens designs look like they are sound. It looks like he is putting alot of work into it.

Viktor if you have a blog i would be interested in it for way more than any delta robot ideas you have.
Re: Delta robots
February 21, 2010 02:01AM
Viktor if you have a blog i would be interested in it for way more than any delta robot ideas you have.

We'll try to build blogging into the wiki page soon, along with better homepages.

Please feel completely free to create new wiki pages using [[Example]]
[objects.reprap.org]
as a model for each and every idea.

You may want to upload your files there, instead of as forum attachments, if it is more convenient than attaching them to forum posts.

If I remember, I'll create some new pages for each of the projects here, in which case you may become de facto RepRap developers. I hope that is ok. smiling smiley


-Sebastien, RepRap.org library gnome.

Remember, you're all RepRap developers (once you've joined the super-secret developer mailing list), and the wiki, RepRap.org, [reprap.org] is for everyone and everything! grinning smiley
VDX
Re: Delta robots
February 21, 2010 03:22PM
Hi Ryan,

... i'm actually more busy with my 'cartesian' machines, CNC-lathe and laser-works, but maybe the old builder-blogs about my tripod will give you some ideas ... or search the forum with "tripod viktor" and 'all dates' as time-span ...


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org]
Call for the project "garbage-free seas" - [reprap.org]
Re: Delta robots
February 22, 2010 08:45AM
As for Torsten an I who are working on the DeltaRepRap, we don't have a blog yet! Which is a shame really... A small update from us though:

Initially i started building my own prototype and learned a lot from it. However it was not sturdy enough and decided it would be nice to join up with Torsten.

Torsten has created a prototype model complete with optical endstops and is current working on an extruder. Currently i am busy on sourcing a copy of the prototype...

I've been busy on the firmware; it is mostly finished but still needs the calibration routine to be build. It is then save enough to finally drive the prototype for real and we can make a movie of it! Simulations suggest very high speeds possible; though it will most likely be limited in practice by the speed and quality of the extruder.

With regards,
Reinoud
Re: Delta robots
February 25, 2010 10:49PM
how about a cheap laser? with expensive lasers you can just use a mirror, but with this thing im guessing you could strap a 20$ 1w diode and something to focus it (cheap on ebay) and use that for a sintering machine. this would take the speed limits off
VDX
Re: Delta robots
February 26, 2010 03:28AM
... what's cheap, what's expensive?

Look at the LaserCutter-Wiki - and the regarding forum here ... i'm developing a 5Watt-diodelaser-toolhead capable of cutting foils or sintering powders.

I'm estimating the price of single 'naked' pigtailed 5Watt-diodes between 50 and 80 Euros for our reworked salvaged types or 250 to 300 Euros for comercial pigtailed 8Watt- or 9Watt-diodes.

With the pigtailed diodes you'll really receive the stated output-power in the focus - with the 'burning' diodes from ebay where you have to apply beam-shaping for a circular focus you'll get with best conditions only some hundred Milliwatts power in the focus from a 1Watt-Diode ...


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org]
Call for the project "garbage-free seas" - [reprap.org]
Re: Delta robots
March 12, 2010 05:11PM
[letsmakerobots.com]

Quote

Delta robot
By mjcbruin

Copy mouse movement (for now)
Cost to build:
$70
Time to build:
10 hours

* Actuators / output devices: 3 servo's
* Control method: mouse
* CPU: Arduino Decimila
* Operating system: windows XP
* Power source: USB, servo's by arduino
* Programming language: Processing (java), Arduino




Quote

Arduino code

#include

SoftwareServo servo1;
SoftwareServo servo2;
SoftwareServo servo3;
int servo1Pos = 90;
int servo2Pos = 90;
int servo3Pos = 90;
int servo1Afwijking = -2;
int servo2Afwijking = 8;
int servo3Afwijking = 8;

int data = 0;

void setup(){
pinMode(13, OUTPUT);

servo1.attach(10);

servo2.attach(11);

servo3.attach(12);
//pinmode
Serial.begin(115200);
}

void loop(){
if (Serial.available() > 0) {
// read the incoming byte:
data = Serial.read();

if (data == 255){
delay(7);
if (Serial.available() > 0) {
servo1Pos = Serial.read();
}
}

if (data == 254){
delay(7);
if (Serial.available() > 0) {
servo2Pos = Serial.read();
}
}

if (data == 253){
delay(7);
if (Serial.available() > 0) {
servo3Pos = Serial.read();
}
serialTeller = 0;

} else {
serialTeller++;

}
if (serialTeller >1000){
servo1Pos = 90;
servo2Pos = 90;
servo3Pos = 90;
}

if (serialTeller < 2000){
SoftwareServo::refresh();
}
}
if (servo1Pos < 30){
servo1Pos = 30;
}
if (servo2Pos < 30){
servo2Pos = 30;
}
if (servo3Pos < 30){
servo3Pos = 30;
}
if (servo1Pos > 130){
servo1Pos = 130;
}
if (servo2Pos > 130){
servo2Pos = 130;
}
if (servo3Pos > 130){
servo3Pos = 130;
}
servo1.write(servo1Pos-servo1Afwijking);
servo2.write(servo2Pos-servo2Afwijking);
servo3.write(servo3Pos-servo3Afwijking);
}

-------------------------------------------------------------------------

Precessing code:

import processing.serial.*;

Serial myPort; // The serial port:

int servo1 = 0;
int servo2 = 0;
int servo3 = 0;
int serialBegin = 255;


void setup() {
size(600,600);

myPort = new Serial(this, Serial.list()[1], 115200);

frameRate(100);
noCursor();

}

void draw() {

background(255);

triangle(width/2, height, 0, 200, width, 200);

servo1 = 100-int(dist(width/2,0,mouseX,mouseY)/6);
servo2 = 100-int(dist(0,height,mouseX,mouseY)/6);
servo3 = 100-int(dist(width,height,mouseX,mouseY)/6);
strokeWeight(3);
line(300,200,mouseX,mouseY);
line(150,400,mouseX,mouseY);
line(450,400,mouseX,mouseY);

println("X "+mouseX);
println("Y "+mouseY);




if (servo1 < 0){
servo1=0;
}

if (servo2 <0){
servo2=0;
}

if (servo3 <0){
servo3=0;
}

if (mousePressed && (mouseButton == LEFT)) {
servo1 -= 20;
servo2 -= 20;
servo3 -= 20;
}
if (mousePressed && (mouseButton == RIGHT)) {
servo1 += 40;
servo2 += 40;
servo3 += 40;
}


//println("servo1 "+servo1);
//println("servo2 "+servo2);
//println("servo3 "+servo3);
//Serial.write
myPort.write(255);
//delay(10);
myPort.write(servo1+30);
//delay(10);
myPort.write(254);
//delay(10);
myPort.write(servo2+30);
//delay(10);
myPort.write(253);
//delay(10);
myPort.write(servo3+30);
//delay(10);



}

Edited 2 time(s). Last edit at 03/12/2010 05:13PM by JohnnyCooper.
Re: Delta robots
March 14, 2010 11:33AM
Hi!

Very interesting topic.. btw, here are some math and C-code to calculate angles to coordinates and vice versa:
[forums.trossenrobotics.com]

Moving the bed with delta robot simplifies other design a lot. Fixed extruder.. hmm.. why not several extruders...

edit: sorry.. looks like this link is already here..

Edited 1 time(s). Last edit at 03/14/2010 11:45AM by nite69.
Re: Delta robots
March 14, 2010 02:42PM
How about a mendel repstrap delta robot capable of just printing the Mendel plastic parts? The printing area would not need to be as large as standard mendel.

So basicly you only would need to build a Mendel frame, buy 3 servos and an extruder. Fasten the extruder to the top of the Mendel frame, fasten the delta robot with bed to the bottom of the frame.

Then extrude the plastic parts with delta robot. After you get the pieces, build a real Mendel.. This could be a solution for people trying to hunt the initial plastic parts.
Re: Delta robots
March 15, 2010 10:23PM
I think your missing the point that with a delta robot there is no need for a Mendel.
Re: Delta robots
March 16, 2010 02:34AM
Quote
Lawrence
I think your missing the point that with a delta robot there is no need for a Mendel.

Well, hopefully so :-). I'm just a bit suspicious about the accuracy, speed etc. facts. But certainly there is some size which can be printed accurately at some speed. If it is even near the mendel size, then we do not need actual mendel. However it is not done yet, so we do not know. If it turns out to be possible, that's fantastic. A fraction of costs of current mendel..

Reinoud has anyway made some promising calculations, they point out that there are good chances it is possible.

I think I'll start building my own :-) I can get a few 5kg digital kyosho servos, would they suffice? They have plastic gears thought. The model name is Kyosho 302-DS? Other possibility would be for example SpringRC's 15kg analog servo SM-4315M. Analog, but more torque and metal gears.
No one seems to specify the smallest step for the servos, is it depending purely on the driving electonics accuracy (pulse lenght?).

Edit: Or, are the servos out of question and stepper motors the only possible way?

Edited 1 time(s). Last edit at 03/16/2010 02:40AM by nite69.
Re: Delta robots
March 16, 2010 06:29AM
I've got a deltabot prototype here with servo's and, as mentioned here before, the thing i ran into is the lack of control of the PID circuits in the servo's. I am not saying its impossible to do it with servo's only a lot more difficult and less fast and accurate compared to using stepper motors.

The calculations posted here are surely inaccurate and can at most be a linear approximation in a small range; its at best quadratic.

I've got a working Arduino controller now for the Delta robot only not tested out on the real thing so i am a bit hesitant to release it as yet in the current state; consider it an alpha version. In one or two weeks time i really hope to have all the parts in and we can start building and testing!

In theory the current controller software can at least get 45 to 90 cm/sec (!) but in real-life its speed will be capped by the extrusion speed.

With regards,
Reinoud
Sorry, only registered users may post in this forum.

Click here to login