tobbelobb / hangprinter

A RepRap hanging from the ceiling
GNU General Public License v2.0
465 stars 97 forks source link

Wire length feedback - Optical encoder? #21

Closed DegenerateGroundState closed 4 years ago

DegenerateGroundState commented 6 years ago

I watched the two build streams on the hangprinter on Thomas Sanladerer's channel and I remember hearing you have some repeatability issues when spooling/unspooling the wires, I'd go back and make sure but they're 10 hours put together! Have you considered using wires with a pattern on them combined with an optical encoder to close the loop on exactly how much you have on/off the spools?

davidelang commented 6 years ago

where would you get such wires? and how fine could the pattern be?

I guess we could use it to check our assumptions about how many steps per cm if we had cm wide stripes on the wires.

but where can we buy thing (currently we are using fishing line)

DegenerateGroundState commented 6 years ago

There are braided fishing lines made from multiple colors, and patterned fishing lines to hide the lines from fish (search camo fishing line). Best bet would probably be to go to a local tackle shop and ask, the workers at those I have been to have been very knowledgeable. The trick would be finding one with a pattern that doesn't vary too much. Also fishing line is tapered, perhaps you could use an optical encoder that senses width? Depends on how consistent the taper is and how expensive a suitable encoder would be.

You could also use a rotary encoder that is spun by the line through friction, though that would introduce slip again, but probably less than on a large spool.

DegenerateGroundState commented 6 years ago

Neither solution would help with line stretch though, I guess you'd need an entirely separate encoder for that like a draw wire encoder, or could you measure how much the lines will stretch with a given load, derive a formula, and sense the current load on the line via a load cell?

davidelang commented 6 years ago

If there is enough of a pattern (even if it is uneven), you can use something like an optical mouse to track the movement.

an optical mouse is a camera with logic that watches for the picture to change.

with something as narrow as the lines, you may end up needing to put some sort of lens in front of the mouse camera to magnify it's width.

As for line stretch/sag, rather than modeling it, measure it :-)

tobbelobb commented 6 years ago

If you have bookmarks into the Tom's-streams, feel free to add them here: http://reprap.org/wiki/Links_Into_Hangprinter_v3_Build_Video

Line flex is repeatable, so the flex issue and the repeatability issue are separate. Two Bachelor's students here in Gothenburg (on of them called fredrudolf on RepRap forums) are working on both modelling flex and measuring mover position using computer vision. I derived some equations to help them with the flex model here: http://vitana.se/opr3d/tbear/2018.html#hangprinter_project_54 I do look forward to see them publishing, but we'll probably have to wait until June.

I guess that the repeatability issue I mentioned was related to how lines order themselves when rolled onto the spools. My approach so far has been to just increase spool radii and use thin lines. It works ok, but nothing more. When moving back and forth > 2 m, I typically see errors of 1-2 mm that are random, that I can't compensate with the current spools and doubled lines.

Note that there are two lines on each abc spool. They pick up different amounts of buildup error, so we can't solve the repeatability problem I'm talking about without also changing the spools for something more complex. (I call this problem "the tilt problem" on my blog, because it caused my v2 Hangprinter to tilt near top of tall prints.)

Adding encoders along the lines is something I've talked about a lot of times but never actually tested in hardware. I have a friend here in Gothenburg who has tested something similar, and he recommends a separate encoder roller with a pinching wheel to keep the line in place and to avoid slipping.

tobbelobb commented 6 years ago

I think both load cells and optical encoders along the lines are good ideas. I did try to use force sensing resistors (FSRs) once: https://vitana.se/opr3d/tbear/2017.html#hangprinter_project_48 I recommend load cells over FSRs.

davidelang commented 6 years ago

the mechanism used on older (non-optical) mice sounds like the right answer for this. a small diameter roller with a wheel on it for the encoder.

joozn commented 6 years ago

Roll-up System.pdf spool_ring.pdf

joozn commented 6 years ago

wire clamping.pdf system.pdf some more fast schematics

tobbelobb commented 6 years ago

Thanks joozn! I think the two roll system is also a good idea. Will you test it out in hardware? A weaver emailed me and suggested a similar concept. It is apparently how they do it on weaving machines. Some discussion in the fb group: https://www.facebook.com/torbjorn.ludvigsen/posts/319760511867448:15

joozn commented 6 years ago

Yes, right now I am waiting for my new Prusa i3 mk3 to arrive, then I can start trying things out and prototyping. I will also build my first hangprinter then, might need some help.