5 bar scara on duet3!
I did a little looking into steppers with encoders and the HCL1. I'd consider it for my voron, but I'd also have to upgrade that machine to a duet 3 from a duet 2 along with the motors and drivers. That's a pretty pricey upgrade for a home built machine I'm pretty happy with lol.
I'm not sure how much of a difference closed loops motors would have for this giant scara arm as I'm gearing it up so much for the resolution. I don't think a drop in motor encoder would correct the issues I'll see at the end effector through all the gears. Also, do we know if the closed loop control works in non-cartesian work spaces?
This is what I'd go with for a motor along with the HCL1's (US source).
@michaelr123 the reasoning for my encoder recommendation is not for closed loop and to rescue from lost steps, but to have a reference angle.
I need to go a bit into the details:
"normal" kinematics like CoreXY and Cartesian need only relative positions for the position information. If the endstop reference is inexact, this is no problem, because if you have e.g. 3 mm wrong position, this is no problem. The endstops triggers and you and your firmware think it's at 0 position, but in truth you're at 3, e.g. But this is no problem, because your print object will be 3 mm off, but the whole object, so that's no problem.
With delta, scara, robot, parallel Scara, Tripteron etc. this is different: here not only the relative position, but also the absolute position is important. Because kinematic calculation includes trigonometric and other algorithms and 3 mm off means wrong actuator angle calculations for this position and you'll get incorrect results. The calculation is for 0, but the realitiy is 3 for your physical reality. Positioning will be wrong and your straight lines will be curved.
So the main reason to recommend an encoder is to get the correct 0 degree (or other fixed) reference every time, and to be able to check it between layers.
An absolute encoder is IMHO better than a relative encoder for this use case, because relative encoders are often based on methods like hall effect which are inexact on their own.
For this use case there are different methods to assure angle exactness and encoder is only one method. You can assure by laser path through all hinges and arms if you like. Another possibility is to set specific endpoint(s) as reference and assure that moving there gets the correct result every time, by triggering it or by camera or other means.
all good points on more complicated motion systems. That's the kind of thing you don't figure out until you're actually working with it
The nice thing with this design is that I can adjust the arm lengths a bit to dial in the arm lengths to be as close as I can get them with a tape measure.
I'll post a picture of my design tonight, but I'm really happy with how it's turned out so far. It's based on a 75t HTD 3m belt. Zero back lash as far as I can tell so far. I ended up using 5mm bearings inside just riding on bolts to start, but I'm really happy with the results so far. The stationary gear is just free-floating without being fixed to a piece of 80/20 yet. I may add a built in bearing using 5mm ball bearings to connect the output side to the input. This might not be necesary once it's connected via pillow blocks and aluminum extrusion.
I found this guy who printed a harmonic drive that used a printed bearing raceway that looks really solid. He's printing the flexspline with a .25mm nozzle and dialing in his settings for PETG. I'm curious to try it. He's using it for very slow speed and low torque applications as drives for astronomy.
@michaelr123 said in 5 bar scara on duet3!:
points on more complicated motion systems
I want to offer you a buffet, and you choose your personal caviar from it You don't need to eat all you can...
Thanks for the link, this harmonic drive looks promising. It also supports my theory that having more balls at the wave generator is better than only 2 like some design on thingiverse have.
I already found several interesting homepages about astronomy, they are very creative people from whom one can learn a lot for precision mechanics.
@michaelr123 said in 5 bar scara on duet3!:
dial in the arm lengths to be as close as I can get them with a tape measure
When your mechanical construction is precise enough, you can go the other round, measuring the endpoints and calculating back how long the elements are and set the configuration accordingly.
@michaelr123 I tried to understand how your harmonic drive works, so please correct me where I'm wrong:
- The belt has contact with two involute gears
- One involute gear is fixed, the other is the output gear
- They have a different tooth-count which determines the gear ratio
What's the tooth count of them and is it important how many teeth the belt has?
The gear with the bigger tooth count has a wider diameter and that puts some stress to the belt? You need good meshing teeth on both gears, for being backlash free, I guess.
I'm just asking, because based on my assumptions, I may have a solution in mind, where despite different tooth count the diameter of both gears is identic.
oliof last edited by
@michaelr123 that would be @koaldesigns but they are busy with life AFAIK.
@o_lampe the commercial HDUA series has a flexspline with common teeth count and the circular splines with +0 and +2 teeth. And a double row ball bearing wave generator.
I thought of something different:
instead of using a belt to connect the involute gears, use dual beveled gears which can rotate freely on a concentric rotor.
That way the fixed side and the output side can have different module and teeth count. (They don't have to share the pitch of the belt)
I tried to make a quick sketch, but couldn't draw a beveled involute gear.
@o_lampe I would say this is similar to planetary gear and has backlash, but it is worth a try. In general, it would be good to compare all those gear ideas by measuring the precision they can achieve. There is one new gear idea of company harmonicdrive which can be added to the list (I currently don't find the link*)).
*) found it: Abacus: https://spectrum.ieee.org/sri-demonstrates-abacus-rotary-transmission
@JoergS5 said in 5 bar scara on duet3!:
this is similar to planetary gear and has backlash
I chose beveled gears, because the gap between the two outer rings can be adjusted to eliminate backlash.
If I had a real usecase, I'd like to print experimental gearboxes from resin. Maybe start with a small version like the orbiter?
Check out split ring planetary gears: https://www.youtube.com/watch?v=4gkbb2CBzQI&ab_channel=LeviJanssen
When I was fresh out of engineering school I was obsessed with this design however, they never ran well and were complicated to design. There isn't much info on them and there are very gear ratios that line up properly (something about everything being multiples of each other).
So far I'm a lot happier with the real-world performance from flex-splines. @JoergS5 - I agree with you you on having an elliptical driver rather than just a few sets of bearings. The HTD belt design I came up with works great as is, but I'm sure it would run better with an elliptical driver. I printed that 79:1 driver in PETG and was fairly impressed. It may need a slightly larger elliptical drive as the flex spline doesn't mesh tight enough to the ring gear as is. One other thing I don't like about this design is how tough it is to install the ball bearings and it's loud. The belt design is completely silent.
I'm going to play around with a fully printed flex spline design this weekend with a lower gear ratio as 79:1 plus a belt reduction is overkill. I'm trying to eliminate the HTD belt if possible as the they're pricey and you can't get them in many sizes both for tooth count and width.
yep you've got it. It's a split ring design where one half matches the tooth count of the belt and the other half is +2 teeth. So for a 75t 3m HTD belt it's 75t on one half and 77t on the other. the input is the elliptical part (what @JoergS5 and I are going back and forth about bearings vs. full ellipse). The tolerance needs to be fairly tight to get zero backlash, but also needs to allow for the belt to "stretch" a tooth so the 77t side can precess +2 teeth forward. I just drew it up and it worked well on my first attempt so I guess it's not too tough to dial in?
Either of the two halves can be the output or fixed (that might be incorrect technically, but just from playing with it seems like that's true). Also remember for the belted design they're not involute gear teeth, but HTD pulley teeth.
I threw together a design for a 35:1 harmonic drive that uses a standard harmonic design with an elliptical driver using ball bearings. getting the size and shape of the ellipse took a few iterations, but again wasn't too hard to sort out.
Once you pack grease into the ball bearings and the gear teeth the design runs a bit smoother and much quieter. I printed this one from ABS with a .25mm nozzle and it turned out great. It's a lot smaller diameter than the design with a belt in it. I made the cup on the flex spline taller to help improve flexibility. I need to design in the pulley to the elliptical driver. This one is just a solid round section so I could play with it.
I might just install each design, one on each arm and play around with them to see how they perform. I'm also finding that packing the bearings is going a bit better now that I've done it a few times. Its a bit more tedious, but might actually be faster than installing all the hardware that goes into the belt design. I like the simplicity of the fully printed flex spline a lot.
@michaelr123 great job, this looks fine!
If you're interested in lowering fraction or get higher torque, there is an additional idea to optimize the teeth, so more teeth are in contact. The following patents (all expired) addressed this topic, maybe you are interesting in them:
patent inventor Ishikawa:
patent inventor Aubin:
I found the Aubin most promising, but I have no decision yet.
Another idea is to use more teeth (200) and then they can be lower, so flexspline doesn't need to flex as much. Additionally, the commercial ones have flattended teeth a bit to ease getting the necessary distance (another advantage is that if there is abrasion, the teeth can "sink in" a bit and still are precise). The many balls of the wave generator gives good control over where it flexes.
@michaelr123 my previous post were additional ideas which may not be necessary for your use case. But I have another idea which may be relevant:
In my own constructions I tend to separate mechanical hinges from the actuator, i. e. in your case the hinges from the harmonic drive flexspline+circular spline+wave generator. The hinge is also important for precision, so an option would be to develop something like a cross roller bearing, or alternatively, two ball bearings with some distance to stabilize the axis.
This is a great resource! thank you for sharing. looking over these patents really quickly I think I've seen some of this in a research paper in a mechanical engineering journal: https://journals.sagepub.com/doi/full/10.1177/1687814019850656
I noticed with the 0.8m teeth you need a lot of motion for the strain wave to have enough displacement to move over to the next tooth. It looks like these patents and design paper have some equations on how much of an ellipse you need for a give tooth size and arrangement. I wonder how much of this would be captured in a plastic gear? It looks like I've got a well defined sketch for these squared off teeth to draw something and try it!
One reason I went with the size (tooth and diameter) was to have a more reasonable sized drive and a gear ratio that wasn't quite so high. I imagine tooth width and diameter again determines holding torque. I also imagine a higher tooth count will run smoother, my current design is only 74 - 72t.
For your other question, the new design uses pillow blocks for the 20mm steel shaft. So now I'm coupling and directly turning that rather than trying to couple to the arm component directly. I haven't posted a picture of the most current design!
@michaelr123 thanks for the link to the article, the idea looks familiar. I am using matlab to crosscheck some calculation results, it's a great program.
+1 for matlab too! I was convinced I was going to go to my corporate job after college and convince them to give up excel for matlab, I now use excel for everything lol.
although, I can get a student license again for only $100 through my MBA program...
This post is deleted!
@michaelr123 said in 5 bar scara on duet3!:
student license aga
I bought the matlab with some toolboxes (Simulink, Vision, Image, Robotics). The Corke book (on his homepage) about robotics includes freeware toolboxes of vision and robotics (simpler versions of the matlab toolboxes) for matlab, because Corke developed the source of them.
A few more updates, I installed the original all printed flex spline as well as my updated design that uses a 0.6M tooth at 118t. It seems a lot smoother and higher precision which is heading in the right direction. The next thing I need to solve is connecting the flex spline to the 20mm steel rod. 6mm sets screws threaded into the plastic are not cutting it.
Here's a quick video showing how much flex I'm getting before the screws slip on the shaft:
This magnifies quite a bit once it gets all the way out to the end effector with the second arm set attached. I think I need to sort out this flex before I can expect any sort of reasonable print quality. At the moment, if the arm bumps into the model being printed at all it's just going to get knocked out of the way.
I'm working on better way to secure the flex spline to the rod which I think will help some. Otherwise a couple of other ideas I had:
- Large diameter / larger tooth profile flex spline system without raising the gear ratio any higher.
- Stiffen the ring gear part, there does seem to be some flex in this part as it is.
- add a second driver to the arm to double the gearing contact the rod sees.
- shorten the arms a bit. Maybe I need to take a small step back on this first crack at a scara arm.
@michaelr123 I'm constantly working at the same questions like you: where does the flex come from and what to do against it. Your ideas are all valid and worth a try. My own ideas, which overlap with yours partly:
- calculate and decide where the flex comes from. Some possibilities:
- long arm length => high torque => more vibrating/flexing => against: shorter arm
- material of flex spline teeth flex => against: material mix flex spline outer to flex, teeth harder, connection to shaft harder. Teeth harder e.g. metal/epoxy or similar containing on top of teeth or in direction teeth-to-middle of shaft
- hinge where the harmonic drive is mounted on flexes => press hinge to one side with eg spring so it doesn't change position when direction changes (ball bearings are pressed to one side always)
- my preference so far is a doubled arm (vertical)
Plastic has an E-module of about 3 GPa, compared to aluminium of 70 and steel of 210. E-module is a number to calculate how much material bends under force, so choosing something harder may fix the flexing. Of course you want a flexspline to flex, so the teeth shall be hard and the inner ring flexible. There are thermosplasts to be 3d printed and hard at the same time, this would be an option, besides using alu/steel. My own path is the (spring-)steel way.
Some of the commercial harmonic drives have about 200 teeth, and this a number which pleases me, because one can produce them easy with 200-step steppers. But this will not solve the flexing, only make it more precise.
I can't remember whether I have already written it, I tend to separate hinge mechanical construction from the actuator part:
- hinge, arm as stable as possible
- actuatator, teeth as precise as possible
This separate handling makes analyzing where flex comes from easier.
In your case, I suspend the flex of the teeth and/or flex of the big ring (= the flexspline part which is between teeth and shaft). Maybe it helps to make it stronger (=thicker and reinfoces by eg spring steel) to flex less.
A final thought: it always help me to imagine that I am a part of the mechanism and how do I act/react: when there is force to the arm, where does the force go? Here it goes to the circular-spline versus flexspline teeth ("horizontal" in respect to teeth, to the flanks of the teeth), so how to enforce it and remove play? Maybe there is teeth-teeth play also, then there needs to be more force from flexpline in direction of circular spline (vertical to shaft in direction outer). More engaged teeth (as described in the patents) will help as well. Another possibility is to make the teeth steeper (but not too steep, as they need to meet them), because steeper meens to have more force and precision. You can start mixing steep with less steep (steep for force and precision, less steep to make sure the teeth meeth each other. One tooth off would be a desaster for precision*)).
*) when mixing, be aware to jump the right amount after each round into the same kind of teeth (eg 200-204 and two kinds of teeth, this should work).
I find harmonic drives fascinating because of the following idea in the image:
- green is the force of the wave generator pressing the flexspline teeth against the circular spline teeth. This defines the position of the teeth and is with low pressure. It also hinders position change with low force (detent torque of stepper may be enough as brake).
- red arrow is the force of your arm sideways to the flanks of the teeth
The different direction of the forces allow to optimize them separately. Your current problem is with the red arrow. but maybe the green one has not pressed the teeth enough.
All great points. First I need to develop a clamp that fixes the output to the shaft. From there I can figure out where the flex is coming from. I can take another crack or two at improving this aspect of the machine, but I may just need to get it actually up and running to see where I'm at. I may also need to humble myself a bit and scale down the arm depending on how testing goes. I think this is the best iteration from a stiffness and resolution standpoint.
I could switch from ABS to PLA on the ring gear to have a stiffer material there to your point. I'll also shrink the height of the flex spline as I don't think it's necesary to have so much length there with plastic. I also would like to mount the ring gear directly to the 80/20 extrusion while also further increasing the diameter. I'll need to reconfigure the motor mount a bit, but all those changes should help. Maybe I'll try making a huge harmonic drive just to see how it performs under the sort of torque. 200t at a .8M gear tooth or something like that.
Another idea I had was to just print the spline without the cup at the bottom. Then I could use a steel hose clamp to fix the the flex spline tightly to a set block that can grab onto the 20mm shaft. I'll draw up a picture here to explain, but it would also help reduce the amount of printing that requires a .25mm nozzle to help speed up prototyping.