New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

grbl for polar drawing robots? #108

Closed
mattvenn opened this Issue Jul 7, 2012 · 12 comments

Comments

Projects
None yet
7 participants
@mattvenn

mattvenn commented Jul 7, 2012

Hi all,

I've been working on some polar drawing robots for a while (http://www.mattvenn.net/2011/09/19/polargraph-energy-monitoring/) for fun/interesting/beautiful realtime energy monitoring. We're looking at posting the energy (or any other environmental data) to the internet and then running the drawing algorithms on a server before sending back drawing commands to the robot.

I'm presently working on some dedicated hardware for controlling the robots (a bit like grblshield but with an atmega32u4 on board). I've put all the direction and step pins on one port for grbl. Instead of using a z axis we use a servo to lift the pen.

So, I wanted to know if anyone is interested in helping us out with adding a "polar translation layer" or similar to grbl? The fundamental difference is that we use gravity to pull the pen down, then move the pen around by winding string on bobbins.

I'll admit I haven't looked at the code yet, I'm interested to see if people think this is possible or would like to help out. I could trade a controller board...

Other people also use these types of robots for drawing lovely pics (see http://www.polargraph.co.uk/)

Cheers,
Matt

@simen

This comment has been minimized.

Show comment
Hide comment
@simen

simen Jul 7, 2012

Member

Beautiful! I think this is quite doable. Grbl is written in a clean, layered way so changing the frontend is just a matter of replacing stepper.c with your own motion driver. The rest of the pipeline can be left more or less as it stands. I did this a while ago in https://github.com/simen/twister where I modified grbl to drive a scara-arm instead of a cartesian bot. It was not very hard work.

Member

simen commented Jul 7, 2012

Beautiful! I think this is quite doable. Grbl is written in a clean, layered way so changing the frontend is just a matter of replacing stepper.c with your own motion driver. The rest of the pipeline can be left more or less as it stands. I did this a while ago in https://github.com/simen/twister where I modified grbl to drive a scara-arm instead of a cartesian bot. It was not very hard work.

@mattvenn

This comment has been minimized.

Show comment
Hide comment
@mattvenn

mattvenn Jul 8, 2012

great stuff! Thanks a lot Simen. I'll have a look at the code and see if I can get something working.
By the way, I'm looking for people to design algorithms that convert energy data to pictures. So far I've got 2 working and 1 concept.
1/- draw a grid of circles (like in the video)
2/- draw a line whose length is proportional to energy in a random direction (makes for a scribbly drawing!) http://www.flickr.com/photos/matthewvenn/7397176726/
3/- (concept) draw a generative tree on the horizion. draw leaves above the horizon when energy budget is met, below when not met. Think that would work well with kids.

So if you know anyone who would like to have a bash, please put them in contact with me!

And by the way, thanks a lot for grbl - it looks great and it seems to have been really taken up by the cnc community!
Matt

mattvenn commented Jul 8, 2012

great stuff! Thanks a lot Simen. I'll have a look at the code and see if I can get something working.
By the way, I'm looking for people to design algorithms that convert energy data to pictures. So far I've got 2 working and 1 concept.
1/- draw a grid of circles (like in the video)
2/- draw a line whose length is proportional to energy in a random direction (makes for a scribbly drawing!) http://www.flickr.com/photos/matthewvenn/7397176726/
3/- (concept) draw a generative tree on the horizion. draw leaves above the horizon when energy budget is met, below when not met. Think that would work well with kids.

So if you know anyone who would like to have a bash, please put them in contact with me!

And by the way, thanks a lot for grbl - it looks great and it seems to have been really taken up by the cnc community!
Matt

@ununbium

This comment has been minimized.

Show comment
Hide comment
@ununbium

ununbium Jul 21, 2012

Hi Matt,

I'm working on something that sounds like what you want - it's mostly complete. My program is a stand alone Java application that acts as a simple pass-through X-Y to A-B converter (where A and B are two "v-plotter" or "polar" motors spindles). The idea behind it is that it takes G-code with x-y co-ordinates and converts it to g-code with A-B co-ordinates - data other than x-y information passes through un-changed. At the moment it is also sending that (converted) data straight to a "v-plotter" running an unmodified grbl 0.7d - it seems to work quite well. The acceleration functionality is very good for drawing. I only have it drawing rectangles at the moment, but only because I haven't quite finished the g-code parser.

If you are interested, please get in touch. It will go up on git hub at some point. It's still a bit scrappy from a technology point of view but in the coming weeks I'm hoping to get it nice and polished (adding Maven and possibly a GUI).

I've been thinking about ways to render images with unbroken lines (without the lift servo on the third axis) and I have a few ideas but no code for this yet.

Thanks,
Andrew

ununbium commented Jul 21, 2012

Hi Matt,

I'm working on something that sounds like what you want - it's mostly complete. My program is a stand alone Java application that acts as a simple pass-through X-Y to A-B converter (where A and B are two "v-plotter" or "polar" motors spindles). The idea behind it is that it takes G-code with x-y co-ordinates and converts it to g-code with A-B co-ordinates - data other than x-y information passes through un-changed. At the moment it is also sending that (converted) data straight to a "v-plotter" running an unmodified grbl 0.7d - it seems to work quite well. The acceleration functionality is very good for drawing. I only have it drawing rectangles at the moment, but only because I haven't quite finished the g-code parser.

If you are interested, please get in touch. It will go up on git hub at some point. It's still a bit scrappy from a technology point of view but in the coming weeks I'm hoping to get it nice and polished (adding Maven and possibly a GUI).

I've been thinking about ways to render images with unbroken lines (without the lift servo on the third axis) and I have a few ideas but no code for this yet.

Thanks,
Andrew

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Jul 23, 2012

Andrew,
thanks for this. I'll definitely take a look when I get started with it (in the next few weeks when my new pcbs arrive!). However, I need it all to happen in hardware. I want the polargraph to be an internet connected printer with no local computers (running java) necessary...
Cheers,
matt

ghost commented Jul 23, 2012

Andrew,
thanks for this. I'll definitely take a look when I get started with it (in the next few weeks when my new pcbs arrive!). However, I need it all to happen in hardware. I want the polargraph to be an internet connected printer with no local computers (running java) necessary...
Cheers,
matt

@ununbium

This comment has been minimized.

Show comment
Hide comment
@ununbium

ununbium Jul 23, 2012

Hi Matt,

No worries - if nothing else it might be worth a look at the maths (I'm no mathematician and this was by far the hardest bit for me).

I like the idea of running it off the network. Would you cache all the data locally or would it take commands in a serial manner over the connection?

The program I've been working on takes in gcode and can just spit gcode back out into a file (the X,Y, I and J values will be different of course). On a desktop machine somewhere you could start out with XY formatted gcode and convert it to polargraph gcode, then use whatever transmission method you want to get it over the network to your device. As a bonus it limits the padding on fields, which has sometimes caused grbl some problems,

Thanks,
Andrew

ununbium commented Jul 23, 2012

Hi Matt,

No worries - if nothing else it might be worth a look at the maths (I'm no mathematician and this was by far the hardest bit for me).

I like the idea of running it off the network. Would you cache all the data locally or would it take commands in a serial manner over the connection?

The program I've been working on takes in gcode and can just spit gcode back out into a file (the X,Y, I and J values will be different of course). On a desktop machine somewhere you could start out with XY formatted gcode and convert it to polargraph gcode, then use whatever transmission method you want to get it over the network to your device. As a bonus it limits the padding on fields, which has sometimes caused grbl some problems,

Thanks,
Andrew

@ghost

This comment has been minimized.

Show comment
Hide comment
@ghost

ghost Jul 25, 2012

I think a mixture of both. The memory in the micro isn't that large so we'll probably have a small buffer and a signal to request the next batch of codes. This could well be a problem for the system - I'll have to prototype it soon.

So are you using vanilla grbl and processing the gcode so that the machine thinks its moving to a certain co-ord by moving the motors, but actually the point moves somewhere else because you have the machine set up as a v plotter? I'm confused now!

Matt

ghost commented Jul 25, 2012

I think a mixture of both. The memory in the micro isn't that large so we'll probably have a small buffer and a signal to request the next batch of codes. This could well be a problem for the system - I'll have to prototype it soon.

So are you using vanilla grbl and processing the gcode so that the machine thinks its moving to a certain co-ord by moving the motors, but actually the point moves somewhere else because you have the machine set up as a v plotter? I'm confused now!

Matt

@chamnit chamnit closed this Oct 12, 2012

@Chojins

This comment has been minimized.

Show comment
Hide comment
@Chojins

Chojins Apr 24, 2013

Hi Matt,
Did you ever get anywhere with running grbl on a polargraph type machine? I am interested in this also to get the vector drawing process sped up on the machine
Jacob

Chojins commented Apr 24, 2013

Hi Matt,
Did you ever get anywhere with running grbl on a polargraph type machine? I am interested in this also to get the vector drawing process sped up on the machine
Jacob

@mattvenn

This comment has been minimized.

Show comment
Hide comment
@mattvenn

mattvenn Apr 25, 2013

No, I didn't.

On 24 April 2013 03:26, Chojins notifications@github.com wrote:

Hi Matt,
Did you ever get anywhere with running grbl on a polargraph type machine?
I am interested in this also to get the vector drawing process sped up on
the machine
Jacob


Reply to this email directly or view it on GitHubhttps://github.com//issues/108#issuecomment-16904846
.

Matthew Venn
mattvenn.net

mattvenn commented Apr 25, 2013

No, I didn't.

On 24 April 2013 03:26, Chojins notifications@github.com wrote:

Hi Matt,
Did you ever get anywhere with running grbl on a polargraph type machine?
I am interested in this also to get the vector drawing process sped up on
the machine
Jacob


Reply to this email directly or view it on GitHubhttps://github.com//issues/108#issuecomment-16904846
.

Matthew Venn
mattvenn.net

@brennanag

This comment has been minimized.

Show comment
Hide comment
@brennanag

brennanag Jun 18, 2016

I'm curious if this got anywhere? I'm trying to use a grbl to drive a v-plotter type machine.

brennanag commented Jun 18, 2016

I'm curious if this got anywhere? I'm trying to use a grbl to drive a v-plotter type machine.

@mattvenn

This comment has been minimized.

Show comment
Hide comment
@mattvenn

mattvenn Jun 18, 2016

I'm using linuxcnc now: https://github.com/mattvenn/linuxcnc-bipod/

On 18 June 2016 at 03:29, brennanag notifications@github.com wrote:

I'm curious if this got anywhere? I'm trying to use a grbl to drive a
v-plotter type machine.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#108 (comment), or mute
the thread
https://github.com/notifications/unsubscribe/AAmtbNFTLCR6iNnfnvTQhZJbw3scg0sLks5qM0nhgaJpZM4ADw17
.

Matthew Venn
web mattvenn.net twitter @matthewvenn https://twitter.com/matthewvenn

mattvenn commented Jun 18, 2016

I'm using linuxcnc now: https://github.com/mattvenn/linuxcnc-bipod/

On 18 June 2016 at 03:29, brennanag notifications@github.com wrote:

I'm curious if this got anywhere? I'm trying to use a grbl to drive a
v-plotter type machine.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#108 (comment), or mute
the thread
https://github.com/notifications/unsubscribe/AAmtbNFTLCR6iNnfnvTQhZJbw3scg0sLks5qM0nhgaJpZM4ADw17
.

Matthew Venn
web mattvenn.net twitter @matthewvenn https://twitter.com/matthewvenn

@mattvenn

This comment has been minimized.

Show comment
Hide comment
@mattvenn

mattvenn Jun 19, 2016

I still think it's worth doing, especially if it could get ported to the
esp8266 or something with cheap wifi. I've always ended up pairing the
micro with a pi to get it on the internet. That's why I ended up with
linuxcnc (on beaglebone).
Matt

On 18 June 2016 at 20:35, brennanag notifications@github.com wrote:

Thank you for responding I'm trying to wrap my head around the maths to
convert the two types of instruction sets.
On Sat, Jun 18, 2016 at 11:13 AM matt venn notifications@github.com
wrote:

I'm using linuxcnc now: https://github.com/mattvenn/linuxcnc-bipod/

On 18 June 2016 at 03:29, brennanag notifications@github.com wrote:

I'm curious if this got anywhere? I'm trying to use a grbl to drive a
v-plotter type machine.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#108 (comment), or
mute
the thread
<

https://github.com/notifications/unsubscribe/AAmtbNFTLCR6iNnfnvTQhZJbw3scg0sLks5qM0nhgaJpZM4ADw17

.

Matthew Venn
web mattvenn.net twitter @matthewvenn https://twitter.com/matthewvenn


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#108 (comment), or
mute
the thread
<
https://github.com/notifications/unsubscribe/AASHk50NN3mz_3EFMk585BY3uNJjGjsEks5qNDVegaJpZM4ADw17

.

Brennan Aitken-Gantz
Portland State University :: AIAS President
541-612-8553
brennan.ag@gmail.com


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#108 (comment), or mute
the thread
https://github.com/notifications/unsubscribe/AAmtbJB6jSGO4ncQyG4c8R8gEsmY0TUUks5qNDptgaJpZM4ADw17
.

Matthew Venn
web mattvenn.net twitter @matthewvenn https://twitter.com/matthewvenn

mattvenn commented Jun 19, 2016

I still think it's worth doing, especially if it could get ported to the
esp8266 or something with cheap wifi. I've always ended up pairing the
micro with a pi to get it on the internet. That's why I ended up with
linuxcnc (on beaglebone).
Matt

On 18 June 2016 at 20:35, brennanag notifications@github.com wrote:

Thank you for responding I'm trying to wrap my head around the maths to
convert the two types of instruction sets.
On Sat, Jun 18, 2016 at 11:13 AM matt venn notifications@github.com
wrote:

I'm using linuxcnc now: https://github.com/mattvenn/linuxcnc-bipod/

On 18 June 2016 at 03:29, brennanag notifications@github.com wrote:

I'm curious if this got anywhere? I'm trying to use a grbl to drive a
v-plotter type machine.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#108 (comment), or
mute
the thread
<

https://github.com/notifications/unsubscribe/AAmtbNFTLCR6iNnfnvTQhZJbw3scg0sLks5qM0nhgaJpZM4ADw17

.

Matthew Venn
web mattvenn.net twitter @matthewvenn https://twitter.com/matthewvenn


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#108 (comment), or
mute
the thread
<
https://github.com/notifications/unsubscribe/AASHk50NN3mz_3EFMk585BY3uNJjGjsEks5qNDVegaJpZM4ADw17

.

Brennan Aitken-Gantz
Portland State University :: AIAS President
541-612-8553
brennan.ag@gmail.com


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#108 (comment), or mute
the thread
https://github.com/notifications/unsubscribe/AAmtbJB6jSGO4ncQyG4c8R8gEsmY0TUUks5qNDptgaJpZM4ADw17
.

Matthew Venn
web mattvenn.net twitter @matthewvenn https://twitter.com/matthewvenn

@Chicodarave

This comment has been minimized.

Show comment
Hide comment
@Chicodarave

Chicodarave May 12, 2018

Trying this in 2018... Cant find a solution :(

Chicodarave commented May 12, 2018

Trying this in 2018... Cant find a solution :(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment