5 bar scara on duet3!
-
Alright folks, I made some more progress, but I still can't get the machine to accept a small G1 movement. I'm also noticing as I jog a motor in a direction that I would expect it to be increasing X and Y, both are decreasing. The robot may think it's flipped in space somehow?
Here's my updated firmware and a picture of the robot so we can overlay the the coordinate system over the top to double check my numbers:
M92 X145.833 Y145.833 ; set steps/deg - this is pretty close based on some initial testing!
M350 X16 Y16 I1 ; set microstep, with interpolation onM569 P0 S0 ; Drive 0 (X) goes forwards (left motor)
M569 P1 S1 ; Drive 1 (Y) goes forwards (right motor)
M574 X1 Y1 Z0 S1 ; proximal L and R homing switches trigger when the arm is at M669 B positions and are active high
M669 K9 X0:120 Y0:0 L2 P543.56:543.56 D543.56:543.56:0:0 B180:135 A0:180:0:180:0:180 C3:170:0:135 Z-1000:0:1000:1000
;A10:160:30:160:30:160
M203 X1000 Y1000 ; maximum speeds deg/minute?
M906 X1200 Y1200 ; set motor currents (mA)
M201 X80 Y80; Endstops
M574 X1 S1 P"^io4.in" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io0.in
M574 Y1 S1 P"^io3.in" ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io1.inM208 X1200 Y1200 Z800 S0 ; set axis maxima
M208 X-1200 Y-1200 Z0 S1 ; set axis minimaZ-Probe
M950 S0 C"io7.out" ; create servo pin 0 for BLTouch
M558 P9 C"io7.in" H4.75 F240 T12000 ; set Z probe type to bltouch and the dive height + speeds
G31 P500 X-45 Y-30 Z4 ; set Z probe trigger value, offset and trigger height
M557 X20:400 Y20:750 S50 ; define mesh gridthoughts? I'm guessing I'm pretty close but I've got something flipped around.
-
@michaelr123 I have not much time to help during the weekend, but when I first setup my 5 bar, the following procedure helped:
- lower all restrictions as M208 and angle limits
- make sure the endstops are triggered (watch status in DWC, the letters change color). Or call M119 endstop status in the DWC console
- place the positions somewhere in the middle of your print workspace (I mean: place the endstops in the middle, place the starting point of the endpoint in the middle of the print area), in a valid area of the selected workmode (see the 4 workmodes in documentation), so you can be sure not to be in some singularity area
- start with a small movement like G91 G1 X1
- then make bigger movements. If a straight G1 line is curved, you'll have probably placed the angles and positions to the wrong place, so the kinematics calculates wrong
And adding Z as drive is still my recommendation. (including M569 etc)
If the motors rotate to the wrong direction, just change S0 to S1 or S1 to S0 of the M69 commands.
For such long arms, I would place the starting points much farer apart like 500 mm (distance of the actuators, 500 instead of 120). I started with shorter arms from wood, 150 mm arms. With such long arms as yours, you could have additional problems like the steppers being too weak to rotate them precisely. In my experience it is better to start small and iterate to the target solution.
You can also recheck the paramters. M203 1000 is only 16 degrees per second, it is a slow movement.
-
I figured it out! I had the motors going backwards, so now a counterclockwise move is a positive. I also move the home position to the other side of the robot to minimize the angles when homed and changed the M574 code respectively.
Now on to tuning the arm lengths and angles so it'll draw straight lines!
-
@michaelr123 Well done!
My own first build produced very curved lines and were less than perfect. It may take a few tries before you get good results. I used a felt-tip pen at the endpoint position and draw the lines on paper.
-
Thanks! I went through and measured the angles and lengths as best as I could and made those updates. By measuring from the left motor shaft, I figure the machine is still reporting being about 30mm closer to the origin than it should be. I think my method for measuring the angles is fairly solid, my arm lengths might still be a bit off.
The centered, better looking T was with an improved pen mount compared to other lines on this sheet of paper. I figured for a 200mm command in both x and y I'm getting about 194mm of travel. This could be a bit of backlash or my measurement for my arms are a bit on the short side. That would maybe help tie up the difference I'm getting on that start position as well.
I've also got a better motor drive in the works. I'm going to work in a GT2 belt reducer that sits between the 40x20 framing. I'm shooting for a 27:1 ratio and then going down to a nema 17. This will shed some weight and improve my gear ratio and hopefully stiffness at the arm significantly. I may double belt it all the way through or just for the connection to the arm from the belt box (?). I've got parts on the way and currently printing parts for it right now. I'll post pictures once I've got that all worked out!
-
@michaelr123 I once found this idea for belt based antibacklash, but the link I stored is not valid any more, so I cannot credit it:
The original link was: https://www.factorydaily.com/topics/backlash-free-rotary-table
and the original comment was:
"How about this concept?
I'm sure it has been done before, but if the two blue pulleys were preloaded toward each other, and allowed to float, then there should be zero backlash, and decent stiffness as you have one straight tensioned leg on each belt. For more reduction, two stages could be used. The pulleys are just extra wide, standard pulleys.
The trick would be coming up with a floating tensioner that would stay in place. I suppose that three belts could be used, the center one twice as wide as the outer two, canceling out the torque caused by the offset between the belts.
Keith"I think this is a very good idea, because in my understanding, the most backlash occurs from the lower tension of one side when changing direction. So if tension is from both sides, this should solve the problem. I've not tested it however. Maybe you want to test it.
-
That's an interesting idea. I bet I could implement something like that. It's like a rotational dampener to help eat up any wobble from spring in the system. I'm working off of 200mm continuous belts for now as those are the most economical in 10 packs from amazon. I'd be happy to source some different sizes if needed though!
Here's a snapshot of the belt box I'm working on right now. It's just a series of 3:1 belt reducers to the output. With an overall ratio of 27:1 there's no way I'll need a nema 23 anymore, so I'm swapping those out for nema 17's and I'll reuse the 23's for the z axis which is going to need some power to lift this whole system! It's using 5x100mm shaft for the idlers, and some printed bearing blocks fixed between the 80/20 frame.
This is what I was talking about with dual pulleys. I couldn't find much info on the strength of 1x 6mm wide belt. it seems like 6mm gt2 belt is paired with nema 17's but folks tend to go up to 9mm wide belt with nema 23's. We'll see what where we end up, but it wouldn't be hard to add an additional set of belts either to just the arm or the output arm and the stage before that to add some additional stiffness.
-
@michaelr123 it will be interesting to see the results of your tests. Please consider to use 0.9 instead of 1.8 degree steppers (400 instead of 200 steps per rotation). They also have +5 % tolerance for a full step, but that's better precision for the fewer rotation degrees of one step.
I've used a two-stage belt gear with 1:3 and 1:10 instead of three stage 1:3, 1:3, 1:3. The 1:10 can then be an open belt, steel based. (I didn't find closed belt steel belts. Those are the white ones). One topic is how to get good tension (changing the distance of the pulleys, or changing the attachments of the belts).
-
Hello!
After a bit of a hiatus, I've got something to show off again! I tried my belt-box idea, and that was terrible. There was a ton of backlash as the belts wound up with tension. Instead I decided to make a new gear box with a finer toothed gear (module 1 rather than 2) and a 30:1 ratio to get a ton of precision and torque. I also switched to nema 17 motors which is working great! So now I can move the nema 23's to the Z axis.
I need to get some pillow blocks in for the 20mm rod, but this worked really well just spinning in the static rod mounts I had. I was having a hard time connecting to the tube clamps, so instead I found some 20mm shaft collars that were 32mm for their OD's. This created a static point to mount to the 20mm solid rod which is much easier to mount a gear to.
One thing I could use help with is some sort of rotational dampener. I've got my acceleration and jerk settings down pretty low for 100-150mm/s print moves which is ok (accelerations to 250mm/s^2 and jerk to 2mm/s^3). I'm hoping the pillow blocks I'm getting will just be a bit sticky to introduce some friction to reduce wobble around corners. Ultimately this will be running 1mm nozzles and up, so I don't expect super fast print speeds anyway, but the stiffer I can make the system the better print quality I'll get out of it.
Possible upgrades are to come up with a stiffer design for the gear box housing as I can see it flexes a bit as the gears load up. I'll probably move the idler compound gear to an 8mm shaft rather than a 5mm shaft at some point too.
From here, I think I'm ready to start getting the 80/20 framing sorted so it can be mounted to the Z axis which I need to start putting together and sorting out as well!
-
@michaelr123 said in 5 bar scara on duet3!:
come up with a stiffer design for the gear box housing
nice to hear that you make progress.
For stiffness, bending depends on e-module of materials, which is about 1 to 3 GPa for plastics, 70 for aluminium and steel 210. So connecting two points of the axes with an aluminium construction would be better than plastic housing.
You could use your two horizontal aluminium extrusions and assemble the two steppers upside and the other one downside, so the two big wheels are not in eachs way and use the aluminium extrusion to hold the axes in place.
The red lines are the axes connected to the extrusions. M569's direction must be reversed than by changing the S parameter.
To connect aluminiun - holder - ball bearing - shaft I used a SHF16 or other depending on the shaft diameter. SHF is similar like your SH holders, but other orientation (or fixed shaft and wheel on ball bearing, the wheels connected). Anyway, the shaft should be fixed in place at two points. Tilting the shafts or hindering it will be critical for all XYZ positions, because the arms leverage small tiltings. The longer the arms, the more. (I use flanged ball bearings like F688 to hinder it so slip through).
When the axes are stable and the hinges don't have play, I think you'll not need a dampered rotating axis anymore. You could additionally lower acceleration values to have lower vibrations, if acceleration is the cause.
-
@michaelr123 if you ask me for another recommendation ( ) , e.g. optimal gear ratio for the wheels, I would say calculate the extrusion rate you can get with the 1mm nozzle and calculate back how the maximum speed of the arms can be. Then choose as much high ratio as possible, maybe 1:50 or even 1:100, because you'll get higher precision.
-
@michaelr123 another idea if you 3d print your wheels anyway. A construction like this one:
two wheels, the springs make sure the one is pressing against the teeth at one flank/(edge) and the other wheel against the other, so no backlash. (but the newest RRF has backlash correction, this may be no problem anymore)
-
I agree on mounting the bearings to the aluminum extrusion rather than into a printed part. I'll move to that style of construction on the next redesign.
I'll use an 8mm SHF bearings for the idle compound gear and then figure out how to mount the motor directly to the extrusion. Ideally I could even put a bearing on the other end of the shaft to eliminate the cantilever for the drive gear.
We'll see what I can do with the gear ratio. I'm not sure I want to go much smaller than 16t on the small gears, though 12t gears would get me to a 53.333 ratio and 14t gears would take me to 39.18... I'll think more on that, but I need to be careful how much larger the gears get as I need room behind the assembly to run the Z-axis equipment which is what I'm working on today! more pictures to come!
So far the double helical gears are getting me what I perceive as zero backlash, we'll see how those wear in. I know I want to stick with one idler shaft as having 2 in the last setup was flimsy and difficult to manage belt tensions across.
-
@michaelr123 said in 5 bar scara on duet3!:
So far the double helical gears are getting me what I perceive as zero backlash, we'll see how those wear in
Didn't know these "herringbone gears" were special regarding backlash? They are known to have low torque ripple and don't put sideload on the gear...
If you have finalized gear design, try to get them in PA-like resin. I guarantee, it's a hole new level of accuracy, like FDM printing with a 0.04mm nozzle and 0.05mm layer height.
And this PA-like stuff has nylon-equivalent characteristics.
-
I guess technically any gear can become "zero backlash" if you drive them together a bit by shortening the center-center distance between the gears. I thought helical gears had some benefits for backlash due to the constant contact, but engineering school was a long time ago and I'm not certain on that.
Ideally I would buy machined plastic gears or get a strain wave / cycloidal gear box up and running:
https://www.youtube.com/watch?v=-wFO_AbnbZQ&ab_channel=ZeroBacklashUltimately it comes down to the artifacts in the prints, but so far the 30:1 compound gears seem pretty good just from jogging the system around. These gears are all printed from polymaker ABS, but the final rendition will be PA6-CF if I decide to stick with a compound gear box.
As for resin printing, I haven't gotten into it so I can't comment on that, though the resolution from those machines is super impressive. What brand of resin do you recommend?
Thanks for the input!
-
Anybody know if Koal design is on this forum at all?
https://www.youtube.com/@koaldesigns
His machine was a big inspiration for me and it looks like he got some good results with his strain-wave reducer design before moving on to a different project. I've got a bunch of 5mm bearings laying around now that I could repurpose for something like this!
-Michael
-
@michaelr123 there was some discussion around July 2022 and 2020 here https://forum.duet3d.com/topic/17421/robotic-kinematics
harmonic drive vs cycloidal drive. -
@michaelr123 this is my current list about harmonic drive on thingiverse, my comments are in german, sorry. I've developed one my own, but didn't publish it. I want to do it when I'm satisfied with the result. I've marked myself the good ones (in my opinion) green, they are the ones from bartdring, Andy, Trollox, ReDesign, Dexter/Baxter, m2rechtin, Cameron.
vermutlich gute sind grün markiert
sortiert nach Jahr (und thingiverse Nummer)jdow, 2012, innen 2 Kugellager
- https://www.thingiverse.com/thing:20177
- YT 3D printed Harmonic Drive
emmett, 2014, innen 2-er planetary, nur Minimalteile
- https://www.thingiverse.com/thing:219779
- YT Preassembled Harmonic Drive
Alphie, 2014, innen 2, mit großem Kugellager (ähnlich cross roller)
- https://www.thingiverse.com/thing:391538
- YT 3D printed Harmonic Drive
mtourne, 2016
- https://www.thingiverse.com/thing:1622691
- stl, Solidworks
- letzte Version auf https://github.com/mtourne/mecha/tree/master/Harmonic drive
bartdring, 2016, innen 10 Kugellager
- https://www.thingiverse.com/thing:1966551
- stl things
- 1:39
- YT 3D Printed Harmonic Drive
Andy, 2016, innen 2 Kugellager
- https://hackaday.io/project/18388-mammoth-arm
â—‹ If the payload too heavy , slipping is happening. This is the first version, next version I will trying to move the heavy motor back. But that will introduce new transmission system, like timing belt.
Simon Merrett, 2017, innen 2 Kugellager, FlexSp mit belt
- https://www.thingiverse.com/thing:2013137
- https://hackaday.io/project/19405-strain-wave-gear-with-timing-belts
- https://hackaday.com/2017/01/17/3d-printed-strain-wave-gear-needs-your-help/
- Updated model, 2018, YT Strain Wave and Hypocycloidal 3D Printed Gears Update
DevonHsin, 2017, innen 2, FlexSpline HTD-3 belt
- https://www.thingiverse.com/thing:2086118
- stl thingstodo auswerten:
https://www.thingiverse.com/thing:2107873
https://www.thingiverse.com/thing:2129630
https://www.thingiverse.com/thing:2255991
https://www.thingiverse.com/thing:2626728
https://www.thingiverse.com/thing:2282268Trollox, 2017, für Nema 23, innen viele Kugeln
- https://www.thingiverse.com/thing:2735297
- stl, step, easm, pdf Dateien
ReDesign, 2018, innen 12 Kugellager
- YT 3D printed harmonic drive with servo motor
- YT 3D Printed - Harmonic Drive
- bisher keine anderen Quellen zu finden (Doku, src)
Brian Benchoff, 2018
- https://hackaday.com/2018/06/19/printing-strain-wave-gears/
Johannes Hassler, 2018, innen 2
- Version 4: https://hackaday.io/project/120377-3d-printed-strain-wave-gear
- https://github.com/HasslerEngineering/3D-Printed-Strain-Wave-Gear/
Dexter, Baxter, Haddington Dynamics, 2018
- https://hackaday.com/2018/11/15/an-in-depth-look-at-dexter-the-robotic-arm/
- Encoder: https://github.com/HaddingtonDynamics/Dexter/wiki/Encoders
Levi Janssen, 2019, innen 2
- YT Making a 3D Printed Harmonic Drive Using a Timing Belt
ymtlab (YT: YMT Lab), 2019/2020, innen 6 Kugellager
- https://www.thingiverse.com/thing:4505585
- YT 3D Printed Strain Wave Gear
- YT 3D printed harmonic drive (Ring type test)
- 1:39
m2rechtin, 2020, innen 2, 2 Versionen rund und eckig
- https://www.thingiverse.com/thing:4686542
- stl
- YT DIY 3D Printed Harmonic Drive (Strain Wave Gearing)
Cameron, 2020
- https://hackaday.io/project/174195-embedded-strain-wave-actuator
- hohe Payload 3 kg für 6 DOF robot
Arcannys, 2021, FlexSpline mit belt
- https://www.thingiverse.com/thing:4915441
- kein Video
3DprintedLife (YT Name), 2021, innen 2 Kugellager
- https://hackaday.com/2021/05/24/a-high-torque-3d-printed-harmonic-drive/ (Autor Danie Conradie)
- hp/source: https://github.com/DDeGonge/OS-ARM/tree/main/cad/HarmonicDrive75mm
- https://discord.com/channels/747166166459351121/747180569984761937
- YT My 3D Printed Harmonic Drive Performs Surprisingly Well! -
@michaelr123 said in 5 bar scara on duet3!:
What brand of resin do you recommend?
I just started exploring resin printers in december 22, so not much to recommend. I chose 'Sunlu' ABS-like because I'm happy with their filament.
-
Thanks for the resource!
I finally figured out how to find 3mm-GT2 closed loop belts on Amazon, lol. Have you seen any difference between HTD and GT2 belt profile for this application? This could be getting too nit-picky... but more importantly you can get 12-15mm wide belt in 3mm pitch! My issue was that I couldn't find wider 2mm GT2 to make one of these belted harmonic drives. I live the idea of a gear or a belt reduction into the harmonic drive as well. This quickly gets you to a gear ratio over 100:1.
My ultimate plan now is to wrap the harmonic driver around the 20mm rod I'm using, and then have a belted connection to a motor off to the side. Super clean and compact, but more CAD and prototyping... lol