Тёмный

Delta Kinematics Demystified - Understanding The Fastest 3D Printers 

Nathan Builds Robots
Подписаться 42 тыс.
Просмотров 3,1 тыс.
50% 1

Наука

Опубликовано:

 

20 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 53   
@__S__435
@__S__435 Месяц назад
Having worked on a calibration routine for a delta printer, which involved a fair amount of studying the kinematics system, I can say this is mostly correct. Some further details: Because the axes don't map linearly to Cartesian coordinates, they're sometimes called ABC instead of XYZ. Z-only moves are very easy. All you have to do is move all three motors at the same speed, for the same amount of time. XY moves (and XYZ moves, as when moving in arcs) are somewhat less simple. In order to move from one position to another, unless the move is purely in Z, each carriage will have to move on a _curve,_ and _not_ a straight line. In other words, _while the effector is moving in a perfectly straight line,_ the carriages will have to accelerate and decelerate differently, and they will often change directions at some point. Because of this, the motors can't be instructed to move in a linear fashion. Instead, the controller generates many tiny segments (each of which is a small fraction of a millimeter long) and clocks them out to the stepper drivers at a high rate of speed. A rate of 100-200 segments per second is typical. For running the printer at extremely high speed (like with Klipper with input shaping), it may be beneficial to generate even more than 200 segs/sec, as the printer is moving quite fast. You didn't mention (or draw) the horizontal distance (offset) between the effector's ball joints and its center. This matters, but is factored out in the arithmetic before the machine ever starts moving by subtracting that offset from the delta radius (horizontal distance between center of effector and carraiges.) At runtime, the kinematic routines see a machine with zero distance between the joints and the center of the effector. You don't need to write logic to ignore the intersections with the bottom of the sphere. In fact, during normal operation, when the controller is converting Cartesian coordinates to axis positions (inverse kinematics), there is no notion of a sphere at all, just some basic trig: github.com/Smoothieware/Smoothieware/blob/edge/src/modules/robot/arm_solutions/LinearDeltaSolution.cpp#L62 What you are seeing there is just the Pythagorean theorem: a^2 + b^2 = c^2... that moves the XY position of the effector to the right place. At the end of each calculation, they add the Z, which is the same for all three towers. That's all there is to it: just calculating the elevations of the top vertices of three right triangles, and then adding whatever the Z is to that. Going the other way (forward kinematics, or axis positions to effector position), there _is_ a notion of a sphere. (Same link, but scroll down to LinearDeltaSolution::actuator_to_cartesian(), and you will see the comment mentioning "barycentric coordinates.") However, there is no need to write code to "ignore" the intersection at the bottom of the sphere. You only tell it how to find the top intersection. It doesn't know what trig is, or what a sphere is. It only knows that you're taking an exponent here, and a square root there, but never the fact that it has anything to do with a sphere. Deltas used to have a well-earned reputation for being very hard to calibrate. This is why I and a few others (especially dc42, who wrote the RepRapFirmware which runs on Duet boards) spent quite a lot of time writing heuristic (machine learning) calibration algorithms almost ten years ago. It's _extremely_ hard to figure out why a delta is not achieving perfect 1st layers without machine learning unless the frame is unbelievably, superhumanly well-aligned. (Not a huge issue when printing narrow objects, but without proper calibration it's progressively more difficult as the part gets wider.) The difficulty is because the math is non-linear (exponents and square roots); so the effects of miscalibration are not linear either, and really don't make sense to human intuition. Early calibration systems relied on probing at some points along a triangle. They sucked and were horrible. The systems written during the era when I was doing that would instead probe on a grid to measure the bed depths. On a perfectly-calibrated printer, all the depths would theoretically be identical. On a real printer, there's always some errors in Z. The ML algorithms would look at the depths on the grid and use heuristics to figure out the particular tweaks to printer geometry settings that would most accurately explain the observed data. My calibration system could take a printer with ~110 microns of average error, and (on my printer) get that down to around 42 microns. Other people had even better luck, and could get down around 20 microns. Today, this is a pretty standard feature, and I would never recommend a delta that didn't come with heuristic calibration. A few people still think deltas are hard to calibrate, but this is only true when the robot doesn't have that feature.
@NathanBuildsRobots
@NathanBuildsRobots Месяц назад
This is the best “well, actually” comment I’ve had in a long time, it should serve as an appendix to the video which is pretty superficial, but at least gets people thinking about it. If you do the math, you could start with the spherical intersection model and simplify it down into a simpler problem, the fact that z affects all axis the same and can just be added to all rails collectively is a very interesting notion. When solving for the transformation matrix I’m sure this would just plop out and be obvious but it’s a pretty big deal for simplifying the kinematics.
@astrumrocket6556
@astrumrocket6556 Месяц назад
Simple and effective explanation. I already had a general idea on how Delta's work, but this really does demystify it. Something I feel is overlooked with Delta printers (I think at least? ) is that they would work really well for a DiY high-temp 3D printer. Just use ball screws instead of belts for z-motion, and other than the extruder parts, no electronics need to be inside the heated chamber.
@oleurgast730
@oleurgast730 Месяц назад
If you use a long bowden. For direct extruder you still need a motor inside. On bigger Deltas (like Anycubic Predator) a feeder hanging on springs was used, to keep the bowden short; modern Deltas mostly use a direct extruder with Nema 14. However, you should be able to cool a nema 14 with a peltier element or water cooling if you have a very hot chamber... Ball screws are normaly a lot slower than belts, as they have a high rotating mass. However, there are alternatives to normal belts with higher temperature resistence.
@astrumrocket6556
@astrumrocket6556 Месяц назад
@@oleurgast730 Not necessarily, you could also use a Flex Shaft. That way you get full benefits of direct-drive, without any motor weight. I used one on an old Ultimaker 2+, and recently I reused the same Flex3Ddrive on a DiY corexy, actually managed to make a cantilevered flying gantry that doesn't sag (that was my goal, I'm using it for education purpose, and this design makes everything clearly visible). Issue here is that my e-steps are quite high, so the extruder motor needs to spin A LOT, but that could be avoided with some more sense put into it.
@oleurgast730
@oleurgast730 Месяц назад
@@astrumrocket6556 You are correct. I totally forgot about the good old Zasty Nimble I used a few years ago ;-) So yes, a Delta definitly is a nice design for high chamber temperature. There might be a reason Prusas new industrial printer is a Delta...
@astrumrocket6556
@astrumrocket6556 Месяц назад
@@oleurgast730 Funny you should mention Prusa, turns out, they are selling a Flex Drive type extruder for their (or Trilab's) DeltiQ. Shame that flex drives aren't more popular, I understand why, but still, it would be nice if there were a few affordable ones on the market.
@daliasprints9798
@daliasprints9798 Месяц назад
It's even easier than that. You can use bellows and keep the motion components outside of the heated zone entirely.
@samhale5413
@samhale5413 Месяц назад
Back in the Mesozoic when I was in high school and even early college many engineers considered the kinematics you describe as high wizardry. Then someone invented pocket calculators with trig functions and it all became simple geometry.
@NathanBuildsRobots
@NathanBuildsRobots Месяц назад
The fossil speaks!
@__S__435
@__S__435 Месяц назад
You could have done it on a slide rule, the IK function is just finding the top vertex of three right triangles using the Pythagorean theorem.
@gaveintothedarkness
@gaveintothedarkness Месяц назад
That was a great explanation of this system!
@skunkprints7952
@skunkprints7952 Месяц назад
Nathans builds robots is the definitive source for 3D printing news and information.
@ahmedalhalabi9533
@ahmedalhalabi9533 Месяц назад
I love your rambling, your method of explaining things is quite enjoyable. I imagine someone with not much of a technical background or interest being able to understand this
@RBallarddesigns
@RBallarddesigns Месяц назад
Thanks for the explanation. Makes so much more sense now
@NathanBuildsRobots
@NathanBuildsRobots Месяц назад
Glad to help!
@daliasprints9798
@daliasprints9798 Месяц назад
You lose speed not acceleration when the angle is really shallow. The delta arms are a cvt and shallow angle is the "ultra low gear" end of the cvt. Traditionally folks design deltas to limit the min angle so you don't lose too much speed, but the speed penalty only actually hurts moves opposite a column in the direction towards/away-from it (not perpendicular direction), so if your firmware can be smart about it, you can use extreme min angles without much penalty.
@zakariakhamees
@zakariakhamees Месяц назад
That is so cool. Didn't know the sphere geometry is part of the motion system. We need more crash courses.
@joehimes9898
@joehimes9898 Месяц назад
Intersections above and below is an interesting concept. You should make a delta printer with the bed in the middle and print heads on both sides of the bed. The top side and the bottom side could be completely independent or used to make copies. I guess that would complicate supports, but there is that cartesian printer that prints upside down.
@marc_frank
@marc_frank Месяц назад
awesome, thanks
@KaliKavala
@KaliKavala Месяц назад
Nice vid. Opened it by accident but Continued to watch because of the white board :)
@mannysengineeringindustry1064
@mannysengineeringindustry1064 Месяц назад
Hi Nathan I saw you at rapid tct walking and I screamed hi I didn't end up seeing you inside
@alexanderscholz8855
@alexanderscholz8855 Месяц назад
I hop you get a new Prusa Delta for testing!!! What they are launched today
@NathanBuildsRobots
@NathanBuildsRobots Месяц назад
Gee, I really hope so, but they are super expensive. I want one badly though.
@Parodidical
@Parodidical Месяц назад
You should ask PRUSA for a review unit of the PRUSA pro ht90 I mean it's ONLY $9990
@NathanBuildsRobots
@NathanBuildsRobots Месяц назад
I mean, it could have been 9999, so count your blessings! But really, it's for real professional use, so companies are willing to pay that. home users, not so much!
@Parodidical
@Parodidical Месяц назад
@@NathanBuildsRobots yeah, my nickname for it is the Invisaligner.
@exsurgemechprints2671
@exsurgemechprints2671 Месяц назад
❎️Roast prusa ✅️✅️✅️ simplify delta kinematics so much a kid can build it 😂😎
@Parodidical
@Parodidical Месяц назад
@exsurgemechprints2671 that's what temu 3d printers are doing. They are literally made by kids!
@BitterCynical
@BitterCynical Месяц назад
So delta printers have to be tall to perform well and they can only use a fraction of their height for the build volume.
@NathanBuildsRobots
@NathanBuildsRobots Месяц назад
Yes. The literal overhead (in mm) is at a minimum the width of the build diameter, and in practice, usually about the golden ratio times the build diameter
@BryonGaskin
@BryonGaskin Месяц назад
and i said I would never care about geometry after high school lol
@garethevans9789
@garethevans9789 Месяц назад
And you didn't even mention matrix transforms. Not sure if I'm impressed or disapointed.😅
@NathanBuildsRobots
@NathanBuildsRobots Месяц назад
The matrix transforms are the solution of the sphere intersection problem. I’m trying to give people a Dunning Krueger level of understanding so they feel invincible! But not so much that they feel hopelessly lost in the math
@__S__435
@__S__435 Месяц назад
You don't need matrix math for IK (which is purely a^2+b^2=c^2), and you don't need FK while printing.
@LaxLegion
@LaxLegion Месяц назад
Hi whats the total cubic print volume of the flsun S1
@greendragonmakerspace
@greendragonmakerspace Месяц назад
What happened to your Sponsor Sunglasses? 😂
@NathanBuildsRobots
@NathanBuildsRobots Месяц назад
Crap, I forgot to wear my shill-shades!
@cnc-maker
@cnc-maker Месяц назад
Are you sure that the code is using spheres? Mathematically, it would make more sense to use each linear rail as an axis and a circle to create a plane through each axis, as they are much easier/faster to calculate. The overall idea might be spheres, but I doubt that they would actually be used in the firmware. The more vertical the rods are, the greater the farce that is placed on them and the bearings, which can be very extreme. How often do the bearings and rods need to be replaced?
@daliasprints9798
@daliasprints9798 Месяц назад
Rods never wear out. The joints/bearings can wear and develop slop, but there are lots of different choices where that can be more or less of a problem. Mine uses printed cups with spring preload that should not develop slop under wear.
@T00LF00L
@T00LF00L Месяц назад
using circles would give you a cool plotter that draws pictures on paper.
@daliasprints9798
@daliasprints9798 Месяц назад
@@T00LF00L Kinda, but it takes up a lot of planar space and has poor Z stability.
@T00LF00L
@T00LF00L Месяц назад
@@daliasprints9798 I have no clue what you’re talking about. I was referring to the question of the code.
@__S__435
@__S__435 Месяц назад
IK (Cartesian to actuator) doesn't use sphere math at all, but just the Pythagorean theorem. FK uses sphere math, but that's only needed for calibration and similar auxiliary tasks. Modern Delta arms are made by encasing a ND magnet in Delrin plastic, which is then ball-milled to have a spherical profile. That then rides on chromed steel balls. These last for a very long time.
@BrianVoelker
@BrianVoelker Месяц назад
When did you become a genius?
@marc_frank
@marc_frank Месяц назад
since when before he was born
@NathanBuildsRobots
@NathanBuildsRobots Месяц назад
When I picked up the dry erase markers… something changed inside of me…
@BrianVoelker
@BrianVoelker Месяц назад
@@NathanBuildsRobots the power of the marker
@Chris-oj7ro
@Chris-oj7ro Месяц назад
@@BrianVoelker Keep the coke bottle glasses away from him, lest he become too powerful!
@rajasantosh22
@rajasantosh22 Месяц назад
.
Далее
STD6 Hotend High Flow Print Testing
0:42
Просмотров 2,7 тыс.
КТО ЛЮБИТ ГРИБЫ?? #shorts
00:24
Просмотров 740 тыс.
Never Troll Shelly🫡 | Brawl Stars
00:10
Просмотров 685 тыс.
Construction site video BEST.99
01:00
Просмотров 288 тыс.
10 Newly Released Printers at RAPID+TCT 2024
18:15
Просмотров 23 тыс.
Carbon In My Skin. These Wounds, They Will Not Heal.
18:40
33 minutes of Noise Torture from Creality’s K-1
32:24
FLSUN S1 - World's Fastest Production Printer
10:11
Просмотров 37 тыс.
Электронный звонок #shorts
0:26
Просмотров 346 тыс.
Слетела прошивка на LiXiang L7
1:01
12 000 рублей за это? Xiaomi Fold 3
0:58
Просмотров 171 тыс.
Atajos de Teclado en Excel para Eficiencia
1:31
Просмотров 64 тыс.