element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
3D Printing
  • Technologies
  • More
3D Printing
3D Printing Forum Closed-loop control for low-cost 3D printers
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join 3D Printing to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • Replies 48 replies
  • Subscribers 334 subscribers
  • Views 8085 views
  • Users 0 members are here
  • closed-loop
  • servo-control
  • 3d-printer
Related

Closed-loop control for low-cost 3D printers

morgaine
morgaine over 11 years ago

A challenge given to Ben Heck in March of last year was "Challenge - cheap 3D printer" (design a 3D printer more cheaply), and that thread continues to receive replies to this date.  Unfortunately nobody in that thread actually addressed the matter as a design issue.  Instead, most of the replies (including from Ben) seem to have addressed an entirely different question, how to build the same kind of 3D printer as you can buy today, but for less money.

 

Those are two completely different questions.  It was pointed out by Ben that because of the race to the bottom by a huge number of manufacturers, the current designs can't be made a lot cheaper while still retaining the same speed and accuracy.  That's probably correct with respect to current standard designs, but it says nothing at all about different designs.

 

So, this thread suggests a different design approach that may offer a solution, and it's a pretty natural step to take.

 

A useful observation with which to start is that the accuracy and precision obtainable with today's RepRap-style models stems from the design of their stepper motors and the limitations inherent in screw drives and belts and pulleys and the rigidity of their physical construction.  Because of this, if you retain the existing design model but in the quest for lower cost you compromise on one of these areas, you are very likely to lose the necessary degree of printing accuracy even if you are performing steps at very high resolution, so that's not likely to be a good way forward.  Printing with high precision in the wrong place is not helpful.

 

That observation about accuracy and precision leads us directly to a solution though.  Engineers know full well how to gain high and definable accuracy without each of the components being manufactured to extreme tolerances, and that's by using closed-loop control with negative feedback, the basis of servo-systems.  In a closed-loop system, the only thing that needs to be highly accurate and with known precision is determination of current position, and the heart of that need be nothing more costly than a very accurately printed graticule which can be produced for pennies.  Given the ability to know where the operating head is located very accurately in each relevant axis (not necessarily Cartesian), the only other requirement for maintaining that limit of accuracy is rigidity of coupling between sensors and operating head, ie. the hot end in a 3D printer.  Very importantly, there is no need for rigidity in the motor assemblies --- as long as they're moving the head in the right direction, that's good enough.

 

So, I'll recast the original question differently and tie it to this specific way forward:

 

"How can we design a 3D printer based on closed-loop control to gain high accuracy and overcome low cost construction through use of negative feedback?"

 

It's mostly a matter of examining alternative physical arrangements to find one with good rigidity while also having low suspended mass and being amenable to construction with today's open-loop 3D printers as a stepping stone.  It's worth pointing out that virtually all 2D inkjet printers already use closed-loop control --- if you take one apart you'll find a positional sensor and fine graticule in there somewhere to provide very high accuracy in one dimension at the lowest cost.

 

Once we start thinking about closed-loop control for 3D printers, many possible advantages start to appear:

 

  • As already mentioned, it compensates for low-quality parts, so prices could fall much lower.
  • Closed loop operation compensates for latitude at assembly time as well, also leading to lower costs.
  • Very much higher accuracy than we have today is possible, and that cannot be done open loop.
  • Motors of many different kinds can be used, AC, DC, brushed, brushless, linear, and also steppers.
  • If steppers are used in a closed-loop system, you can overdrive them without worrying about "lost steps" because the steps aren't used for position control anyway, yet you still retain the advantage of high holding torque.
  • Much higher speeds are possible than we have today because of the two-fold advantage of wider motor choice and arbitrarily high acceleration while the control loop seeks to its desired position.
  • Accuracy and precision are more independently controllable in closed-loop systems.  This provides more opportunities for cost reduction through tradeoffs, as well as dynamic optimization in favour of speed, for example on in-fill.  In open-loop printers with stepper motors, the step size places a limit on precision of positional control, but this is very rarely reflected in the accuracy of actual positioning which is primarily determined by physical construction.

 

I'm sure there are many other benefits.

 

