Welcome! Log In Create A New Profile

Advanced

Circular motion based delta robot.

Posted by MZ250 
Circular motion based delta robot.
June 18, 2015 03:00PM
Hello guys!
I've built a circular motion based delta robot for my university project, but Marlin's firmware is created for linear based motion. Does anyone have experience on how to modify the code to work with circular motion? I'm not very good programmer and almost lost hope trying to change everything to better.
Thanks.
Re: Circular motion based delta robot.
June 18, 2015 08:51PM
Hi MZ250,

Have you tried it? Is it the G2 and G3 g-codes you are talking about?
This is very similar to a question I asked only a few days ago. I had some g-code files that included arcs (i.e. circular movements - the G2 and G3 codes) and didn't think Marlin would recognise them (based on the reprap wiki article on g-codes). After a tip from george4657 I just tried it, and my Prusa moved in (what appeared to be) a nice circular motion.

Eric
Re: Circular motion based delta robot.
June 19, 2015 02:10AM
Marlin has a configuration.h part, where it says this:
//===========================================================================
//============================= DELTA Printer ===============================
//===========================================================================
// For a Delta printer replace the configuration files with the files in the
// example_configurations/delta directory.
//

Did you try it?
-Olaf
Re: Circular motion based delta robot.
June 19, 2015 06:13AM
I mean, I build one that has upper arms controlled directly by stepper (FlexPicker.gif). Calculations for these are different comparing to ones that are sliding on three towers.
Attachments:
open | download - deltamaker.jpg (204.4 KB)
open | download - FlexPicker.gif (59.4 KB)
Re: Circular motion based delta robot.
June 19, 2015 06:14AM
Yes I've copied these configurations, but these are slightly different from what I really need. I don't build towers.
Re: Circular motion based delta robot.
June 19, 2015 06:46AM
The only difference, I can imagine are the moves in z-direction.
The Delta calculates only the z-steps in a linear way, your flexpicker needs a trigonometric calculation.
Do you have encoders on the stepper-shafts?

Once you found the Marlin-subroutine for the delta-z calc. you can edit it to match your needs ( with the help of the geniusses here ) grinning smiley
-Olaf

Edited 1 time(s). Last edit at 06/19/2015 06:47AM by o_lampe.
Re: Circular motion based delta robot.
June 19, 2015 07:34AM
Marlin on Arduino Mega already struggles to do the delta calculations fast enough on a linear delta machine. If you add trig calculations into the mix, I think you will run out of performance, unless there is some mathematical shortcut that I haven't thought of. Even if you use static tables of trig functions and interpolate between points, I think you will need 32-bit electronics.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Circular motion based delta robot.
June 19, 2015 10:55AM
Here we go again smiling smiley

A Z-move is usually an exclusive event where the other axis are standing put. So the Mega has all the time in the world for doing trigonomic calculations. It is fast enough to do nonlinear X/Y and E calculations at the same time, why not Z? In fact it is only one cos(arm-angle) per stepper more, than for regular deltas.

What is a linear delta?
-Olaf
Re: Circular motion based delta robot.
June 19, 2015 12:01PM
Quote
o_lampe
A Z-move is usually an exclusive event where the other axis are standing put. So the Mega has all the time in the world for doing trigonomic calculations. It is fast enough to do nonlinear X/Y and E calculations at the same time, why not Z? In fact it is only one cos(arm-angle) per stepper more, than for regular deltas.

What is a linear delta?
-Olaf

It's not just Z moves that are different, it's all moves. A linear delta (i.e. the ones we are used to, with carriages moving up and down the towers) requires the calculation of a square root to solve for each of the tower positions. There are efficient algorithms for calculating integer square roots, that require about 4 operations per bit in the result. It's still a bit slow on an 8-bit processor, because we generally need to use at least 32-bit integers in parts of these calculations; but it isn't too bad.

A "circular" delta requires a similar calculation, followed by the calculation of an arcsine. My concern is that the arcsine calculation is likely to be much slower than the square root calculation. I am not aware of any algorithms for calculating arcsine that are comparable with the speed of calculating integer square roots. It's hard enough to find trig implementations that use fixed-point maths instead of floating point.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Re: Circular motion based delta robot.
August 05, 2015 01:51AM
I built something similar and works with Arduino due Ramps + 1.4 + DRV8825 and Marlin.

I think that helps link [sites.google.com]
or
[reprap.org]

Have a photo you've built you?

Edited 1 time(s). Last edit at 08/05/2015 01:55AM by altnelu.
Sorry, only registered users may post in this forum.

Click here to login