Smoothing Out the X Axis Motion | Surface Grinder Automation 7 | Clearpath RAS

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 มิ.ย. 2024
  • Support Clough42 on Patreon: / clough42
    Today we're finally getting the motion of the X axis on the surface grinder smoothed out. The springiness of the mechanism has been wreaking havoc with the Clearpath servo control algorithm, but it turns out they make an enhanced version of the motor with a feature called Regressive Auto Spline smoothing that makes a world of difference.
    Teknic's Regressive Auto Spline video: • ClearPath's RAS: Smoot...
    Tools used in this video:
    *This site contains affiliate links for which I may be compensated
    Bondhus Metric Hex Key Set (Amazon*): amzn.to/3eqZzwb
    Bondhus SAE Hex Key Set (Amazon*): amzn.to/3h9bJLZ
    ABS-GF25 Filament(QIDI*): shrsl.com/45hak
    Q1 Pro 3D Printer (QIDI*): shrsl.com/4gn2b
    Bambu Lab X1-Carbon: bit.ly/3XzuET9
    Bambu Lab X1-Carbon Combo: bit.ly/3JzYQaX
    Bambu Lab P1S Printer: bit.ly/3OYgcjT
    Bambu Lab A1 Mini Combo*: bit.ly/3Q74t2P
    Bambu Lab Filaments: bit.ly/3pusOqd
    Raw Kevin MacLeod (incompetech.com)
    Licensed under Creative Commons: By Attribution 3.0 License
    creativecommons.org/licenses/b...
    00:00 Intro
    00:49 Motors and Switches and Electronics
    02:13 Simple Firmware to Test
    04:44 Testing Speeds and Accelerations
    08:44 What is going wrong?
    10:38 Regressive Auto Spline Motion Smoothing
    17:47 We can go much faster with RAS
    25:00 Conclusions

ความคิดเห็น • 246

  • @grantsaviers6557
    @grantsaviers6557 2 หลายเดือนก่อน +7

    A few thoughts about further exploration and tuning of the loop. The cable elasticity is likely the major issue, but the cog belt and table suspension are also in the loop (and variable part mass as others pointed out). One idea is to mount an MEMS 3 axis G sensor (or 6 DOF) to the table and see exactly what is going on there with the tuning. The dynamics may include vertical table motion, as it's unlikely the cable force will be at the center of mass. Then try adding a part to be ground. That is ultimately what matters for grinding to a tolerance & finish.
    Another perspective on RAS is it controls the frequency spectrum of applied force. Reducing jerk and further derivatives reduces the higher frequency inputs. If you don't put them in, they don't need to be controlled out. Mechanical structures usually have a huge number of resonance modes, and stable control of them is the classic control loop challenge.

  • @JustinDavidow
    @JustinDavidow 2 หลายเดือนก่อน +43

    I expect that RAS setting is going to need to increase once jigs / work is added to the chuck. These will increase the moving mass and thus the "slip" on the spindle + stretch in the cable drive.

    • @alexwbakker
      @alexwbakker 2 หลายเดือนก่อน +4

      As someone using RAS on a CNC router and a Bed Mill, both required decreasing acceleration and increasing RAS a bit once you mount vises, tools etc.

  • @candofondoo
    @candofondoo 2 หลายเดือนก่อน +25

    The primmer on acceleration, jerk, and application to motion systems was really nice. Thank you.

    • @billstoner5559
      @billstoner5559 2 หลายเดือนก่อน +1

      I agree and intend to better understand acceleration and jerk as it relates to the x and y axises on a 3d printer. Much smaller loads, but still a springy system. Thanks for the primer, James.

  • @MaximilianoKorp
    @MaximilianoKorp 2 หลายเดือนก่อน +3

    I don't know if it was intentional but "Something about fitting a fourth order polynomial spline, that sounds great" sounded so saucy and had me rolling

  • @patchvonbraun
    @patchvonbraun 2 หลายเดือนก่อน +41

    We're using ClearPath motors (SC-HP series) on our project (restoring a 12.8m satellite dish for radio astronomy). The API we use (sFoundation) has an API function that lets you query the encoder resolution so you don't have to wire it in to your code. We're taking our project very slowly--the dish weighs in at a svelte 5.6 tonne. We had a crash a few weeks ago--not due to the motors, but due to a failure in our mechanical system design. Kinda scary, but the only thing really damaged was our egos, and the 50+ year-old crash buffer at the bottom of the travel. We're using fairly modest motors (a roughly 3/4HP on azimuth, and 1.3HP on elevation), but with extra gearboxes to boost torque. It's working well, although it will never win any slewing-speed contests :)

    • @AnnaVannieuwenhuyse
      @AnnaVannieuwenhuyse 2 หลายเดือนก่อน +2

      Fascinating, thanks for sharing!

    • @nathaniellangston5130
      @nathaniellangston5130 2 หลายเดือนก่อน

      I'm a machinist for a telescope called the GBT, not sure how familiar anyone is with it. But its a pretty big telescope. The large drive motors couldn't be replaced by Clearpath servos but as it has active surface actuators and uses worm driven "servos" from the 1990s to position the subreflector I have always wanted to retrofit. Its pretty awesome that you are actually retrofitting telescopes. We've got three small 85ft scopes that i'd love to swap out the motors for Clearpaths just for a proof of concept.

    • @patchvonbraun
      @patchvonbraun 2 หลายเดือนก่อน

      Hah! I've been to visit the GBT 20(?) years ago. This dish started out life as a NATO ground terminal, and hasn't moved under computer control since 1997, with MUCH larger motors. Are you related to Glen Langston?

    • @nathaniellangston5130
      @nathaniellangston5130 2 หลายเดือนก่อน

      @@patchvonbraun I am related to Glen Langston! He is my father! Small world! I'm really glad to hear there is work going on to give the old telescopes new life!

    • @patchvonbraun
      @patchvonbraun 2 หลายเดือนก่อน

      @@nathaniellangston5130 I sent you a friend request on FB.

  • @colinrhodes643
    @colinrhodes643 2 หลายเดือนก่อน +19

    James, you absolutely work and think on another level but provide a wonderfully clear and detailed description even for the complex math and physics behind it. Keep doing what you do

  • @LordSaliss
    @LordSaliss 2 หลายเดือนก่อน +1

    You could always design in a 3rd shaft for the X axis pulley drivetrain with the new shaft down below. Make the servo go from its small pulley down to a big one, that big one is on a shaft with a small pulley on the other end, and have that new small one go to the existing X axis large pulley that goes into the machine. This would double your gear ratio which gives you more torque and will let you easier control the motion inertia with a smoother accel/decel curve. You aren't using all the motor RPM right now, so you can afford to cut the max RPM in half to double the ratio. When I did this project I had to use a higher ratio than I thought due to these similar inertia problems of the weight of the table and the springiness of the wire. By doubling the ratio the motor can take more time ramping speed down which does help with the inertia.
    Eventually you might want to do what I did and replace the wire underneath with a leadscrew and lead nut. The lifetime of the drive wire became too low with a servo due to the higher speeds we tend to run over what you do by hand. The leadscrew fixed this lifetime issue. I first started with a 3/8 screw, because its weight limit was higher than the table. However, the inertia was so high, it overloaded the lead nut too much and caused the nut to fail and strip out after a year of use. I replaced the screw and nut with a 3/4" one and so far (4 years now) I haven't had to replace a single thing again.
    The lead screw is mounted on each end to the end of the surface grinder table, so it doesn't turn. I have two bronze lead nuts mounted in a timing pulley, with the ends of the nuts sticking out of the pulley. The motor has a pulley on its output shaft that connect to the pulley holding the lead nuts with a timing belt. I have two mounting plates mounted to the table with ball hearings mounted in them, and the ends of the lead nuts are held by the ball bearings. This keeps the lead nuts and pulley centered properly on the lead screw and keeps the pulley from being able to travel left or right, since we want it to stay in place and drive the lead screw through it.
    I used a 3/4" .250" lead screw, which with my motor (3000RPM max) gives me a 12.5" movement per second on my surface grinder X axis. This was enough for me, but if I was going to do it again I think I would use a 3/4" .333" lead instead to have a but more room to play with things.

  • @uncledansworkshop4776
    @uncledansworkshop4776 2 หลายเดือนก่อน +4

    James - Great video. Your research took me back to when I was 17 and learning basic calculus. "This is hard, where am I actually going to use this?" Then one day we learned the relationship between displacement, velocity and acceleration as derivatives and integrals of each other. Seventeen year old nerd mind blown! Fast forward 41 years and most of an engineering career and at age 61 you point out that there are at least two more useful derivatives to be had when it comes to springy systems. Old nerd mind blown once again!
    Before you started showing ClearPath's solution to this problem, my mind was running towards a solution in the control software. Since your stops won't be moving during a run, my thought was to run one slow pass at the start of the run to learn the positions of the stops, then use those known positions as part of your control loop and predictively change velocity and acceleration as the movement approaches the stop. Move 95% of the distance at full rates, then reduce acceleration for the last 5%, then same going the other way, something like that. Just check the end stops on each loop to make sure that we didn't miss a count somewhere and as a safety, but since those are servos, the only error might be mechanical slippage.
    One last thought - the table and vise are fairly massive, but do you think different tuning might be needed with a heavy object added to the system? I'm thinking a large angle plate or sine bar setup plus some heavier part to grind might add enough mass to the far end of the sprung system to mess with the control parameters.

  • @b2gills
    @b2gills 2 หลายเดือนก่อน +2

    I would attach a stop for each of your stops. Basically make it so that you don't have to rely on seeing the marks you added, as you would be able to just move your switch stops to a stop that doesn't ever move.

  • @seabreezecoffeeroasters7994
    @seabreezecoffeeroasters7994 2 หลายเดือนก่อน +6

    I am having flashbacks to Mech Eng and Mechanics of Machines and Engineering Calculus from nearly 40 years ago. Lucky I am old and have forgotten most of the horror 🤣

  • @jonnafry
    @jonnafry 2 หลายเดือนก่อน +4

    Always enjoy content that leaves me knowing more about a subject than when I started watching. This video was most enjoyable !

  • @Phiz787
    @Phiz787 2 หลายเดือนก่อน +3

    Wow! Just today I auto-tuned some Nema 34 clearpath servos for my CNC milling machine and noticed the RAS 16ms default.
    Now I know what that's doing! Thanks for the education!

  • @JCWren
    @JCWren 2 หลายเดือนก่อน +9

    You can see that torque in the belt when it reverses. Very impressive. Also, they need to remove the comma after "proprietary" on page 199.

    • @joell439
      @joell439 2 หลายเดือนก่อน

      😂

  • @johnmerrill6999
    @johnmerrill6999 2 หลายเดือนก่อน +14

    If you're writing in C++, you might also mark the external state variables as volatile. Otherwise, the optimizer might make assumptions, which could lead to odd (and potentially dangerous) bugs.

    • @PeregrineBF
      @PeregrineBF 2 หลายเดือนก่อน

      Like infinite loops being undefined behavior if the don't have side effects. Writes to non-volatile variables are not side effects.

  • @dynamiteralph
    @dynamiteralph 2 หลายเดือนก่อน +1

    In college, in a cam design course, we looked at jerk, and its derivative ( we called it jounce) in order to smooth the entry ramp on the cam curve. The goal was to smooth the entry into the cam, reducing the float of the cam follower.

  • @garnergc
    @garnergc 2 หลายเดือนก่อน +5

    I’m quite spoiled using Kinetix motion servos as a System Integrator. Do a Motion Axis Move to a position in x amount of time, set it to S-curve and let it rip. A the hiperface absolute encoder makes indexing bulletproof. Throwing excessive acceleration at a wet noodle axis doesn’t always work, but it’ll be interesting to see how the dynamics of the system changes when a workpiece is added and the wheel is engaged because the resonance frequency shifts. Also the forward and back directions will see different forces because of the grinding wheel engagement. Will be great to see the final results

  • @francisrampen9099
    @francisrampen9099 หลายเดือนก่อน

    I have been thinking of doing the same thing with my Landis 618. Thank you so much James - you probably saved me weeks of faffing about when I finally get around to it. I will only likely do the x axis. Awesome channel.

  • @thetooth
    @thetooth 2 หลายเดือนก่อน +3

    Motion control is an incredibly cool subject to look into. For a project I have going at the moment I'm using AC servo drives which have absolutely terrifying trapezoid performance due to the winding voltage, instead of doing jerk limiting within the motor PID I'm doing it as part of the trajectory generation, this allows for optimizing within the context of the planned path. So you can have a highly damped control system where you can have the motor track a target of arbitrary error and acceleration and all of the motions between those errors are smooth and jerk free. You can also modify those constraints on the fly, so in the case of your surface grinder you would switch to a dynamics profile optimal for the turnaround point when the limit switch is triggered and then after the velocity is reversed switch to a purely trapezoid profile so that the target velocity is hit much faster, would allow grinding a part at the full width of the table working area without creating hot spots at the edges.

  • @gwharton68
    @gwharton68 2 หลายเดือนก่อน +4

    Always a good day when you learn something.

  • @SimonB6706
    @SimonB6706 2 หลายเดือนก่อน +2

    Easter morning and I've learned something!!! Snap, crackle, pop! Fabulous.

  • @danw8404
    @danw8404 2 หลายเดือนก่อน +3

    James thank you.....I learn so much from you.

  • @SomeNameGoesHere
    @SomeNameGoesHere 2 หลายเดือนก่อน +1

    Disney talks about the visual impacts of this if you ever see the behind-the-scenes tours or videos. They refer to it as Audio-Animatronic Compliance in regards to addressing jerky limb movement when trying to make their attractions move faster.

  • @AmateurRedneckWorkshop
    @AmateurRedneckWorkshop 2 หลายเดือนก่อน +1

    Success always feels good. Thanks for the video keep on keeping on.

  • @mattholden5
    @mattholden5 2 หลายเดือนก่อน

    So much insight into the black art of motion control tuning. Teknic's videos makes it look unbelievably easy, your explanation makes their results understandable. Now I know specifically what I'm trying to affect with RAS/jerk/jerk derivative. Thanks James.

  • @KPNH
    @KPNH 2 หลายเดือนก่อน

    Excellent work, sir! 👍👍

  • @rogertrett406
    @rogertrett406 2 หลายเดือนก่อน

    I learnt a lot from this video. Many thanks.

  • @rexmyers991
    @rexmyers991 2 หลายเดือนก่อน

    Hooo - Boy! James, you are really showing me how uneducated I am. I am a retired airline pilot. I was really good at carrying folks safely in really bad weather. That skill now looks like kindergarten level. Thanks for explaining.

  • @kashifkhan3040
    @kashifkhan3040 2 หลายเดือนก่อน +1

    perfect job for a viscous coupling :)

  • @ftownroe
    @ftownroe 2 หลายเดือนก่อน

    I don’t own a surface grinder but if I ever decide (and have the Benjamin’s) I would consider this model because you have already worked out all the bugs to automate its function. Another fantastic video.

  • @Icaros03677
    @Icaros03677 2 หลายเดือนก่อน

    Thank you very much for this video!

  • @edwardaloftis6705
    @edwardaloftis6705 2 หลายเดือนก่อน

    Cool project.

  • @philareilly
    @philareilly 2 หลายเดือนก่อน

    @patchvonbraun now that’s a series of videos I would love to watch

  • @Skyliner_369
    @Skyliner_369 2 หลายเดือนก่อน +5

    hilariously, I would have coded the RAS myself in the controller. not too hard to implement. especially if the accel can be directly coltrolled by code and not just constants

    • @marclevitt8191
      @marclevitt8191 2 หลายเดือนก่อน +2

      He let Teknik program it in-a better solution and cheaper.

  • @jackpledger8118
    @jackpledger8118 2 หลายเดือนก่อน

    This went way over my head.

    • @user-de8bu5es6f
      @user-de8bu5es6f 2 หลายเดือนก่อน +1

      So, Buy thicker sole shoes.
      It wont help because the knowledge will go straight through your head like a Quark.
      Dont worry, you wont feel a thing.

  • @jbrownson
    @jbrownson 2 หลายเดือนก่อน +1

    Very interesting

  • @DanBowkley
    @DanBowkley 2 หลายเดือนก่อน +6

    How hard would it be to get a DRO scale feeding back into the servo control? Move the feedback out to the end of the line and you can easily tune a PID for the springiness.

    • @marclevitt8191
      @marclevitt8191 2 หลายเดือนก่อน +1

      I don't know, sometimes more data is not better. Perhaps only using glass scales and bypassing the motor's internal ones? Is that what you meant? I believe that Leadshine’s latest hotness EtherCAT servo can take both inputs.

    • @DanBowkley
      @DanBowkley 2 หลายเดือนก่อน

      @@marclevitt8191 Pretty much yeah. Even the optical encoder strip from a printer (if it were long enough) would be plenty. Just enough to tell the brains where the table is. I just suggested a DRO because there's probably one readily available inside a machine shop and it's probably meant for that role. Interfacing it shouldn't be too hard.

    • @macaroniandtuna
      @macaroniandtuna 2 หลายเดือนก่อน +1

      I looked into this question several years ago, and the consensus seemed to be that it's technically possible, but not a good idea for some reason i couldn't figure out (maybe related to position hunting), which is why basically no motion controllers below and up to light industrial usage support it.

  • @davidblumer6509
    @davidblumer6509 2 หลายเดือนก่อน

    Thanks for the educational video today. It occurs to me that the surface grinder presents a special case where the motion is repetitive for each job, so after the initial (or a few) traverses are made, you could take advantage of that by allowing the motor to learn when it needs to slow down prior to the reversals to prevent the torque excursions by using an algorithm in your code. Here is what I'm thinking: Sum the number of motor steps for each motion for the first, say 5 cycles to take advantage of statistics, and calculate the average for each direction. Then, following the 80/20 rule, start ramping the velocity down at the 80% of the full average number of steps (for that direction) to some chosen velocity that the motor can accurately accommodate with minimal excursions. I think that would allow both a faster velocity and acceleration while maintaining good torque profiles and reducing the stress on the motor. Just a thought.

  • @Hossimo
    @Hossimo 2 หลายเดือนก่อน +5

    Im honestly supprised you didn't add a jerk paramiter to your code so you could tune it on your own. On one of my 3D printers I compiled my own marlin firmware and apent some time messing with the jerk setrings and it was easier then i thought it would have been

    • @carlholmberg1576
      @carlholmberg1576 2 หลายเดือนก่อน +1

      Weirdly enough, the definition of the jerk parameter in marlin is not the same as jerk in physics. In marlin, jerk is defined as the "maximum instantaneous change in velocity" instead of the rate of change of acceleration. Seems to be from an early misapropritation of the term which has then stuck around.

    • @Hossimo
      @Hossimo 2 หลายเดือนก่อน +1

      @@carlholmberg1576 great to know thanks for that.

  • @davidawaters
    @davidawaters 2 หลายเดือนก่อน

    Nice! I wish I had this info a couple of years ago when I built a couple of machines for a local manufacturer. It had a springy x axis (6’ of 0.25” wide timing belt). It had very little mass/speed/force but I had a lot of problems with resonance. A combination of a much stiffer belt and auto tuning finally took care of it, but I would have much rather just swapped to a RAS-able motor if I knew about it.

  • @akr1865
    @akr1865 2 หลายเดือนก่อน

    Another great video James. Something to be aware of at that fast of a speed on the X-axis is the speed of the grinding wheel vs longitudinal movement. If it's too fast you will not leave enough time for the wheel to do its work. Think of climb cutting on a mill at a rapid feed rate. Every "automatic" grinder I've ever used had a much slower x- axis feed rate. Also, as you may already know, things can go wrong in a hurry when surface grinding, so an external control outside of the e-stop would be helpful to vary the speed.

  • @merlinmagnus873
    @merlinmagnus873 2 หลายเดือนก่อน +1

    Definitely worth the extra money. I guess another option would be mechanically damping the torque spikes with a hydraulic torque limiter. One out of the cooling fan on an engine could be retrofitted to work. The damping effect is mechanically variable and controlled by a bimetallic thermostat which could be replace with a lockable thumbscrew adjustment. For extra credit, you could use a centrifugal actuator to mechanically emulate those rounded corners on your torque graph making it a purely electromechanical system with no controller.

    • @jhbonarius
      @jhbonarius 2 หลายเดือนก่อน

      Adding mechanical solutions will probably not work with these closed loop servos. You would have to do the calibration fully manually. I mean the software solution is the whole reason to use these expensive clearpaths.

  • @PlovsLV
    @PlovsLV 2 หลายเดือนก่อน +1

    Make 2 stop sensors on each end, one for slowing down table and second one for dead stop. With this setup, table/motors/belts etc. at the moment, is going under a very heavy load because there is a high speed and a rapid change of direction. Just make it that table slows down gradually before changing directions.

  • @MartLeib
    @MartLeib 2 หลายเดือนก่อน +1

    Couple more notes regarding the ClearPath:
    * If not, then run auto-tune again with the new motor, and see, if it finishes. There have been instances when the auto-tune has "gotten stuck" at certain percentages, in such cases I have just applied some force to the mechanics to allow it to overcome it
    * Try fine tuning. You can find it under Setup -> Tuning -> Fine Tune. There you have a slider which you may try moving to either side to see how it affects your use case.
    * Use higher input resolution. You have set it to 800 in the MSP software, but the motor's native resolution is 6400 which would result in (a little) better movement since the RAS algorithm has a higher input frequency. CleraCore can handle such high output frequency very well thanks to the clever internal "clock"

  • @mfx1
    @mfx1 2 หลายเดือนก่อน +2

    Estops should always control things physically by cutting power (or a controlled stop through a safety rated system) with software being a secondary thing.

  • @JohannSwart_JWS
    @JohannSwart_JWS 2 หลายเดือนก่อน +1

    Those motors are amazing. Could not help wondering about the peak currents at accel/decel points. Must be quite a bit, for a short while.

  • @shaun9054
    @shaun9054 2 หลายเดือนก่อน

    It will be interesting to see how much the scope curves change as you place different mass on the chuck to grind

  • @arimadx
    @arimadx 2 หลายเดือนก่อน

    As someone who knows almost nothing about physics, you did a really great job of explaining everything. I think im actually on the same page as you on all this haha.

  • @jhbonarius
    @jhbonarius 2 หลายเดือนก่อน +2

    Very nice!
    I understand that some professional cnc machines use the linear scale to determine the position of the axis, instead of closed loop servos. That might also help in this situation?

  • @vandyFixer
    @vandyFixer 2 หลายเดือนก่อน +1

    Interesting viseo as always but I did have look at the wikipedia page to understand what, Snap, Crackle and pop were all about. 😊

  • @mr.b6034
    @mr.b6034 2 หลายเดือนก่อน +7

    Would be interesting to see if there will be any difference in thr torque oscillations when you put some weight on the bed...

    • @Clough42
      @Clough42  2 หลายเดือนก่อน +4

      Very little, in my testing. The table and chuck are already very heavy.

    • @nf4x
      @nf4x 2 หลายเดือนก่อน

      But your torque ripple and ringing will reduce when you grind. The drag will dampen the system.
      With the better profiling (planned jerk and snap) you might try reducing the integrator gain and / or increasing the proportional gain slightly. If they have a Bode plot feature in their software, run it and show us next time. Then you can tune it as well as PI will ever get you. :)

    • @steveh8724
      @steveh8724 2 หลายเดือนก่อน

      @@nf4x damp

  • @johnblazeindetroit
    @johnblazeindetroit 2 หลายเดือนก่อน

    Hey James, not sure if you considered this...Maybe an initialization routine that first determines the locations of the left and right stop, then you could ramp up and 'brake' between the two locations. My intuition is telling me that you would have to ramp up before making contact with the part and brake after leaving the part to maximize surface quality uniformity.

  • @user-de8bu5es6f
    @user-de8bu5es6f 2 หลายเดือนก่อน +1

    This is a great tutorial, great understanding, great tenacity & great outcome.
    What would be the icing on the cake is a test piece, that has an area (strip) of grind at same depth etc but with different motors and RAS settings to see if the quality of traverse actually shows or is measurable in the real world or if the mass of the table hides it.
    Thanks James, this is perhaps the best (most revealing) project you have done.

  • @nf4x
    @nf4x 2 หลายเดือนก่อน

    Your software could start each run by identifying where the limit switches are located, then just run back and forth within them, to get highly precise travel without worry of overrunning the stops. If you start hitting the limit switches, you know your cable is stretching, has slipped, or has loosened. Better performance and extra safety - win-win.

  • @LetsRogerThat
    @LetsRogerThat 2 หลายเดือนก่อน

    That's an impressive improvement James. My Rockwell Delta bed sits on ball bearings and there's nothing preventing the bed from lifting as it changes direction. I wonder if your grinder is subject to any mechanical lift during the directional change. If there is, it would affect you surface finish. You might want to check that out. Gilles

  • @davekellogg6819
    @davekellogg6819 2 หลายเดือนก่อน

    It would be very revealing to compare the motor’s encoder position to the table’s position as determined by a linear encoder scale on the table. However, to do so would rapidly degenerate into a research project. As it stands, James has enlightened most of us with the novel RAS solution. From a design standpoint, it is a great solution because it avoids the expense of a linear encoder and it’s mounting. If this was a ground-up design (vs James’ retrofit) the better approach would be to replace the cable drive with a ball screw. But even then, this is a surface grinder’s X axis: It doesn’t need precise positioning, only smooth velocity.

  • @alejandrohuerta988
    @alejandrohuerta988 2 หลายเดือนก่อน

    Snap Crackle Pop! Gotta love nerds naming terms 😄

  • @LyallPearce
    @LyallPearce หลายเดือนก่อน

    I was only half way through watching and my first thought was you need to provide a delay between direction changes to allow the system to settle.
    It will be interesting to see what you did...

  • @the_rad_Panda
    @the_rad_Panda 2 หลายเดือนก่อน

    Great Video! Have you tried a belt tensioner? Looks like some of the inertia springiness might come from the belt tensioning. Maybe even the wrap angle on the driven wheel?
    Just food for thought - really enjoying this series and your way of going about things 😊

  • @jeffholden4600
    @jeffholden4600 2 หลายเดือนก่อน +2

    Will resistance, introduced by griding wheel and object friction, affect the smoothness of the x axis?

  • @algotn
    @algotn 2 หลายเดือนก่อน +5

    Is there any reason to not do the jerk limiting in software?
    It would require more programming yes, but it also seems like you would have better control over it.

    • @marclevitt8191
      @marclevitt8191 2 หลายเดือนก่อน

      To save approximately $500? Doing the jerk limiting in software is precisely what James’s doing; it's just Teknic’s software. Right? It seems like a bargain for who knows how many engineering hours it took to develop this feature. But I agree that if one wanted to control more parameters or had a good reason to do it higher up the control chain, now that we think we know the problem and how to fix it, one could provide rounded velocity curves. But then what does Techik’s servos now think of our input? Just thinking out loud here, but now maybe we would want a dumber motor so we don't get rounding on top rounding.

  • @anniebooo
    @anniebooo 2 หลายเดือนก่อน

    Thanks for a very interesting video. Appreciated. What happens when you put the force of the surface grinding wheel on a metal surface on top of the table? Best, Annie

  • @rvamerongen
    @rvamerongen 2 หลายเดือนก่อน

    Always impressed with the details. Jusr curious; Did you test it with a heavy weight on the bed?

  • @ita-1245
    @ita-1245 2 หลายเดือนก่อน +2

    Great mod, is there a failsafe if the limit switch fails or cams break and the bed progresses infinitely?

  • @tonyr3352
    @tonyr3352 2 หลายเดือนก่อน

    Very nice work! I'd be interested how it's going to change with a increase load on the table. Have you run experiments loading the table?

  • @jimsvideos7201
    @jimsvideos7201 2 หลายเดือนก่อน +2

    What if you put a bellcrank at each end of travel to lift a weight up against gravity? That might soften the stop and help with the acceleration.

  • @TheMrAwax
    @TheMrAwax 2 หลายเดือนก่อน +1

    I though that snap/crackle/pop were early April’s fools … but apparently it’s an old April’s fool.

  • @johnirvine3346
    @johnirvine3346 2 หลายเดือนก่อน

    Great video! You may have covered this but do you have a plan to stop the motor if (when) a limit switch fails?

  • @seancollins9745
    @seancollins9745 2 หลายเดือนก่อน

    Big Brushed DC servo would be ideal for the X axis, nice big heavy rotor, hard switching, loads of grunt particularly near shaft stall.

  • @zaprodk
    @zaprodk 2 หลายเดือนก่อน

    Fascinating to see how the RAS fixed up the oscillation. I wonder what the difference in the actual servos are - I suspect it is just a software difference - The hardware is identical.

    • @marclevitt8191
      @marclevitt8191 2 หลายเดือนก่อน

      The new one has a higher resolution. Perhaps a different encoder?

  • @RossReedstrom
    @RossReedstrom 2 หลายเดือนก่อน +3

    How much will this tuning be affected by the mass of your vise and part? It is the table significantly more massive than anything you'd clamp onto it?

  • @BigJonYT
    @BigJonYT 2 หลายเดือนก่อน

    I know it's a personal preference, but I would have made the limit switches virtual. Leave one physical switch at the far end of travel to home, then set start and length parameters in the SW. You could also build a cool interface like the lead screw controller with speed, start and stop displayed. That way you can dynamically control it during the job without have to stop and physically adjust the end stops. Then as the controller knows where the two points are, it can accelerate and decelerate in SW to the exact positions. You don't need the more expensive servo, and you can stop on a dime without any overshoot. You could even leave the two physical end stops at the two extreme positions as estops too late now. You bought the expensive servo. But you have to live with the overshoot... Nice project, though. :-) I'm still jealous ... :-)

  • @tentotwo8290
    @tentotwo8290 2 หลายเดือนก่อน

    My grandfather used to “jerk” the accelerator, on and off when he was driving. He said we had Kangaroo petrol 😂

  • @hasanzakeri8708
    @hasanzakeri8708 2 หลายเดือนก่อน

    Nice! Have you thought about using dro-style linear scales for feedback and having a real closed loop position system?

  • @TrueMachine2
    @TrueMachine2 2 หลายเดือนก่อน +1

    Nice job! The cost of the new motor is very little... compared to the performance you achieved. I would set the acceleration to about half of what you ended with, the mechanical of the machine will appreciate that... and last way longer. What I usually say... it is just like driving your car with the peddle all the way to the floor. You may get away with it for a day or two. But the car will be destroyed in short order. Yet if you drive is like a grandma... it will last forever. Machines are much the same. Treat them nice, and they will be nice back. Food for thought.

  • @the1maxb
    @the1maxb 2 หลายเดือนก่อน +1

    Could the progressive acceleration (anti-jerk) required not have been implemented in controller software? Along with anticipation of travel limits, based on tracking of the most recent limit switch triggers?

  • @pbkobold
    @pbkobold 2 หลายเดือนก่อน +22

    Clearpath, if you're reading this, not having a 90 day return/swap exemption when a support engineer says "you need this other thing" is a little lame. I'm happy to pay a premium for a nice product with nice support, but I'm also the kind of person who will order motors months before I can start on a project (and discover I bought the wrong ones).

  • @jlkainz
    @jlkainz 2 หลายเดือนก่อน

    Very nice video James! If you are programming the motor movement in C++, it seems you could have programmed in the control system for the motor to control the jerk/snap/... instead of purchasing the enhanced version. Just a thought from another controls guy.

  • @MachinedComponents
    @MachinedComponents 2 หลายเดือนก่อน

    Awesome video and great project. Can the Clear Core controler be programed in a language other than C++? I haven't used C++ and it's appears daunting to learn.

  • @Moinois
    @Moinois 2 หลายเดือนก่อน

    Looks good, I am curious though what happens when you introduce a 10kg piece to surface grind and the grinder running as it will change the dynamics of the table. I'm guessing there might be a need for a new session of tuning when that happens.

  • @jamjamamam4139
    @jamjamamam4139 2 หลายเดือนก่อน +1

    Things will change when you put heavy part on table - inertia and load will rise. You have calibrated empty table

  • @josephmacey8512
    @josephmacey8512 2 หลายเดือนก่อน +2

    nice work James, is there a line of code to make it stop at the end ( Left or Right) and not on the job your grinding

    • @larrybud
      @larrybud 2 หลายเดือนก่อน +1

      Great call!

  • @MacLocky
    @MacLocky 2 หลายเดือนก่อน +1

    Could the Clear Core controller be used with all of your CNC projects to date and if so with hindsight, would you just use this controller?

  • @mikemarriam
    @mikemarriam 2 หลายเดือนก่อน

    Do you think the added mass of the work piece will require retuning?

  • @joopterwijn
    @joopterwijn 2 หลายเดือนก่อน +1

    I don’t know if a different cable type (table movement cable) could reduce the “stretching”.

  • @michaelmoffit1423
    @michaelmoffit1423 2 หลายเดือนก่อน

    Just a thought. You could have accomplished almost the same thing in two different ways. 1. Count steps between the limit switches and then apply a two step decel. 2. Added two more switches that act as a warning and start your decel on the first switch. Your decel and direction change should take place after the wheel has cleared the part. That way you will not see the direction change or decels/accels in the surface finish of the part. Spent too many years doing this by hand.

  • @AlexMusayev
    @AlexMusayev 2 หลายเดือนก่อน

    Quoting Wikipedia, "The terms snap, crackle, and pop‍-‌for the fourth, fifth, and sixth derivatives of position‍-‌were inspired by the advertising mascots Snap, Crackle, and Pop." You live, you learn.

  • @HangarQueen
    @HangarQueen 2 หลายเดือนก่อน

    Great video. I came into it frankly thinking that it would likely be boring. I mean, how entertaining could 26 minutes of smoothing X-axis motion be? But it was! And very educational too! (Now I know about "jounce", as just one takeaway.)
    I'm wondering why you decided on the mechanical lever switches rather than the proximity switches. From your earlier video comparing the two, I really thought the proximity switches would be the winner. Heck, if you switched to using the proximity switches, you could add the mechanical switches as WAY-overkill to trigger eStop if the table went beyond limits.

  • @marclevitt8191
    @marclevitt8191 2 หลายเดือนก่อน

    I was going to reply to a nasty comment about your code, some nonsense about not needing a state machine. I think his post got deleted. I am glad it did. It wasn't particularly productive.

  • @georgescott6967
    @georgescott6967 2 หลายเดือนก่อน

    I'm surprised that you don't have "stopped" as a third state in your finite state machine. I'm also wondering about "accelerate left", "decelerate left", "accel right", "decel right" but haven't thought long enough about it yet!

  • @Argosh
    @Argosh 2 หลายเดือนก่อน

    Will a fixed offset not link overrun linearly to speed? How do you avoid overshooting if your move speed is higher?

  • @turbotona25
    @turbotona25 2 หลายเดือนก่อน

    How does it handle the stops real close together for grinding small parts?

  • @leriksenbendigo
    @leriksenbendigo 2 หลายเดือนก่อน

    Did you do any experiements with the enhanced motor, with the STEPS_PER_REVOLUTION defined as 6400, which I think you mentioned in the spec sheet ?

  • @rickswanberg4995
    @rickswanberg4995 2 หลายเดือนก่อน

    The RAS enabled motor has clearly worked. Would you be able to program different acceleration and deceleration values to smooth out the start of motion if RAS did not work?

  • @swp466
    @swp466 2 หลายเดือนก่อน

    I'm curious -- if the settings are dialed in for the machine with an empty table, what will happen when you have a 20 pound chunk of steel on the chuck? Will the extra mass cause issues?

  • @qwertyboguss
    @qwertyboguss หลายเดือนก่อน

    Not sure of its possible but I'd look into defining the limit switch state changes as interrupts. If you complicate the code more, or the controller is busy otherwise you may miss the trigger. Unlikely with this setup but I'd feel safer with hardware interrupts.

  • @criggie
    @criggie 2 หลายเดือนก่อน +1

    Possibly a newbie question - how much does the table/object speed matter when surface-grinding? The wheel's surface speed is far higher so does it matter if the part is moving slow or fast ?

  • @alita589
    @alita589 2 หลายเดือนก่อน

    Do you think the insulation will get worst once you add more mass to the table?

  • @hoggif
    @hoggif 2 หลายเดือนก่อน

    I've never thought of that limiting jerk limits change of force, because F=ma and dF/dt = m da/dt = mass * jerk.

  • @davefilicicchia6341
    @davefilicicchia6341 2 หลายเดือนก่อน

    James, I'm curious if you think the tuning issue was more about the 'squishiness ' of the cable drive on the table or an inertial mismatch?

  • @chrisj4570g
    @chrisj4570g 2 หลายเดือนก่อน

    Fiddling with the G stop should help, the trouble is finding the G stop.