The main disadvantage is that this direction requires new thinking, new solutions.  And there's the challenge! image

 

Morgaine.

  • Sign in to reply
  • Cancel

Top Replies

  • morgaine
    morgaine over 11 years ago +3
    The topic above is deliberately open-ended and proposes nothing more than closed-loop control, hopefully to encourage people to think laterally and very widely instead of being shackled by a specific construction…
  • morgaine
    morgaine over 11 years ago in reply to Former Member +2
    I'm talking about making the work head's position be determinable to high levels of accuracy --- the distinction between accuracy and precision is important in this context, because we need to know the…
  • vsluiter
    vsluiter over 11 years ago in reply to morgaine +2
    Hi Morgaine, It's what Nanotec is already selling for industrial use: stepper motors driven as 2-phase brushless DC motors. Very nice features as high torque, high accuracy, low noise....
Parents
  • morgaine
    morgaine over 11 years ago

    The topic above is deliberately open-ended and proposes nothing more than closed-loop control, hopefully to encourage people to think laterally and very widely instead of being shackled by a specific construction.  The range of possibilities is enormously varied, probably infinite.

     

    I will however express my own preferences, which are much narrower and more tightly directed.  Please don't be constrained by the following.

     

    Personally, I think closed-loop 3D printers need to head in the direction of direct drive, avoiding intermediate transmission components as much as possible.  Not only would this eliminate loss of rigidity and the severe problems of slip and play and backlash, but it would also open up the possibility of printing our own motors using pancake designs (effectively linear motors arranged in a circle).

     

    This direction is not in the slightest bit easy, but the elimination of transmission components would make this approach more viable at MEMS scales, which are on the path towards which all engineering is leading:  nanotechnology.  The machinery which builds the machinery which builds the machinery which builds the machinery ... of nanoscale systems is in our grasp right now.  It's going to be an interesting voyage.

     

    Morgaine.

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 11 years ago in reply to morgaine

    so your suggesting that you use servos with encoders? thats dandy and all but its much more complex to set up being that as far as i know (which is verry little i will admit) there arent any programs as side from mach3 that will read encoder data not only that but the reason most people sue steppers today is because they are much cheaper and simpler to use in simple hobbycraft

     

    if you are talking about for the wave of commercial 3d printers? well Great! i definitely see the benefit to useing encoders to determine position it will provide more accurate movement and possibly a better print quality

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago in reply to michaelkellett

    Michael Kellett wrote:

     

    Note that bit about "can be moved without moving a connected part" - if the actuator is pushing the load along and needs to reverse the force (for whatever reason) the actuator must move back by the backlash distance. In any real system this takes time and no amount of feedback and no amount of cleverness of control algorithm can do anything about it (the time is set me purely physical constraints). You can try to minimse the effect of backlash by having a very fast slewing actuator but this often results in instability and increases costs. The problem is that in the backlash or dead zone the actuator is not connected to the load so in the time it takes to reconnect the load is uncontrolled.

     

    That's a very actuator-focused view (instead of being concerned mainly with the work head), and it's also a time-focused view whereas our main concern is that the work head be in the desired position (time is not the key requirement).  It's entirely normal to trade off time (speed of operation) to lower the cost of end products --- this is why low-end 2D printers are slower than higher end ones.

     

    In order to get the work head to a desired position in axis X, the only requirement on the drive train is that this position is reachable in a monotonic traversal using actuator X.  It is not a requirement that the position be reachable by tiny bidirectional increments of the actuator which would litter the workspace with dead zones --- backlash in a given axis is taken up at the start of a movement in one direction in that axis.  The control loop doesn't even need to know that backlash exists in the drive train, because all it's concerned with is reaching its seek position --- backlash just looks like some extra sluggishness in reaching the desired point.  If the backlash is severe enough that it's noticeable at the work head as bumpiness in the extruded plastic at points where there is change of direction, then the control software just needs to reduce the feed rate at the start of changes of direction.  This is no big deal, and it shouldn't be presented as a terminal stumbling block.

     

    I think we may be looking at two very different goals, one (the topic of this thread) which is creating 3D printers at very low cost by closing the loop at the work head to compensate for less than ideal components, and two, making industrial machinery with good open-loop performance, which is extremely interesting in its own right and contributes hugely to the thought process, but is not the end purpose in this thread.

     

    Morgaine.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago in reply to shabaz

    shabaz wrote:

     

    I was thinking of using a cheap micrometer end and some sort of camera measurement since they usually have their markings etched quite clearly.

     

    As camera resolution gets better and better fueled by consumerism, the same sensors give us new capabilities at low cost for machine control as well.  The 1920 horizontal pixels of 1080p is almost 11 bits of resolution horizontally, and with some creativity one could use the 2200 or so diagonal pixels to get a little bit more, but on the whole it's still low resolution if one is thinking of 2D camera sensors as a cheap means of providing position feedback for 2 axes of a 3D printer by observing it from the top.

     

    By Nyquist, a 1920x1080 array of sensors at most allows you to sample 960x540 data points (adjacent pixels 1 and 0 to detect a single period), which at the commonly sought lowest FFF feature resolution of 0.1mm provides only a 96x54mm manufacturing space, and that's assuming that everything else is perfect.  Needless to say, perfection is rarely achieved.  On the whole this approach of using a camera isn't quite there yet, as it doesn't match the product of workspace size times lowest feature resolution of the open loop approach, for now.

     

    It's a pity that those 2 millions pixel sensors aren't available in a nice long line for us. image

     

    Linear camera sensors are available as well of course, but they don't get the volume pricing benefits of 2D arrays.  It's worth keeping an eye on them though, since no-contact position sensing of the work head is a very desirable approach.

     

    Morgaine.

     

    PS.  A 2x2 array of 1080p cameras would put us more or less on a sensing par with the Size*Res of current-day open-loop FFF printers.  The Pi's camera board is just about cheap enough for it, although using 4 x Pi just for sensing would be pretty silly.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • vsluiter
    vsluiter over 11 years ago in reply to morgaine

    It's the difference between kinetics and kinematics.

    If the dead zones are known, then you can easily add that in your control scheme. Not perfectly, but still. Otherwise, adding an accelerometer to the end of your tool head might tell you a lot about the accelerations in the head, and can at least tell you when it starts moving. That, combined in a filter with a stepper motor and a control algorithm might already give a great performance boost.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago in reply to vsluiter

    Victor Sluiter wrote:

     

    Otherwise, adding an accelerometer to the end of your tool head might tell you a lot about the accelerations in the head, and can at least tell you when it starts moving.

     

    Yes!  That's an excellent additional piece of information that the printer firmware can use to do a better job, and at very little cost.  It's probably true to say that just about every kind of data acquired at the work head can be of benefit as feedback.

     

    Morgaine.

     

    PS.  As an example, low cost physical construction can result in very nasty undamped vibration modes, which can be annoying, harmful to effective resolution, and reduce lifetime.  Accelerometers with adequate bandwidth can help you detect and avoid equipment resonances.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • michaelkellett
    michaelkellett over 11 years ago in reply to morgaine

    By ignoring the accumulated experience of machine tool design you are doomed to repeat all the mistakes of the past. 3D toothpaste style printers have to control speed and precise position of the print head in order to manage the 'thread' of semi molten plastic that they are depositing. They absolutely must cope with direction changes while maintaining positional accuracy and they must control speed because it isn't possible to change the extrusion temperature rapidly.. They don't have to move fast but extrusion type 3D printers are already very slow.

    Adding an accelerometer won't help unless you have an actuator which can operate in the backlash zone. If you consider biological systems they use multiple sensors and multiple actuators, very complex control systems (brains) and require a vast (multi million cycles) amounts of training. So far we have had very little success in copying such systems but done quite well in finding alternative methods. For example replacing panel beating with press tools.

     

    Back to the 3D printer - you can't always add a better control system at an existing mechanism and get the performance you want - it is almost always necessary to design the mechanics, sensors and controls as a complete system with due reference to the spec.

     

    With that in mind, what is your performance target for your improved 3D printer ?

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago in reply to michaelkellett

    Michael Kellett wrote:

     

    With that in mind, what is your performance target for your improved 3D printer ?

    Nanometer resolution at terahertz deposition rates, what else? image  The only limits are those we impose on ourselves, or try to impose on others.

     

    Admittedly we're not in that operating area yet, but of one thing I am certain:  saying that we can't do it because 300 years of experience tells us that we can't is totally doomed to failure.  Future 3D printers won't look anything like current ones nor like CNC tools of the past, so quoting past experience is not particularly useful.  In contrast, control theory is extremely robust and applies at all scales, so closed-loop systems is a very good place at which to start.

     

    Michael Kellett writes:

     

    Back to the 3D printer - you can't always add a better control system at an existing mechanism and get the performance you want - it is almost always necessary to design the mechanics, sensors and controls as a complete system with due reference to the spec.

     

    That goes without saying, which is why the starting point here is closed loop control, and everything else is up for grabs.  I expect that there will be some desire to retain some of the components of past designs, but my inclination towards direct drive certainly doesn't fall into that category.  I'm fascinated to see what emerges, but it's going to need some lateral thinking.

     

    Morgaine.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • michaelkellett
    michaelkellett over 11 years ago in reply to morgaine

    Your wilfull misunderstanding of my earlier comments does you no credit.

     

    As you are well aware, I have not, at any time, suggested that improvements are not possible.

     

    "The only limits are those we impose on ourselves, or try to impose on others" - this isn't engineering but nonsense - and as an excuse for ignoring the work of countless other engineers it's arrogant as well.

     

    MK

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago in reply to michaelkellett

    Michael Kellett wrote:

     

    "The only limits are those we impose on ourselves, or try to impose on others" - this isn't engineering but nonsense - and as an excuse for ignoring the work of countless other engineers it's arrogant as well.

     

    That's false as a fact and ridiculous as an accusation.  And your personalizing of the discussion is uncalled for as well.

     

    It's by ignoring past assumed limits that we've put people on the moon instead of still lying huddled and shivering in caves.  The "valued experience" of experts assured us that the earth was flat, and later that it was the centre of the universe --- see how far that got us.  Minds as bright as Einstein's weren't sufficient to bring us quantum mechanics, so other people had to add that to our state of knowledge.  And in the fields of engineering, materials and methods and understanding improve continually.  Everything changes, and limits derived from partial understanding fall away as our understanding improves.  They are entirely self-imposed limits, and to consider them absolute is to not understand how science works.

     

    Arrogance was a pretty negative and irrelevant thing for you to bring up here, but if you're looking for arrogance, consider your own belief that nothing will supersede the experience of the last 300 years or your own knowledge of lessons from CNC --- that's arrogance to the point of comedy.  It's also arrogance to view engineers as high priests preaching unquestionable gospel and wisdom.  There is no such thing --- everything that we know evolves in relevance, and we have so many ad hoc rules of thumb in engineering that treating them as conditional is always advised.

     

    A better approach if one is interested in the future is to embrace the key principle held by scientists and a core M.O. of engineers who don't have have a closed mind --- the scientific method, which in an engineering context equates to "nothing is sacrosanct".  Best engineering practices and the most cherished theories are only as good as the next development that improves upon them.  This is as true in machine tool operation as it is in everything else.  It is expected and unavoidable in domestic 3D printing because we're barely on the first rung of that ladder.

     

    To answer your last point specifically, it's important to take into account existing experience and best practices where relevant, but only where relevant.  Indeed, the whole point of past experience is to identify the conditions that make known difficulties relevant, so that we can bypass them.  If a known limitation is likely to bite us if we head down a certain road, then the answer is not to head down that road.  And that's exactly what this thread is about, since as Ben Heck said (and I agree), there is not much mileage available in the current open-loop designs for making 3D printers significantly cheaper.

     

    I'm not sure why you're trying to naysay future development starting from closed loop design.  You've certainly not presented any argument for why it's not a good way forward, and you haven't bothered to answer previous posts that addressed yours either, so it looks like you're simply begging for a fight as always.

     

    Future development is done in the context of past experience.  Past experience should never be employed as a shackle.

     

    Morgaine.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • shabaz
    shabaz over 11 years ago in reply to morgaine

    Morgaine Dinova wrote:

    As camera resolution gets better and better fueled by consumerism, the same sensors give us new capabilities at low cost for machine control as well.  The 1920 horizontal pixels of 1080p is almost 11 bits of resolution horizontally, and with some creativity one could use the 2200 or so diagonal pixels to get a little bit more, but on the whole it's still low resolution if one is thinking of 2D camera sensors as a cheap means of providing position feedback for 2 axes of a 3D printer by observing it from the top.

     

    (Battling with failed DSL connection today! and VF decided to change the 3G APN settings on their most recent SIMs, which left me confused for hours..).

    I'm no expert on mechanics (although I have used manual milling machines and lathes) nor 3D printers : (

    I was thinking of moire patterns (with clear sheets with lines on them), that I remember would produce large changes in bands of light and dark areas for a small angular movement for example. But I couldn't figure out if this would work for a large area.

    Then I thought it doesn't need that, if there was (say) a rule with (say) markings every 0.1mm, and numbers printed every cm just like a normal rule (or some barcode type pattern instead of a number), and if it was parallel to a linear rail and close to the travelling block, then a camera on the block with 1000x1000 resolution that was focussed on a (say) 2x2cm area could easily precisely measure where it was, and use OCR to know the exact position because at least one number would always be fully visible. This method would need cameras for each axis however, and good focus on a small area. So, maybe too complicated. Maybe a method where only one point is well referenced somehow, and the head always goes to that point and then moves only in one direction from there (and always travels back to the reference point and then moves only in one direction again) may be an alternative way.

    Hard to know without someone with the tools/skills to try it and measure it : (

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago in reply to shabaz

    shabaz wrote:

     

    if there was (say) a rule with (say) markings every 0.1mm, and numbers printed every cm just like a normal rule (or some barcode type pattern instead of a number), and if it was parallel to a linear rail and close to the travelling block, then a camera on the block with 1000x1000 resolution that was focussed on a (say) 2x2cm area could easily precisely measure where it was, and use OCR to know the exact position because at least one number would always be fully visible.

     

    Yep, that sounds entirely viable, and I think it can be done in two different ways.  One way (1a) is to make the absolute position markers for OCR occupy a defined box size and have a known positional relationship to the grid pattern between them and OCR being performed continually during movement, and another way (1b) is to scan for an area within the field of view containing self-syncing blocks of reference pattern (no OCR) and use those for the relative speed and direction reference --- OCR areas can then be ignored during traversal but used for calibration and periodic confirmation, which is less intensive.  I like both ideas.  (There is a downside though, namely low precision since the camera senses a relatively wide field of view.)

     

    Another approach (2a) that I was considering uses spaces in a regular reference grid of dots to carry metadata about absolute position of the reference grid.  This would allow for very high magnification (tiny FoV) so that only a very small area of the pattern needs to be examined at any time during traversal (3x3 dots should be enough), which would result in very high sensitivity and precision and very low processing overhead at the same time.  If any one of the 9 dots is missing it is simply ignored for speed/direction feedback, yet a pattern of such "holes" can be used to carry metadata which builds up during traversal, so no OCR is needed.  I like this idea not only because of its high precision and sensitivity but because the speed and direction processing will be so fast that the feedback will have very low latency and hence will cope with faster movement of the head.

     

    And since the cheap cameras that one would be using would inevitably have colour sensors, there's another very obvious variation to this theme:  use the 3x3 dot array for fast speed and direction processing, but use the colours of the dots to encode absolute position labelling (2b).  This would even increase the already high speed advantages of 2a, since there would be no exception cases of missing dots for it to consider.  But colour can be used for a lot more than that --- imagine encoding two orthogonal graticules using different colours (2c), or using multiple colours to encode reference grids with different resolutions simultaneously (2d).  There's an awful lot of new flexibility obtained once colour is added to the solution space.

     

    I've labelled these approaches in case we want to reference them, but I'm sure there are countless others.  This is a really fun area where the mind can be given free reign to seek alternatives.

     

    Morgaine.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • morgaine
    morgaine over 11 years ago in reply to shabaz

    shabaz wrote:

     

    if there was (say) a rule with (say) markings every 0.1mm, and numbers printed every cm just like a normal rule (or some barcode type pattern instead of a number), and if it was parallel to a linear rail and close to the travelling block, then a camera on the block with 1000x1000 resolution that was focussed on a (say) 2x2cm area could easily precisely measure where it was, and use OCR to know the exact position because at least one number would always be fully visible.

     

    Yep, that sounds entirely viable, and I think it can be done in two different ways.  One way (1a) is to make the absolute position markers for OCR occupy a defined box size and have a known positional relationship to the grid pattern between them and OCR being performed continually during movement, and another way (1b) is to scan for an area within the field of view containing self-syncing blocks of reference pattern (no OCR) and use those for the relative speed and direction reference --- OCR areas can then be ignored during traversal but used for calibration and periodic confirmation, which is less intensive.  I like both ideas.  (There is a downside though, namely low precision since the camera senses a relatively wide field of view.)

     

    Another approach (2a) that I was considering uses spaces in a regular reference grid of dots to carry metadata about absolute position of the reference grid.  This would allow for very high magnification (tiny FoV) so that only a very small area of the pattern needs to be examined at any time during traversal (3x3 dots should be enough), which would result in very high sensitivity and precision and very low processing overhead at the same time.  If any one of the 9 dots is missing it is simply ignored for speed/direction feedback, yet a pattern of such "holes" can be used to carry metadata which builds up during traversal, so no OCR is needed.  I like this idea not only because of its high precision and sensitivity but because the speed and direction processing will be so fast that the feedback will have very low latency and hence will cope with faster movement of the head.

     

    And since the cheap cameras that one would be using would inevitably have colour sensors, there's another very obvious variation to this theme:  use the 3x3 dot array for fast speed and direction processing, but use the colours of the dots to encode absolute position labelling (2b).  This would even increase the already high speed advantages of 2a, since there would be no exception cases of missing dots for it to consider.  But colour can be used for a lot more than that --- imagine encoding two orthogonal graticules using different colours (2c), or using multiple colours to encode reference grids with different resolutions simultaneously (2d).  There's an awful lot of new flexibility obtained once colour is added to the solution space.

     

    I've labelled these approaches in case we want to reference them, but I'm sure there are countless others.  This is a really fun area where the mind can be given free reign to seek alternatives.

     

    Morgaine.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
Children
  • shabaz
    shabaz over 11 years ago in reply to morgaine

    Here is one method someone devised.

    It would be nice to have some open source engine that could be used to detect position from an image, and some software to generate the co-ords of where to print dots on a surface.

    image

    image

     

    image

    • Cancel
    • Vote Up +2 Vote Down
    • Sign in to reply
    • Cancel
  • morgaine
    morgaine over 11 years ago in reply to shabaz

    shabaz wrote:

     

    Here is one method someone devised

     

    ... which the open source community has to explicitly avoid as it's patented, at least until such a time as Google makes it royalty-free.  Fortunately there are a billion and one other encodings available.

     

    It would be nice to have some open source engine that could be used to detect position from an image, and some software to generate the co-ords of where to print dots on a surface.

     

    Yes indeed.  I wouldn't be at all surprised to find that it already exists in one of the many image processing communities, especially in machine vision since pattern recognition is one of its core elements.  I doubt that 3D printing will have to invent much that is new in this particular area, only apply it in creative ways.

     

    Morgaine.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • Former Member
    Former Member over 10 years ago in reply to morgaine

    Hey guys,

     

    Not only am I new to this community, but I'm pretty new to hardware development. However, this thread just grabbed me so I couldn't resist chiming in. Alas, with my limited knowledge, I will still try to contribute in some way. I have a few ideas:

     

    1. if you are contemplating using a camera anyway, why not use a laser too. You can project it to 3 surfaces and judge distance based on the size.

     

    2. I haven't heard anyone mention triangulation. Not that I know entirely what the cost that would be involved, but the algorithms are everywhere and it should be easy to implement. It could be sound or light. I like the idea of an IR pulsing LED on the head, cameras pick it up (cheap ones at that) and triangulate based on latency of the received pulse. Could probably be done many times a second, but might not be sensitive enough.

     

     

    Anyhoo, I'm just learning and would love to hear your comments.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube