Increasing the Precision of a 6 Axis Robot Arm

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 ธ.ค. 2024

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

  • @kaedkay2472
    @kaedkay2472 2 ปีที่แล้ว +51

    Your progress and commitment to making levels of redundancy that most other 3d printed arms ignore is inspiring, and your videos are incredibly made. Keep it up!

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +2

      Wow, thank you!

    • @Wez_wolf
      @Wez_wolf ปีที่แล้ว

      Agreed, nice progress and simple explanation. Keep up the good work

  • @winandd8649
    @winandd8649 2 ปีที่แล้ว +5

    Case anyone is wondering: the sensor he uses is a AS5600

  • @MrNoipe
    @MrNoipe 2 ปีที่แล้ว +2

    Great video, and its awesome to see the code open sourced too. It would be a huge benefit to make the title more informative to people looking up information about motor positioning!

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +2

      Point taken :) I've changed it!

    • @MrNoipe
      @MrNoipe 2 ปีที่แล้ว +1

      @@roTechnic you're the best!

  • @DesignCell
    @DesignCell 2 ปีที่แล้ว +5

    I used the same AS5600's and multiplexers on my quadruped! Amazing capability at a great price.

  • @RacoonMedia
    @RacoonMedia 2 ปีที่แล้ว +10

    This is a robot arm I actually want to build since it’s much simpler and well explained. Well done

  • @HornbyCrazy
    @HornbyCrazy 2 ปีที่แล้ว +2

    Fantastic progress, I see this series becoming the go-to series for arms when it's complete

  • @TheBauwssss
    @TheBauwssss 2 ปีที่แล้ว

    dude this is truly awesome, and its so super mega cool that you're just releasing all of the cad (and code?) stuff for free on your Github!! :O

  • @JoergGebhard
    @JoergGebhard 2 ปีที่แล้ว +2

    a very nice approach using the sensor and also nicely explained!

  • @IainMace
    @IainMace 2 ปีที่แล้ว +2

    Great video... Again. Thanks for taking the time to explain the logic you used in the error correction. That's really useful. Thanks and keep up the great work. Going to have a play with your Jupyter code... That looks super useful.

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

    This is genius. I keep coming back to it. I think the future of robotics for decades can be seen here. Keep the weight (motors in this case) where you want, make the limbs light, and track position with sensors. AI vision maybe for end tools

  • @gfodale
    @gfodale 2 ปีที่แล้ว

    Again, very impressive. I have too many irons in the fire at present, but have bookmarked your videos to come back to when I have the time. Thanks much.

  • @tumpen1
    @tumpen1 2 ปีที่แล้ว

    An absolute joy to watch your videos! your explanation of the code made me breifly forget i don't read code without googling for hours, its brilliant!
    I'm definetely going to build one of theese as a gift for my littlebrother.

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

    Brilliant idea, thank you! I have been really struggling to work out how to actually know the movement is accurate.

  • @PersianFilmMakers
    @PersianFilmMakers ปีที่แล้ว

    It was a wonderful video. It only lacks a few limit switches and the command to return home.

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

    This is amazing. So well done both the video and the robot and the description. Thank you😊

  • @topordrop2402
    @topordrop2402 2 ปีที่แล้ว

    Love your work! I've been working on a very similar project. 3D printed 6 axis arm, with the same sensors. The multiplexer was one idea I was missing.

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว

      oh awesome! I’d love to see it. what reducers/gearboxes are you using?

    • @topordrop2402
      @topordrop2402 2 ปีที่แล้ว

      @@roTechnic unfortunately I'm travelling at the moment and my robot is mostly failed prints in a drawer somewhere right now. It's a hobby project so I've challenged myself to try include as many different reducer types as possible. Some axes are using planetary gearsets and GT2 belt and pulleys. I'm in the process of refining a cycloidal reducer for the elbow, and a harmonic drive for the wrist. Wrist is actuated from behind the elbow with a torque shaft and fishing line pulley system running through the forearm.
      Over engineered and destined to fail, but the project kept me sober during lockdown and that's all that matters.

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +1

      @@topordrop2402 It sounds awesome! Good luck!

  • @capanemo
    @capanemo 2 ปีที่แล้ว

    Amazing work!! This is what inspired me to build a robot arm. Greetings from Brazil!

  • @alexkart9239
    @alexkart9239 2 ปีที่แล้ว +1

    6:25 this solution nice and easy, but what you think about PID loops? PID controllers are commonly using in the industrial servos.

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +2

      Yeah, you can use a PID loop. in fact, this is basically just the P part of a PID loop. At the moment, I'm not seeing any oscillations using this method, but if they start happening then I'll switch to a PID loop.
      However, I do like to try to keep things simple, and if I don't need the full PID implementation then I think this is easier to understand :)

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

    Loving this project, can't wait to start building

  • @Alexander_Meyer
    @Alexander_Meyer ปีที่แล้ว

    You really make this easier for us pessants, thank you so much!!

  • @pitcher1716
    @pitcher1716 2 ปีที่แล้ว +1

    You need a PID controller for the joint angles.

  • @ShittyMetronome
    @ShittyMetronome 2 ปีที่แล้ว +7

    That's brilliant ! I was affraid that, because of the bowden tubes, the wrist would be innacurate when the first three joints are moving. But the way that you've mounted the sensors and the code makes up for this ! Thank you for sharing all of this. Do you think you'll have a go with inverse kinematics ?

  • @JournalEngineer
    @JournalEngineer 2 ปีที่แล้ว

    Your videos are just a treasure! Thank you for all knowledge and great explanations! I keep a close on every part of you projects 😍

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +1

      Thank you very much! It's nice to see you making videos again!

  • @geekonarium
    @geekonarium 2 ปีที่แล้ว

    This channel is amazing :D Very cool. looking forward to find the time to build your robot on my own :D

  • @Serpleti
    @Serpleti 2 ปีที่แล้ว

    Cool project ! You might want to check problems linked with sensor and actuator non-colocation tho, it can make your system unstable

  • @alexkart9239
    @alexkart9239 2 ปีที่แล้ว

    3:12 can we use an SPI bus instead of this multiplexor? i mean, exactly the same sensors but with SPI instead of i2c.

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +1

      Yes, if you can find cheap 12 bit magnetic encoders with SPI then please let me know - that would be much easier!

  • @basharkernel8992
    @basharkernel8992 ปีที่แล้ว

    Nice content and work. You could use something like pid controller better control the motors and reduce overdraft

  • @sermadreda399
    @sermadreda399 2 ปีที่แล้ว

    Great video, thank you for sharing

  • @Antihelpful
    @Antihelpful 2 ปีที่แล้ว +1

    Just found your channel today, amazing work! This is exactly the type of project I love to follow! Not sure if this has been said anywhere before but have you thought about using a synchromesh cable system for the build?

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว

      I hadn't thought of that - Ill look into it. Thank you!

    • @Antihelpful
      @Antihelpful 2 ปีที่แล้ว

      @@roTechnic I seen one being used in the positron v3 3D printer on a pulley system to keep position and it looks like it did a great job. Not sure if it would overcomplicate things for you, or simplify knowing the position of each motor. Would love to know if you end up using it or the reasons why it's probably a terrible idea haha

  • @nigelhungerford-symes5059
    @nigelhungerford-symes5059 ปีที่แล้ว

    Nicely done video and project

  • @rondlh20
    @rondlh20 2 ปีที่แล้ว

    Well done, great job!

  • @warhammertoken4022
    @warhammertoken4022 ปีที่แล้ว

    how come the control wires don't come loose? They do need some freedom as the arm rotates, so how is that managed?

  • @FilmFactry
    @FilmFactry 2 ปีที่แล้ว +1

    Question: I have that as5600 board. what would you recommend for linear motion? Would this work as well for a motor the has to spin thousands of steps to say move a Z axis or even a belted X or Y? In inkjet printers they use a very fine transparent "barcode" thing, and that lets them count the steps I guess. I also use Geared stepper motors so the motor has to rotate multiple times to effect a single rotation. And finally, I haven't used them yet, but are you familiar with Geared DC motors that have built in encoders? They use two hall effect sensors to provide the position. If you are familiar, the MASLOWCNC uses 2 of these motors to "plot" a rotor, to cut plywood. Cool project. But again another closed loop approach.

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +2

      They don't work that well for direct encoding, because they take a while to read (like 1/10ms) so can't be used to read the position every microsecond.. Although, that being said, I've got a project on the back burner using these and a stepper motor for full FOC control - a couple of things to sort out with it though.

  • @volpir4672
    @volpir4672 2 ปีที่แล้ว

    Excellent! love this channel

  • @frankgiordano1751
    @frankgiordano1751 2 ปีที่แล้ว

    Really good job!!

  • @devanshgarg31
    @devanshgarg31 2 ปีที่แล้ว

    Why not use an optical encoder such as CUI AMT102-V which can be directly mounted on the shaft, but use a magnetic sensor instead? Any reason to go with that particular one?

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +3

      I don't want the encoders directly on the shaft of the motor as I'd like it to report on any deviations that the 3d printed gearboxes/bowden cables add to the system. The other problem with the optical encoders is that it takes quite a bit of processing power to read them as each pulse gennerates an interrupt, whereas I can just query the magnetic encoders any time I like with no overhead in between queries.

    • @BeefIngot
      @BeefIngot 2 ปีที่แล้ว

      To add to what I assume is part of their reasoning, the encoder you listed is incremental, and therefore wouldn't give them the absolute position of the arm on boot up, necessitating some sort of homing sequence. Furthermore, its far more expensive.

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +1

      @@BeefIngot Yup, both of those too!

  • @EnderSpy007
    @EnderSpy007 2 ปีที่แล้ว

    Could you make a short video showing us how the robot arm might go about only changing a single value for each of its 6 degrees of freedom? Like for 1 shot, it oscilates between its rest position another position that only translates/rotates an attatched object along 1 axis at a time. How would you go about changing the pitch without changing the position, roll, or yaw of JUST the object? (More specifically, not changing the position of a single point, such as the center of mass or perhaps the attatchment point, Idk which one is correct)

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว

      that’ll be coming up very shortly when I dive into the inverse kinematics

  • @greendsnow
    @greendsnow ปีที่แล้ว

    Your voice is impressing!

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

    what you usee for joint 2? what types off your motor stepper sir? after your base

  • @plfreeman111
    @plfreeman111 2 ปีที่แล้ว +1

    Be careful the rabbit hole you're going down! Next is joint mastering, then camera-in-hand parametric calibration, then higher order calibration, then...

  • @rizalardiansyah4486
    @rizalardiansyah4486 2 ปีที่แล้ว +1

    I thought you are going to apply PID for those encoders. What is this method called again? I remember James Bruton doing the same thing for one of his robots. I'd like to look up more about this method....

    • @rizalardiansyah4486
      @rizalardiansyah4486 2 ปีที่แล้ว

      Oh, and also do you plan on switching to a regular motor like a brushless or a brushed one now that you have encoders? Would certainly help in reducing the noise and heat from steppers I guess!

    • @boulder795
      @boulder795 2 ปีที่แล้ว +2

      @@rizalardiansyah4486 Steppers are pretty much the ideal motor for these arms until you can move up to fully fledged servos, brushed motors are obsolete these days and nothing quite comes close to the ease of use and stall torque of a stepper

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +1

      PID is more appropriate for control of analog devices such as heaters or brushed motors. I think I'm going to stick with steppers for now - see how far I can take them. I'd love to do a bigger arm with brushless motors though.

    • @unknownhours
      @unknownhours 2 ปีที่แล้ว +2

      ​@@roTechnic Analog has nothing to do with it. PID would work fine expect this is a nonlinear system (Damn you gravity!). Though if you have enough torque , stiffness, and good sensor resolution, the non-linearity may be manageable.

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +2

      Interesting, I didn't know that - thank you! unfortunately, torque and stiffness are not in great supply in this arm, but I am tempted to try out a PID loop. I imagine that you'd just set the PID to control the speed of the steppers and set them to rotate continuously - do you agree?

  • @richardmarkham8369
    @richardmarkham8369 2 ปีที่แล้ว +1

    Looking good! How accurate is the AMS sensor? I think the datasheet says +/- 1 degree. Seems a lot for a 12 bit sensor? I assume you're not microstepping the motors?

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +1

      the +-1 degree is the accuracy of the initial reading. All readings following that are to 12 bit precision. We can get over the accuracy by manually setting the offset of the sensor and then get nice precise readings after that

    • @richardmarkham8369
      @richardmarkham8369 2 ปีที่แล้ว +1

      @@roTechnic I did some work with these a few years ago, looking for a cheap replacement for a resolver, but back then they weren't terribly accurate and needed a calibration. Then we looked at a sensor using pcb track antennas by Zettlex. Looks like the AMS chips have improved a lot in the meantime.

  • @danfilbert8859
    @danfilbert8859 2 ปีที่แล้ว

    Hi your project is awesome I'd love to take a look at the code.
    I tried looking at the linked Github page but is seems the only Arduino code posted is the code for the sensors alone. Is there a separate file that contains the code for running and controlling the stepper motors?

    • @danfilbert8859
      @danfilbert8859 2 ปีที่แล้ว

      Whoops never mind user error. For some reason when viewing the code from the Arduino IDE only some of the code is transferred. The rest of the code showed up when I opened it in Visual Studio.

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +1

      Hiya, no the zip file that says sensors contains all the code for the sensors and the steppers. It's all in separate classes in that. If you've got any questions, I'd be happy to help - just drop me an email - address is in the about section on my channel.

    • @PersianFilmMakers
      @PersianFilmMakers ปีที่แล้ว

      there is no email address in your about section !@@roTechnic

    • @roTechnic
      @roTechnic  ปีที่แล้ว

      @@PersianFilmMakers there is, you've just got to click on "show email address"

  • @robertoguerra5375
    @robertoguerra5375 2 ปีที่แล้ว

    Great job :D Inspirational :)

  • @RacoonMedia
    @RacoonMedia 2 ปีที่แล้ว

    Would it be possible to have the print files in STL format. I don’t have fusion nor do I want to install it since I’m in another ecosystem

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +2

      I've just uploaded them as STEP files which you should be able to open in any CAD software. There are too many parts to export them all as STL and you'll need the cad to see what bearings and fasteners are needed and see how it all goes together

  • @PhG1961
    @PhG1961 2 ปีที่แล้ว

    Very impressive !

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว

      thanks Philip

  • @xfsr20box
    @xfsr20box 2 ปีที่แล้ว

    Can you comment about the accuracy from this setup?

  • @doctorbobstone
    @doctorbobstone 2 ปีที่แล้ว

    So, it looks like you mounted the magnets in the center of the joint which I would have expected to mean that the magnetic field didn't change as they rotate. What am I missing? Are they off-center? Is something else going on?

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +2

      the AS5600 sensors are supplied with "diametrically magnetised" magnets which have the field at 90 degrees to "normal" magnets. I got carried away and forgot to mention that in the video. Please accept my apologies.

    • @doctorbobstone
      @doctorbobstone 2 ปีที่แล้ว +1

      @@roTechnic oh. That's neat. Thanks for explaining!

  • @MicrobyteAlan
    @MicrobyteAlan 2 ปีที่แล้ว +1

    Awesome machine. 👍👍

  • @reality655
    @reality655 2 ปีที่แล้ว +1

    What about POTs

  • @xToTaLBoReDoMx
    @xToTaLBoReDoMx ปีที่แล้ว

    PID might be a more robust option for the angle tracking

  • @89Snyda
    @89Snyda 2 ปีที่แล้ว +1

    Pretty cool progress! I am quite happy to have stumbled over your profile!

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +5

      yes, the sensors are supplied with diametrically polarized magnets. I forgot to mention this in the video. good catch!

  • @SaintMatthieuSimard
    @SaintMatthieuSimard 2 ปีที่แล้ว

    Q: Could it have extensible arms and still know exactly its exact ampleness as you stretch its limbs?
    It would be greatly useful when filming ample outdoor shots!
    That would require a way to give a lot of loose on the strings to adapt to the extra length.

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว

      Interesting idea!

    • @SaintMatthieuSimard
      @SaintMatthieuSimard 2 ปีที่แล้ว

      @@roTechnic I just thought of something to prevent twisting... What if the motors section would rotate independently from the robotic arm so it could follow the arm's rotation and carry the cables along? It would prevent the dog from wrapping itself around the post right, sort of speaking.

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +1

      nice idea. I was considering mounting the motors on a free running bearing, like a lazy susan or something like that so they could move round the arm.

    • @SaintMatthieuSimard
      @SaintMatthieuSimard 2 ปีที่แล้ว

      ​@@roTechnic Somehow! I was thinking tonight also that alternatively, you could mount all motors on the lowest part of the arm and have it spin around with the same lazy susan but even better, if the base arm rotation can carry the motors around with their strings without torsion, maybe they could even be fixed. You could calculate, software side, the rotation of the arm's base to carry the strings around. And if I forgot anything and it wouldn'T work, the motors could still be attached around the arm base, but with an extra motor, smaller, weaker, that rotates the ring around, mounted back on that lazy susan.
      Also in any manner, you could keep the strings organized in something akin to fishing pole line guides which could be mounted onto something smooth like a bearing too.

  • @SaintMatthieuSimard
    @SaintMatthieuSimard 2 ปีที่แล้ว

    Awesome!

  • @DucBanal
    @DucBanal 2 ปีที่แล้ว

    I think that I am not the only thinking it but I want amplify the signal : the problem you are trying to solve has a solution, a PID loop.

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว

      Yeah, I could use i PID loop here - and it would probably be better for a normal robot arm. But I'd like to put a camera on the end of the arm and have very well defined accelerations and speeds for camera moves. A PID loop, unless it is tuned perfectly won't give me the accuracy of speed/acceleration I need.

    • @DucBanal
      @DucBanal 2 ปีที่แล้ว

      @@roTechnic I understand the problem you are facing but as far as I know of control theory (so correct me if I am wrong) but any control loop you would implement would just be a dimished version of a PID loop, just with some terms missing.

    • @roTechnic
      @roTechnic  2 ปีที่แล้ว +1

      @@DucBanal in theory, yes. But in practice it’s much easier to tune a simple feedback loop like I’ve done here rather than implement a pod controller and just use the proportional side of it. As you saw in the video, I can easily adjust the p part (the 70/30% bit) but I have quick access to the timings around it too and can add polynomial terms in if I need to. I guess I’m saying that using a pid controller here would be like flying a jumbo jet to your local shops - very cool, but difficult to park!

  • @TFlorian
    @TFlorian 2 ปีที่แล้ว

    very nice !

  • @DeltaGodWasTaken
    @DeltaGodWasTaken 2 ปีที่แล้ว

    i love this man

  • @irkiIIer
    @irkiIIer 2 ปีที่แล้ว

    how many jobs can we automate with this, theres a labor shortage get them filled up with these bots test out your rough draft and make the final draft

  • @jesseservice7828
    @jesseservice7828 2 ปีที่แล้ว

    Perfeito !

  • @haideralikhan5947
    @haideralikhan5947 ปีที่แล้ว

    Great project. This is very helpful for hobbists, would be nice also to see the overall cost of the project

    • @roTechnic
      @roTechnic  ปีที่แล้ว +2

      Thanks, that's a great idea. As the project progresses, I'll definitely add the cost to the details

  • @Hoptronics
    @Hoptronics 2 ปีที่แล้ว

    I like Joy Division.. :)

  • @settlece
    @settlece 2 ปีที่แล้ว

    👍

  • @h7opolo
    @h7opolo ปีที่แล้ว

    2:08 "era, era" hahah you mean "error". there are two "R"s. why can't you pronounce the second one?

  • @blehblehbleh2003
    @blehblehbleh2003 2 ปีที่แล้ว

    first!! nice video btw