Agreed. I easily can see this error occurring from even just the aluminum. Had run into tolerancing issues with a mechanical assembly at work due to temperature variation. Can be quite the pain.
Yeah, working in mikro-/nanopositioning industry, and had to measure with interferometers big motion systems. This looks pretty similar to the periodical drift I've seen in the clean room due to the cycling air conditioning (only smaller scale as the temperature variation was below 1°C). Aluminium ~25 um/(m*°C) => so a length of 1m and a variation of +-2°C in temperature could result in a 100um peak-peak position variation. Depends also on where was the zero position, as the frame stretches the belt and the distance between the belt teeth scales up/down. So basically the gear ratio between stepper and timing belt is now temperature dependent (even if it's a low CTE version with lower value than aluminum's). Also, without the A/C the position will probably drift over night instead of cycling.
Also, theoretically: By recording the position and the temperature variation in two setups, a "temperature calibration" could be done for the index (effective stepper-to-belt-stepsize as a function s0+s1*(T-25°C)). Setup 1: Camera at bottom/left Setup 2: Camera at top/right Other requirement: good reproducable zero position for initialization The rest is just a bit of linear math and integrating an temperature sensor onto the aluminium frame (as that temperature should be in sync with the change) ;-)
If the vision system can simultaneously give you information on both the picked part's location and the pick head location (via a secondary mark), then you could use that to maintain a correction calibration. Alternately, you could image the picker head every N parts (on the way back to pick the next part) and use that. The nice thing about such an active calibration system is that it can compensate for other error sources (and throw out a headsup alert if the correction amount exceeds a certain amount).
The secondary mark could be on all the feeders. So one can do different type of calibrations, on-the-fly (just passing any feeder), small (first and last feeder), medium (50%) and full.
might be daft, but try hooking the index to a UPS that can smooth out the power. i've found when i have my AC on, sometimes my printer will change its motor sounds, as soon as i placed it on the UPS it basically vanished
My thoughts... This is a DIY pick and place machine made from printed parts and off the shelf belts and pulleys, being tested in a room near a window with portable AC unit in close proximity and you're concerned over a tolerance of 100 microns !!!! - Really, this is incredible, and shows just how good a product this is. Whilst you may want to get that tighter, or eliminate that small variance, I think you should be proud at what you have achieved. Granted, commercial machines costing £12K may have a +/- 20 micron tolerance, but at the end of the day, if your machine can pic and place the smallest component you are going to use accurately and repeatedly then I can't see the issue. - I think this project is amazing
Oh man, I got really excited to see the test results after you monitored the temperature! Also the movement of the gantry for this test reminded me of the DVD player screen saver. I used to sit there and watch waiting for the logo to hit the corner exactly and bounce back perfectly. So satisfying
Log the temperature together with the X,Y data and overlay them on the graph. Maybe try to compensate the X,Y data with your temperature data first in software(graph) and later in firmware. I would suspect that the long aluminium extrusion cause more temperature dependence than the quite small plastic tensioning system.
Congrat's on the results ! I look forward to seeing them in a stable temp, just remember don't change to many variables at once , its annoying over long duration experiments, I've made that mistake !...cheers.
You have a nice testing setup for testing the index. As to the question of what else should be measured temperature. pressure, humidity. Now to the data. 1) there is an initial offset, which from trying to read from the graph is the first 10's of cycles. This does make sense "system warming up", the initial stretching. I am happy to seems to be dominate, it is easily accounted for in normal operations. And while you noted the dominate cycling, I find several other factors more interesting in the data. 1) is the relative change in position of the last 5 cycles, shows that the system made an adjustment ( think house creaking ). 2) the "excursions" from the smooth curve the data. Neighboring measurements can have a delta of 0.05. As you noted these result show good performance of the index.
Good to see you making so much good progress! Re: AC Efficiency: those single duct versions are terribly inefficient. Get a dual duct one, or window unit. The single duct versions suck hot air into the building through cracks in windows/doors, and then blow out already conditioned air.
You should run the movement cycle also in reverse. This time the nozzle always came frome the same position to the camera and backlash will not show up as much this way.
Technology Connections did a video on the kind of air conditioner you have. It's pretty inefficient, so you might consider switching if it's an option for you. Check out his video on "Portable Air Conditioners"
The graph certainly looks like an aircon cycle to me. One thing you could look at doing would be to make a box out of foam insulation to put the index into, to see if that decreases the tolerance cycling during a test. Also, on the subject of air conditioning, I hope that aircon is a two pipe unit? ua-cam.com/video/_-mBeYC2KGc/v-deo.html
The best kind of tests are probably tests where any inconsistencies build up of time, kind of like tiling a floor might cause issues with the last row if the tiles are just a fraction bigger then spec. To replicate that here, maybe try picking up a piece from the end of the conveyor belt, moving it close to the beginning, then move the conveyor belt, and repeat for hours, such that any inconsistencies will build up over time. The idea is that the component is not moved back to start via the same method in reverse, because that would tend to "undo" the stacking of offsets.
So for making it more accurate for real world scenario's you could introduce an additional way point that is a random X,Y, or normally distributed about the workspace, before going to the calibration point. As half would be from each side of the calibration point on both axis, it will show backlash in both directions as banding on the charts. Also - that accuracy is already amazing for a DIY machine!!
Your upward facing camera is mounted on both sides bolted down. If I recall correctly, it is made from different material than the aluminum frame. So with different expansion factors, it could be, that your camera moves up and down from the bulging. It can also slightly rotate. You can try to keep you machine still standing and just make the position tracking. You might as well see, that your frame is doing what it is doing then also.
I think that your theory is right, I got similar results years ago with scara robot (lab with robust AC system), basically tens of microns for very few C degs diff. Those mobile units use to regulate very aggressive and given that you had PnP on the floor (coldest air on every AC cycle start), the 100 um error makes sense. It could be interesting to see how much the PnP enclosure helps as it would be nice to place 0402s as well ;-)
Look at a few things, power isolation from the mains supply by using a UPS to eliminate any inductive load issues (like the air conditioner) and a thermometer and hygrometer probe to measure the environment variables of the index validation process. You will then be able to see if it's a temperature or humidity variations in each test. When running a long test, you may want to perform another calibration to see if the parts warm up when in operation and that may cause alignment issues.
I which case, a 50 Hz line filter might be of great help. Having said that, Stephen: measure the noise profile from the power supply of the machine to get a rough idea if this is affecting the movement Great work, as always!
Can try graphing the current output on the aircon to see if it cycles at the same time the change happens. Just slap a UPS on it if it's too much trouble.
I think this little error may caused by : 1- Stepper driver( microstepping build-in indexer or decay mode ) 2- the system clock of your micro-controller( the crystal or the timers which where driving Marlin)
Bit late to the party, but coming from precision equipment, my 2cts - apart from the obvious things already mentioned, like thermal expansion from the aluminium, also look at assymmetry design effects (good thermal design takes into account expansion, and can compenate for it, but it needs to be predictable, and therefore in most cases syymetrical) Look at "long" distances to your reference point (Center FoV at focal point of camera) - Nozzle mount assymetry : is the thermal effect on your nozzle affecting it symmetrical, or can it cause it to bend at a certain angle? nozzle length can exaggerate the effect at ther reference point - camera mount angle deviations, camera mount influence might be affected in larger portions due to working distance effect - cyclic effects, always look at any 'rolling' components, like ball bearings, the balls in the cage might rotate relative to the inner outer rings over time, and cause small out of center effects that can cause cyclical effects over longer cycle runs. Cheaper bearings have less tolerance on circularity on rings, balls, etc
you should probably do the same test but with different movements between each check, because at the moment the system is always coming from the same state so there is obviously a smaller error than, if the movements are random
Somewhere in the system, there's calculations that involve physical measurements, eg rod diameters, stepper motor gear diameters etc. And somewhere there's a rounding error in the measurement of that physical distance, that manifests like this
I agree that it's most likely temperature and recording the temperature would allow for correlation. You might also have some power noise? Maybe you could put in a filter or if you have the gear, record the current and voltage waveforms for an hour.
If you put the machine as far away from the AC as possible, the pattern shoud decrease in amplitude if thats in fact it. Another thing to try would be making a simple thermal enclosure using foam insulation and seeing what changes.
The industry standard for calibration of CNC milling machines are the Reninshaw probes. Obviously I’m not suggesting you’d go for one as just the probe is likely to cost more than your entire machine, but maybe you could draw some inspiration from it. Another possibility is to use laser barriers to calibrate your axes, I’ve seen it done. As for the execution of the test itself I first thought it was a crude approach until you showed the graphs and I have to say I was wrong. Testing it every single cycle is beneficial to understand a phenomenon you would miss entirely hadn’t you done it like that. Temperature is something that does affect machine behaviour. Even measuring instruments like micrometers require a stabilisation period in a temperature and moisture controlled room. It can become so critical that you are required to wear gloves and only touch the instrument for the time required to perform the measurements. It’s the price you have to pay for precision, an incredible attention to detail and follow procedures to the letter. Overall well done, your learning curve could one day turn you into a very skilled technician or even a manufacturer putting out there your own designs and create your own brand. Keep up the good work.
You should run the test at half speed, and see if the cycle of the drift remains the same, or if it doubles. That way you would know for sure if the cycle you're seeing is actually tied to time, or if it's actually tied to the traveled distance or similar (which just happens to cycle at a constant time, because of the constant speed of the tests). Then you'd be certain what to look for.
My hobby is in the audio space, but the experience may apply here. When recording or using tube amps we often throw them in cabinets. This is because 1. Loud but 2 because they are temp controlled to avoid sway in performance. I do this during the testing phase after repairs or doing a custom build. Maybe building an enclosure for the thing could yield more accurate performance. Or, if you find after removing the from the equation that the issue is still there why not program in a compensation step every 10 min?
You should try just leaving the part motionless on the camera to see if theres also a pattern. Try also exporting the actual step position of each motor, accel curves and rounding errors can cause that the motor isnt exactly at the same step position every time
I tend to believe it is more of the expansion and contraction on the belt. A spring tensioner with a stiff spring is going to be the best bet in reducing the expansion and contraction of the belt since metal expands less than rubber with a given change in temperature. Make sure your tensioner doesn't just stay rigid relative to a bolt and slap a spring on that guy
What about filming the end effector hitting a x and a y dial indicator that are mounted externally? It's a commonly used method for assessing machine tool accuracy. Hard to know if it's the measurement or the thing being measured without using your method on a reference mechatronic system with known absolute limits (i.e. seeing the drift in your CV measurements of a blue dot on someone else's x-y gantry). But KISS typically prevails.
As soon as I saw that graph I was like it must be Air Con! so was quite excited when you suggested that was the problem. My thought is that the belts themselves might be expanding and contracting. And having said that I can't think of any way to tension the belts that would mitigate this?
Interesting test Stephen. I would be interested in trying it on my newly built PNP. Are you going to make the Rasp Pi scripts available? You also seemed to be running the machine quite slowly for the test?
Another thing can be current drops when your A/C turnind on, because all A/c have motors, all motors have start current. Maybe this current drops little bit effect on electronics
I think it is the belts that expand and contract, they have a small cross-section which means very little heat is needed to expand the belt, and it is very long, so even small changes in air temp will be noticeable. As others have suggested, use a hairdryer/heat gun to heat up various components to figure out which are the most susceptible. An important test is a crash test, how does the index handle incorrect inputs? And can you crash the moving parts into the stationary parts?
cyclic perturbations aside, the initial settling is of even larger magnitude and also looking for an explanation. Is that motors getting warm and changing the temperature of profiles and printed parts?
The highest error will be at the point furthest from the indexing point and with belts could be affected by temp, humidity, and time. If the system had a test point at the farthest point from the index it could automatically check the run out and re calibrate itself.
You'd be impressed at how regular the periodic component of my laundry room temperature sensor is, due to the cycling of the freezer that's down there... Throw an SHT31D sensor on the thing and log that with everything else.
Stephen, could you post a link the raw csv data file ? Also you stated you "cleaned up the data". This is painful to hear without an explanation of what you did ?
5:10 "every halfhour-ish there's a periodic cycling" my IMMEDIATE guess is you've got an AC unit kicking on/off that's literally changing the tension on the machine.... because it uses belts, and belts get stiffer/softer based on temperature. That's just my guess from watching up to 5:16, time to hit play and see if you solved it though :D edit: 5:57 CALLED IT ahahahaah
Those 3d printed legs are going to loosen up over time, and the machine positions will become looser and looser as the machine starts to wobble. It's just the nature of plastic. Why not keep it simple and use some extrusions for legs that can be retightened when needed? A sturdy frame is essential.
I think it's the filament you used - maybe printing just the parts for one of the axis in a different filament to validate - PETG is more heat resistant than PLA markforged.com/resources/blog/pla-abs-nylon PLA and ABS are both thermoplastics. PLA is stronger and stiffer than ABS, but poor heat-resistance properties means PLA is mostly a hobbyist material. ABS is weaker and less rigid, but also tougher and lighter, making it a better plastic for prototyping applications.
I would use more than 1 camera, just is case it you min point i.e if you move the camera some were else you you may of got a bigger error. or and make a 4x4 grid, and got camera to a point and back to the camera and choose the points at "random" so it more like a real system where you are not going along same path, and the small error is always cancelled out by the path. also see want the over shot it i.e. does it go past and the the software brings tit back to the right point, this more a turn test.
Why don't you just checknthe heads position every time you check a parts position? That way you could " calibrate" the absolut position of every single part
Nah, you are off by an order of magnitude :) A "0603 part" is "1608 metric", which is 1.55 mm x 0.85 mm. Even if you consider 0603 metric (which is also known as 0201) parts, 100 um is 1/3 the width of it.
@@olivercouch1651 yes, they are pretty much twice as long as their axis, but the thermal expansion on fiberglass backed belts is negligeable. also it would have to overcome all the elastic deformation it was put under by the stretcher. Steel backed i am not sure, I don't know what he is using. but still.
The industry standard for calibration of CNC milling machines are the Reninshaw probes. Obviously I’m not suggesting you’d go for one as just the probe is likely to cost more than your entire machine, but maybe you could draw some inspiration from it. Another possibility is to use laser barriers to calibrate your axes, I’ve seen it done. As for the execution of the test itself I first thought it was a crude approach until you showed the graphs and I have to say I was wrong. Testing it every single cycle is beneficial to understand a phenomenon you would miss entirely hadn’t you done it like that. Temperature is something that does affect machine behaviour. Even measuring instruments like micrometers require a stabilisation period in a temperature and moisture controlled room. It can become so critical that you are required to wear gloves and only touch the instrument for the time required to perform the measurements. It’s the price you have to pay for precision, an incredible attention to detail and follow procedures to the letter. Overall well done, your learning curve could one day turn you into a very skilled technician or even a manufacturer putting out there your own designs and create your own brand. Keep up the good work.
This might even be the expansion of the aluminium frame, the 26 ppm / C or so quickly adds up with a meter of frame
Agreed. I easily can see this error occurring from even just the aluminum. Had run into tolerancing issues with a mechanical assembly at work due to temperature variation. Can be quite the pain.
Yeah, working in mikro-/nanopositioning industry, and had to measure with interferometers big motion systems. This looks pretty similar to the periodical drift I've seen in the clean room due to the cycling air conditioning (only smaller scale as the temperature variation was below 1°C).
Aluminium ~25 um/(m*°C) => so a length of 1m and a variation of +-2°C in temperature could result in a 100um peak-peak position variation.
Depends also on where was the zero position, as the frame stretches the belt and the distance between the belt teeth scales up/down.
So basically the gear ratio between stepper and timing belt is now temperature dependent (even if it's a low CTE version with lower value than aluminum's).
Also, without the A/C the position will probably drift over night instead of cycling.
Also, theoretically:
By recording the position and the temperature variation in two setups, a "temperature calibration" could be done for the index (effective stepper-to-belt-stepsize as a function s0+s1*(T-25°C)).
Setup 1: Camera at bottom/left
Setup 2: Camera at top/right
Other requirement: good reproducable zero position for initialization
The rest is just a bit of linear math and integrating an temperature sensor onto the aluminium frame (as that temperature should be in sync with the change)
;-)
Was my thought as well. Check thermostat or arco cycling.
Yep. Most likely culprit in my opinion.
I would not change any parts yet. Redo the test inside an enclosure for better temp stability.
If the vision system can simultaneously give you information on both the picked part's location and the pick head location (via a secondary mark), then you could use that to maintain a correction calibration. Alternately, you could image the picker head every N parts (on the way back to pick the next part) and use that. The nice thing about such an active calibration system is that it can compensate for other error sources (and throw out a headsup alert if the correction amount exceeds a certain amount).
Yes, especially if the source of error is environmental.
The secondary mark could be on all the feeders. So one can do different type of calibrations, on-the-fly (just passing any feeder), small (first and last feeder), medium (50%) and full.
might be daft, but try hooking the index to a UPS that can smooth out the power. i've found when i have my AC on, sometimes my printer will change its motor sounds, as soon as i placed it on the UPS it basically vanished
Agree this makes more sense than a temp change to me.
My thoughts... This is a DIY pick and place machine made from printed parts and off the shelf belts and pulleys, being tested in a room near a window with portable AC unit in close proximity and you're concerned over a tolerance of 100 microns !!!! - Really, this is incredible, and shows just how good a product this is. Whilst you may want to get that tighter, or eliminate that small variance, I think you should be proud at what you have achieved. Granted, commercial machines costing £12K may have a +/- 20 micron tolerance, but at the end of the day, if your machine can pic and place the smallest component you are going to use accurately and repeatedly then I can't see the issue. - I think this project is amazing
Oh man, I got really excited to see the test results after you monitored the temperature! Also the movement of the gantry for this test reminded me of the DVD player screen saver. I used to sit there and watch waiting for the logo to hit the corner exactly and bounce back perfectly. So satisfying
Log the temperature together with the X,Y data and overlay them on the graph. Maybe try to compensate the X,Y data with your temperature data first in software(graph) and later in firmware.
I would suspect that the long aluminium extrusion cause more temperature dependence than the quite small plastic tensioning system.
The big win here, is there is no degredation of accuracy over time.
Congrat's on the results ! I look forward to seeing them in a stable temp, just remember don't change to many variables at once , its annoying over long duration experiments, I've made that mistake !...cheers.
You have a nice testing setup for testing the index. As to the question of what else should be measured temperature. pressure, humidity. Now to the data. 1) there is an initial offset, which from trying to read from the graph is the first 10's of cycles. This does make sense "system warming up", the initial stretching. I am happy to seems to be dominate, it is easily accounted for in normal operations. And while you noted the dominate cycling, I find several other factors more interesting in the data. 1) is the relative change in position of the last 5 cycles, shows that the system made an adjustment ( think house creaking ). 2) the "excursions" from the smooth curve the data. Neighboring measurements can have a delta of 0.05. As you noted these result show good performance of the index.
Good to see you making so much good progress! Re: AC Efficiency: those single duct versions are terribly inefficient. Get a dual duct one, or window unit. The single duct versions suck hot air into the building through cracks in windows/doors, and then blow out already conditioned air.
Yes, Buddy, it is actually the aluminum frame and not the plastic parts that are causing your error! Great job!
You should run the movement cycle also in reverse. This time the nozzle always came frome the same position to the camera and backlash will not show up as much this way.
Definitely this
Also possible that your sampling frequency is syncing with some common mode noise
Technology Connections did a video on the kind of air conditioner you have. It's pretty inefficient, so you might consider switching if it's an option for you. Check out his video on "Portable Air Conditioners"
The graph certainly looks like an aircon cycle to me. One thing you could look at doing would be to make a box out of foam insulation to put the index into, to see if that decreases the tolerance cycling during a test.
Also, on the subject of air conditioning, I hope that aircon is a two pipe unit? ua-cam.com/video/_-mBeYC2KGc/v-deo.html
Huzzah! A man of culture!
The best kind of tests are probably tests where any inconsistencies build up of time, kind of like tiling a floor might cause issues with the last row if the tiles are just a fraction bigger then spec. To replicate that here, maybe try picking up a piece from the end of the conveyor belt, moving it close to the beginning, then move the conveyor belt, and repeat for hours, such that any inconsistencies will build up over time. The idea is that the component is not moved back to start via the same method in reverse, because that would tend to "undo" the stacking of offsets.
Cyclical accuracy is still good! I like the idea of recording temperature, and maybe even using it as a calibration variable when you run the machine.
Really exciting progress!
So for making it more accurate for real world scenario's you could introduce an additional way point that is a random X,Y, or normally distributed about the workspace, before going to the calibration point. As half would be from each side of the calibration point on both axis, it will show backlash in both directions as banding on the charts.
Also - that accuracy is already amazing for a DIY machine!!
Your upward facing camera is mounted on both sides bolted down. If I recall correctly, it is made from different material than the aluminum frame. So with different expansion factors, it could be, that your camera moves up and down from the bulging. It can also slightly rotate. You can try to keep you machine still standing and just make the position tracking. You might as well see, that your frame is doing what it is doing then also.
I think that your theory is right, I got similar results years ago with scara robot (lab with robust AC system), basically tens of microns for very few C degs diff. Those mobile units use to regulate very aggressive and given that you had PnP on the floor (coldest air on every AC cycle start), the 100 um error makes sense. It could be interesting to see how much the PnP enclosure helps as it would be nice to place 0402s as well ;-)
Look at a few things, power isolation from the mains supply by using a UPS to eliminate any inductive load issues (like the air conditioner) and a thermometer and hygrometer probe to measure the environment variables of the index validation process. You will then be able to see if it's a temperature or humidity variations in each test. When running a long test, you may want to perform another calibration to see if the parts warm up when in operation and that may cause alignment issues.
remember that your sinusoid could be an alias of a higher frequency change, like the 50Hz of your line.
I was thinking that too. I don't know if he's doing all the same test and if the cycle time is exactly the same, i.e within 2ms?
I which case, a 50 Hz line filter might be of great help.
Having said that, Stephen: measure the noise profile from the power supply of the machine to get a rough idea if this is affecting the movement
Great work, as always!
wooo Stephen Hawes video :D
I now see the reason for the move ;D Goodonya dood !^.^!
Heat what you think is the culprit with a hair dryer or heat gun and see if it drifts
Can try graphing the current output on the aircon to see if it cycles at the same time the change happens. Just slap a UPS on it if it's too much trouble.
I think this little error may caused by :
1- Stepper driver( microstepping build-in indexer or decay mode )
2- the system clock of your micro-controller( the crystal or the timers which where driving Marlin)
Bit late to the party, but coming from precision equipment, my 2cts
- apart from the obvious things already mentioned, like thermal expansion from the aluminium, also look at assymmetry design effects (good thermal design takes into account expansion, and can compenate for it, but it needs to be predictable, and therefore in most cases syymetrical)
Look at "long" distances to your reference point (Center FoV at focal point of camera)
- Nozzle mount assymetry : is the thermal effect on your nozzle affecting it symmetrical, or can it cause it to bend at a certain angle? nozzle length can exaggerate the effect at ther reference point
- camera mount angle deviations, camera mount influence might be affected in larger portions due to working distance effect
- cyclic effects, always look at any 'rolling' components, like ball bearings, the balls in the cage might rotate relative to the inner outer rings over time, and cause small out of center effects that can cause cyclical effects over longer cycle runs. Cheaper bearings have less tolerance on circularity on rings, balls, etc
you should probably do the same test but with different movements between each check, because at the moment the system is always coming from the same state so there is obviously a smaller error than, if the movements are random
Somewhere in the system, there's calculations that involve physical measurements, eg rod diameters, stepper motor gear diameters etc. And somewhere there's a rounding error in the measurement of that physical distance, that manifests like this
I agree that it's most likely temperature and recording the temperature would allow for correlation. You might also have some power noise? Maybe you could put in a filter or if you have the gear, record the current and voltage waveforms for an hour.
If you put the machine as far away from the AC as possible, the pattern shoud decrease in amplitude if thats in fact it.
Another thing to try would be making a simple thermal enclosure using foam insulation and seeing what changes.
I need friends like you lol. Nobody I know cares about these kinds of tiny details and I feel crazy when I talk about 'em XD
The industry standard for calibration of CNC milling machines are the Reninshaw probes. Obviously I’m not suggesting you’d go for one as just the probe is likely to cost more than your entire machine, but maybe you could draw some inspiration from it. Another possibility is to use laser barriers to calibrate your axes, I’ve seen it done.
As for the execution of the test itself I first thought it was a crude approach until you showed the graphs and I have to say I was wrong. Testing it every single cycle is beneficial to understand a phenomenon you would miss entirely hadn’t you done it like that.
Temperature is something that does affect machine behaviour. Even measuring instruments like micrometers require a stabilisation period in a temperature and moisture controlled room. It can become so critical that you are required to wear gloves and only touch the instrument for the time required to perform the measurements. It’s the price you have to pay for precision, an incredible attention to detail and follow procedures to the letter.
Overall well done, your learning curve could one day turn you into a very skilled technician or even a manufacturer putting out there your own designs and create your own brand. Keep up the good work.
You should run the test at half speed, and see if the cycle of the drift remains the same, or if it doubles.
That way you would know for sure if the cycle you're seeing is actually tied to time, or if it's actually tied to the traveled distance or similar (which just happens to cycle at a constant time, because of the constant speed of the tests). Then you'd be certain what to look for.
My hobby is in the audio space, but the experience may apply here. When recording or using tube amps we often throw them in cabinets. This is because 1. Loud but 2 because they are temp controlled to avoid sway in performance. I do this during the testing phase after repairs or doing a custom build. Maybe building an enclosure for the thing could yield more accurate performance.
Or, if you find after removing the from the equation that the issue is still there why not program in a compensation step every 10 min?
You should try just leaving the part motionless on the camera to see if theres also a pattern. Try also exporting the actual step position of each motor, accel curves and rounding errors can cause that the motor isnt exactly at the same step position every time
It’s either the aluminum extrusions that react on the temperature change, or the belts. My guess is the aluminum. No way it’s caused by the 3D prints.
There was an extreme excursion in the data on the y axis about 20,000s in, Any idea what this was?
I tend to believe it is more of the expansion and contraction on the belt. A spring tensioner with a stiff spring is going to be the best bet in reducing the expansion and contraction of the belt since metal expands less than rubber with a given change in temperature. Make sure your tensioner doesn't just stay rigid relative to a bolt and slap a spring on that guy
This is awesome!
What about filming the end effector hitting a x and a y dial indicator that are mounted externally? It's a commonly used method for assessing machine tool accuracy. Hard to know if it's the measurement or the thing being measured without using your method on a reference mechatronic system with known absolute limits (i.e. seeing the drift in your CV measurements of a blue dot on someone else's x-y gantry). But KISS typically prevails.
how precise do you calculate the position of the head?
it may have a tolerance because of the camera resolution
Any thoughts on whether sharing the electrical circuit with the AC would affect the motors? Maybe Index wants a dedicated circuit.
As soon as I saw that graph I was like it must be Air Con! so was quite excited when you suggested that was the problem. My thought is that the belts themselves might be expanding and contracting. And having said that I can't think of any way to tension the belts that would mitigate this?
Interesting test Stephen. I would be interested in trying it on my newly built PNP. Are you going to make the Rasp Pi scripts available? You also seemed to be running the machine quite slowly for the test?
Another thing can be current drops when your A/C turnind on, because all A/c have motors, all motors have start current. Maybe this current drops little bit effect on electronics
I think it is the belts that expand and contract, they have a small cross-section which means very little heat is needed to expand the belt, and it is very long, so even small changes in air temp will be noticeable. As others have suggested, use a hairdryer/heat gun to heat up various components to figure out which are the most susceptible.
An important test is a crash test, how does the index handle incorrect inputs? And can you crash the moving parts into the stationary parts?
Charmhigh should hire you.
cyclic perturbations aside, the initial settling is of even larger magnitude and also looking for an explanation. Is that motors getting warm and changing the temperature of profiles and printed parts?
The highest error will be at the point furthest from the indexing point and with belts could be affected by temp, humidity, and time. If the system had a test point at the farthest point from the index it could automatically check the run out and re calibrate itself.
Maybe the camera should be approched from different sides each cycle, to check for backlash
You'd be impressed at how regular the periodic component of my laundry room temperature sensor is, due to the cycling of the freezer that's down there... Throw an SHT31D sensor on the thing and log that with everything else.
defo redo while also logging temperature, it's the easiest way to see if temperature is the cause before moving on to try to fix it
Maybe do a temp growth check on the belts?
Stephen, could you post a link the raw csv data file ? Also you stated you "cleaned up the data". This is painful to hear without an explanation of what you did ?
5:10 "every halfhour-ish there's a periodic cycling" my IMMEDIATE guess is you've got an AC unit kicking on/off that's literally changing the tension on the machine.... because it uses belts, and belts get stiffer/softer based on temperature.
That's just my guess from watching up to 5:16, time to hit play and see if you solved it though :D
edit: 5:57 CALLED IT ahahahaah
Did you ever post a video about why this oscillation happened?
Maybe heat it and cool it at that point so you’d know? Also a maybe testing with a slight frequency change of the power supply would make sense?
I think that you are to compensate it by using the upfacesing camera. I think that it is wat easier than when you are going to solve it mechanically
Is it possible to make it a closed loop control system using the camera as a “location sensor”?
Yes, OpenPNP has the option of "Visual Homing". I use it plus have two other point of reference, to triple check positions.
share your csv? and the validation code? Also I would split out both axis and analyze separately and combined.
spring tension the belt to have a little give for exspansion?
Even then openpnp would correct the position with vision right?
Try running it from the battery. AC power is never meant to be clean (sine wave).
Check the vacuum parts after some cycles.
Those 3d printed legs are going to loosen up over time, and the machine positions will become looser and looser as the machine starts to wobble. It's just the nature of plastic. Why not keep it simple and use some extrusions for legs that can be retightened when needed? A sturdy frame is essential.
I think the belt would do more of a change more then the pulley by the temperature change
Try a plastic with a different coefficient of thermal expansion like most gf filled ones which are close to aluminium
Or put an idler made of the same materials on the other side too so that any expansion is equal in two opposing directions.
How well would it handle 0402??
I think it's the filament you used - maybe printing just the parts for one of the axis in a different filament to validate - PETG is more heat resistant than PLA
markforged.com/resources/blog/pla-abs-nylon
PLA and ABS are both thermoplastics. PLA is stronger and stiffer than ABS, but poor heat-resistance properties means PLA is mostly a hobbyist material. ABS is weaker and less rigid, but also tougher and lighter, making it a better plastic for prototyping applications.
I would use more than 1 camera, just is case it you min point i.e if you move the camera some were else you you may of got a bigger error. or and make a 4x4 grid, and got camera to a point and back to the camera and choose the points at "random" so it more like a real system where you are not going along same path, and the small error is always cancelled out by the path. also see want the over shot it i.e. does it go past and the the software brings tit back to the right point, this more a turn test.
Why don't you just checknthe heads position every time you check a parts position? That way you could " calibrate" the absolut position of every single part
Chill the questionable part down with an upside down can of canned air. You'll be able to see the change in just a few cycles.
Maybe turn off the air conditioning and see if it changes - if the temperature would rise, you will at least see something more linear than this
Assuming it wouldn’t get unbearably hot there ;)
if only we had room temperature logged along with the measurements
@@hardwareful That would not matter that much, at least we would see a more linear graph.
100 microns is 4 mils which is the length of a 0402 part and 2/3 the length of an 0603. Ugh!
Nah, you are off by an order of magnitude :) A "0603 part" is "1608 metric", which is 1.55 mm x 0.85 mm. Even if you consider 0603 metric (which is also known as 0201) parts, 100 um is 1/3 the width of it.
check the room temp
if it is a thermal expansion problem, the first place to look would be the frame.
thet is why there should be periodic homing cycles.
@@thiagoennes Actually the belts - they're much much longer
@@olivercouch1651 yes, they are pretty much twice as long as their axis, but the thermal expansion on fiberglass backed belts is negligeable. also it would have to overcome all the elastic deformation it was put under by the stretcher. Steel backed i am not sure, I don't know what he is using. but still.
Hello
I may have a solution that will resolve this. I sent you a message.
So your girl is into this to ? (Last 3 seconds)
The industry standard for calibration of CNC milling machines are the Reninshaw probes. Obviously I’m not suggesting you’d go for one as just the probe is likely to cost more than your entire machine, but maybe you could draw some inspiration from it. Another possibility is to use laser barriers to calibrate your axes, I’ve seen it done.
As for the execution of the test itself I first thought it was a crude approach until you showed the graphs and I have to say I was wrong. Testing it every single cycle is beneficial to understand a phenomenon you would miss entirely hadn’t you done it like that.
Temperature is something that does affect machine behaviour. Even measuring instruments like micrometers require a stabilisation period in a temperature and moisture controlled room. It can become so critical that you are required to wear gloves and only touch the instrument for the time required to perform the measurements. It’s the price you have to pay for precision, an incredible attention to detail and follow procedures to the letter.
Overall well done, your learning curve could one day turn you into a very skilled technician or even a manufacturer putting out there your own designs and create your own brand. Keep up the good work.