You should use some ferrules for your wires when plugging in to your screw terminals. They'll last quite a big longer and you'll get a stronger connection.
I have finished the first module and its working great, limited to the chillipepper test code for now, but at least its working! The PCB, hardware, and code all work, no surprises. I had some Wires 6 Conductors Capsule Compact Slip Rings included with the aliexpress order, trying to see if there's a way to connect the 24v line in stages inside the arm. This will take a redesign of the couplers/motor mounts for sure, but it's a fun project. I am interested in what others are doing to as to a controller once the arm is complete, the ESP32 is a great way to connect everything, open to code and ideas:)
I just bought all the parts minus the sensors. Ordered 30 of your custom PCBs. I am building this with my Robotics class. I will upgrade the actuator like you did for the heat issues but will not be running all the sensors at first. I just want to build the arm and control it with the xbox controller. The arm will stay with the class and each class will seek to improve on it is my goal. Thanks so much for your videos.
That's awesome. Have fun with it. I never quite got further than my part 3 video, so if you make any further progress on the design, let all of us know. I'd love to see your videos of your class putting it together! It's really quite an intricate design.
@@JohnLauerGplus Thanks! We are printing everything now. Waiting on the electronics to get here in a few weeks. The only part I cant seem to find is the touch sensor you used. I will post some video when we are all finished.
@@JohnLauerGplus I ordered the pcb for the touch dial. Now I just wait for everything to get here. When I ordered the circular PCB, JLC asked if I wanted the holes to be castellated. I agreed to the service but the price went up quite a bit. I ordered 30 of them at a cost of $87 including shipping.
@@infosec1812 Hmm. That seems really expensive for those boards. I'm guessing you're referring to the 3 castellated holes that connect to the ws2812 LED, so you can mount it at a 90 degree angle on the board. What's probably cheaper to do is not pay for castellation and instead make them full holes by expanding the board outline and then just Dremel the PCB, or cut it with clippers, on your own. Back when I designed these, JLCPCB would just do castellated for free.
A screw terminal connection onto tinned wires, in my experience, is troublesome. The solder is malleable and especially with movement (which you have *lots* of) will cause the connection to loosen due to the solder deforming. Some will bemoan this view, but I suggest you see for yourself and go back and try wiggling those power connections and examine the status of them. Search "crimp ferrules" for a solution
Interesting. The goal was to make it not fall out, but I could see the solder eventually wearing down. I did use silicone wire which is so soft that it shouldn't pass on very much pressure to the screw terminal. I also think a crimp could be added to the plastic parts to take all the load of the wire movement prior to the screw terminal.
@@JohnLauerGplus"proper" silicone wire has 2 main functions. The silicone insulation has excellent heat characteristics making it suitable for operating near high temperature items such as motors and heaters and it contains a higher quantity but smaller gauge strands than an equivalent CSA multistranded wire which makes it very flexible and a lot less susceptible to fatigue. I was always taught that only the conductor should be within the clamp termination and the insulation should stop just beforehand. I find that this sometimes leads to stress on the conductors at that point because there is no strain relief so for some connections I double over the conductor and insert the wire including a small amount of the insulation to allow the screw terminal to bite and act as a clamp. The insulation then has a tendancy to crush out of the way at the top and bottom of the strands and doesn't interfere with the electrical connection but maintaines enough presence to act as a support. Another alternative is to add some heat shrink sleeving to the wire just prior to the termination and works really well on very thin wires The ferrules I suggested to search for solve most of these issues in one simple package and are extensively used (at least here in the UK) for electrical installations including electrical control panels
@@havenview That's some good stuff there. Thanks for the advice. These are the kinds of details that are great to hear about from people's experiences out there. It will help in the design here.
Great video! I've noticed a lot of robot arms seem to incorporate the motor driver (and other electronics?) right next to the motor...so it has to fit inside the joint. Is there a reason this is preferred instead of just routing the motor's cables to the base of the unit or somewhere else where all the electronics are housed in a single location?
thanks for sharing! I think I found inspiration. I want to design an embedded wire. The stepper motor uses a ring as the contact wire. In this way, an infinite 360-degree rotation can be achieved. .
me too!! I was just sitting around, thinking, when I realized, hey, AUX jacks (audio, 3.5mm) are essentially a series of rings with wires and- WAIT I CAN USE COPPER AS RINGS THAT TOUCH EACH OTHER!! This has even helped me get more ideas, your comment. I'm gonna use springs and such to keep the rings pressed. You, sir (or ma'am, not gonna assume), are a lifesaver.
First let me say this is beyond anything I could currently design with my skill level, so kudos. Did you experience problems with having the cables run through the structure as opposed to outside it?
In order to run it as as a continuously flowing robotic arm do you have plans to connect it all through a master controller? Have you thought about placing 9DOF sensors on all the joints so the master "knows" where everything is and the most direct path to the object? I thought this would make it more organic. I've been following for years. Great work, i've been wanting to build an arm or two but not being a programmer had to wait on others for the examples.
What did you use to drill those four holes? I am still brand new with pcb milling (i got the sainsmart genmitsu or whatever it is, and i need to figure it out.) i want to be able to make use of my double sided pcbs for a controller for my Ender's lights, and for making my own custom pcbs for an arduino and pi to work together and such. What software does that for you?? thanks in advance!!
Totally agree. I think you could just do the power via slipring and get everything else to be wireless and you'd have a super amazing arm that's easy to assemble.
@@JohnLauerGplus Yea that's a good idea, I guess it would have to be a bit bigger maybe to fit the stuff, but 360 rotation would be really cool. If you got a tight grip on the end like fingers you could fully screw in a screw with it. lol!
Thanks for all the work on this, especially the documentation. I just ordered the PCB boards, zip worked perfectly. I have this arm working and running using a mega/ramps (three steppers only) and three tb5600s. Old school lol. This approach you have is way better! I am curious on the Adafruit joints that allow rotation for the 24 V, that might solve the issue of the 1 W power wire needed.
The shaft is disconnecting from the sun gear due to heat in my small actuators. So, I do need to find a solution to that. Bought some PETG to try it, but I still think that won't be good enough.
Could you please explain how you turned the gcode coordinates into angles for each joint? The controlling software and the inverse kinematics confuse me the most, especially the multiple solutions part. Also, that's a nice robotic arm you got there
None of that is quite figured out yet. The movement in this video is just a per actuator back and forth test movement. Next step is Gcode and record & play functionality.
Hi John, this project looks great! I really would like to have my hand at replicating what you made of Jeff Kerr's robot arm so far. However your explanation on the electronics in this video is quite brief. I am not very familiar with electrical engineering myself so was hoping you could provide some more information on which components you used and how/why. Looking forward to your response!
Very nice build and video. How mechanically rigid is that two stage planet gear design? might it be interesting to print some of the mechanics in metal?
Printing in metal would be awesome and possibly if this robot arm is viewed as a prototype and works well enough as the community invests in it, which is already happening if you look at the Thingiverse page, you could end up with this being the first highly popular open source 3d printed robot arm.
I bought some tmc2130's a couple weeks ago just like you were thinking. The idea is three-fold. 1) Make the sound really nice on the arm, 2) Have the ability to dial in current settings per stepper motor perfectly via SPI, but more importantly 3) Use the homing feature where the tmc2130 detects the pending stall to do homing without an endstop switch. Prior to that I was thinking of using a hall magnet sensor, but that would add extra components to each actuator.
Pretty Sweet... I see you have it in a standard 6DOF configuration. Are your offsets all standard as well or are you going to be putting together your own inverse kinematics. Finding joint angles from Cartesian coordinates is the part I want to see in some detail. :D Good job.
The initial plan is to simply let you train each joint, record its position, and then play it back. Getting inverse kinematics going will be a second phase, although this will be all open source so perhaps somebody from the community can help on that part.
Fusion is actually really cool, it has all sorts of views, from electronics to even having it put into an assembly line with full scale versions of this arm! It's fun, and I cant wait to learn how to use it (i got the hobby license, meaning it's free as long as it's for personal use)
Hey john, can you list the correct jack for the stepper motor as you mentioned here(and any other components (except normal stuff), I know I’m missing a few! Thanks
Working on a PCB design that uses TMC2130, ESP32, and a touch sensor PCB on outside for jogging per actuator. TMC2130 gives ability for sensorless homing.
The idea is to go to all 6 actuators so you only have to run 24v power across the whole arm, but looks like I'll need a sync signal wire too now. Still work in progress
I like the idea. Nice explanation. Not sure if PLA is a good idea, it won't deal with heat well at all. Why have a separate MCU for each stepper? Seems overkill when one could have done. STM32 perhaps with an esp for WiFi?
Heat is a concern, especially on the small steppers. Trying to figure out if I can just print the sun gear in something else because the heat emanates through the shaft of the stepper and can melt the plastic and the superglue gives out. The reason I'm using an ESP32 for each stepper is I want a touch jog dial at each actuator, temperature sensor, fan control, RGB LED status indicator, and sensorless homing. All of these would require numerous wires back to a core controller. Also, I want a distributed system at the core of this so you can add-on degrees-of-freedom with a lot of freedom. What if you wanted to add 1 more small stepper actuator at the end of the arm? When you get to dealing with the end gripper which may have tons of sensors, motors, etc it will almost certainly have it's own MCU. So, might as well set up a core operating system for the robot arm that fully embraces a distributed approach with synchronization. The other issue folks don't realize is how complex/hard it is to run wiring across these robot arms. You want to eliminate every wire you can, so by using an MCU you could in theory just run 24v power and nothing else.
@@JohnLauerGplus You make a very good case. PETG will do what you need if you have a heated bed. Why not file a flat on the Nema shafts instead of relying on superglue.
John Lauer and what about sync problems between joints? If you want to follow a certain trajectory at a certain speed? Do you have any feedback position sensor ?
@@pablo_costas If you watch the video on the Cayenn protocol I created for ChiliPeppr ua-cam.com/video/SlHhcErWCDQ/v-deo.html, you'll see how I solved sync issues. Each device is it's own ESP8266 in that video and there's one wire for sync. I'm using the same approach here. All Gcode is uploaded ahead of time where just the commands for each actuator are uploaded to that actuator. Then the sync wire is just a count. When the device hits a count where it has a command, it executes it. However, on this project I'm going to try to not have to run the sync wire. I have a feeling that won't work, but gonna give it a try. Furthermore, one of the ESP32's becomes the master where it sends out the "which line of Gcode are we executing" command. It then waits for an acknowledgement from each device that has Gcode on that line until it sends out the next "we are executing this next line" command. That's how it all syncs. If it's a move where the start/end of the move should finish at the same time across multiple axes, then the actuators will just adjust their feedrate to match the other actuator by just using math. It's all theory right now until implemented.
Gfx Grafix People Don't tend to lubricate plastic gears with oil since it will eventually wear out faster. Perhaps with dry lubricant such as graphite powder?
that's an esp32, it's the microcontroller he's using to control the stepper motor. neat little microcontroller, very powerful for the price and has wifi hardware integrated into it.
hey what bolt for the joints and the connector is or the motor and the capacitor thanks you . how to controller with xbox controller wireless thanks mate
@@okbrb Interesting, but how would you wire that through those actuators I show in the Part 1 video? I would need at least 2 for power, but likely 1 more for a sync signal.
Blue pill STM32 doesn't look very good compared to ESP32. Blue pill is 72Mhz, 128K flash, 20KB RAM @ $2 while the ESP32 is dual-core 240Mhz, 4MB Flash, 520KB RAM, Wifi, Bluetooth, and lots of sub-controllers like a pulse counter, pulse generator (for stepper driving), 10 touch sensors, etc. @ $4.
Nice (: Though I can't stop thinking, while you already had to connect the actuator to the power supply through their VCC and GND wires, why didn't you just add another wire for signal control of each actuator? Why there are that many ESP32s wasted? (one would be enough...) Anyway, really nice project.
The idea is to home each actuator and then just keep track of the step position on the stepper motor. The homing will be done via TMC2130 stepper motor drivers that can be homed without endstop switches. If that doesn't work I'll had hall sensors as the endstop switches. Another alternate idea is to put an absolute encoder on each actuator, but that doesn't seem as workable since I'd want to track the reduced part of the actuator, not the stepper itself, and nothing commercially available is that compatible that I can think of with the shape of the actuators.
@@i-make-robots How is that dead reckoning? People are using the TMC2130 to home 3D printers. Hall sensors are also common for homing. Absolute positioners are spot on too. Dead reckoning would be inaccurate.
I home an axis and I count steps as I move. if I never miss a step then reality matches my estimation and everything is fine. While the TMC2130 is very good is it not perfect and can miss steps - I've had layer shift on Prusa 3s equipped with the same driver. Rare... but when it happens... ;(
@@i-make-robots With your experience on TMC2130, do you see layer skips during the print? If so, are you running it at the 256 microsteps, or the interpolation? Are you running the motors with enough power to not get skips? Or are you saying during homing? The homing would need to be done after a power off because you have no current step count to reference off of. I could store the current step count each time in flash memory, but I'd have to buffer that, and if there's a power outage you wouldn't really know if you had the buffer write. So just plain old homing would seem to do the trick.
@@JohnLauerGplus My printer is not tall enough so I have to print flat. I have to use auto supports and the inside of the arm is filled with supports. My Dreamer NX barely fits the upper arm.
The current workspace has XBox controller support at chilipeppr.com/arm but you would need my latest codebase for the actuator and I don't have that quite published yet. Working on it.
There is the ODrive project now which can give you nice control over a brushless DC motor, but I'm not so sure you get much more power/torque out of that solution than just using a stepper.
@@dieselphiend The Universal Robots UR5 is pretty big but is only 55 pounds. I've always considered the harmonic drives in it to be why they're so precise.
@@JohnLauerGplus The most precise motors/drive system in the world is only as good as its base, and frame. Precision has just as much to do with the rigidity of the frame, as the resolution of the encoders. I would even say that rigidity is more important than resolution. You can indeed achieve rigidity without adding a lot of weight, but with enormous cost. In order to have a rigid frame that was also light weight, you would need materials like composites= carbon fiber. That would cost a fortune. That's why industrial machines weigh so much. They are exchanging weight (mass) for rigidity. It is the cheapest way to have a rigid frame. I really admire your robot arm- it''s only a few steps away from being very capable. Have you considered driving it with an Odrive and brushless servo motors? Are you familiar with Odrive and field oriented control? It uses bleeding edge control circuitry from Texas Instruments, borderline dark magic type stuff.
@@dieselphiend yes I am very familiar with odrive and do think that could be a natural progression to this design. Thinking about that as phase 2 of the design or maybe somebody else in the community extends it. On the rigidity, I think that will be a future phase too because the power of these 35mm steppers is not great. There are heat problems too, so lots of stuff needs to get solved prior to rigidity. Also the syncing of actuators is still a work in progress using Bluetooth. I do believe the world needs a great open source robot arm though. Maybe this helps us get closer to that.
@@JohnLauerGplus ух ты, только заметил, что тут был а я не ответил :((. Почту чистил и наткнулся. Я же так вижу, что тут DRV8825. Он не задуман для точной техники. Он спроектирован для управления кондиционерм например или чем-то таким. У него там есть погрешности.
@@JohnLauerGplus если опираться в низкий бюджет и тот же формат, то на ум ничего кроме A4988 не приходит (он вроде не даёт таких погрешностей, но есть другие минусы), может есть что-то и получше.
Somebody else mentioned that too so I fixed it a few days ago in GitHub. Sorry about that. All is not lost though because that is the next gen PCB for tmc2130 stepper and it's starting to work for me.
@@ThePawel8888 I don't have that figured out. That board design requires 2 additional custom PCB's, so this is quite the task to get figured out and debugged. This is a weekend hobby project so it can take months/years.
Why are you putting the driver, the controller and some DCDC-converter for every axis inside every "knuckle", together with the motor?? Why not only the motor inside the knuckle and all the electronics for all the motors in a separate compartment?
Running wires is a mess. You'd need 4 stepper motor wires * 6 actuators, plus if you get fancy on the hand with multiple motors, you end up with even more wires. It's cheaper/easier to put a wireless microcontroller in each actuator. The ESP32 is so cheap these days it makes this possible. Also, by doing this in a distributed way, you can create multiple hand type grippers, dispensers, lasers, etc for the hand and follow the same structure of the Gcode. Also, for each actuator I want a temperature sensor, touch sensors for moving the actuator fwd/rev and hitting a record button to record position. I also want a fan in the actuators which means a fan controller. All of this adds up to it being more cost effective and simpler to put a controller in each actuator plus the optionality of numerous end gripper/hand solutions.
@@JohnLauerGplus Hum... If you say so. Why temperature sensors? Design properly, test once, measure, compare, done. I also don't see why the gripper-thing would require controllers and drivers in every joint. Also, the number of wires goes down the further up the joints you go. I don't want to step on your toes, but this approach seems overly complicated. Pretty sure there's a good reason why every robot manufacturer rather pulls wires through the joints than putting all the electronics inside those... Mass is another thing to consider. Anyway, cool project nevertheless. I really enjoy watching it grow!
hey what bolt for the joints and the connector is or the motor and the capacitor thanks you . how to controller with xbox controller wireless thanks mate
The bolts needed are described in the Thingiverse. The capacitor is your typical size for a DRV8825 which is about 100uF or bigger. For Xbox, that's a lot more involved but been making progress there and may be able to post a video soon.
@@ThePawel8888 Look at the Thingiverse description really close. These are imperial unit machine screws. I wish the designer had used metric, but they didn't.
@@ThePawel8888 Lobo CNC said, " Most all of the screws used are 6-32. I went with what is most available in the US". The only screws that are metric are the motor screws I believe.
Really cool project John. Thank you for the video.
I follow a lot of projects on UA-cam but this is my new favorite.
This is seriously better than anything on Hackaday.
Thanks. Although, probably a lot of the techniques I'm using I learned on Hackaday, like the ESP32.
I'm glad YT had this video on my recommended list. Awesome work you have there. Keep up the good work!
go a bit deeper into the electrical stuff and programming please. us beginners are always waiting for series like this.
You sir are a gentleman, a genius and a genie!
You are too kind!
Excellent series, thanks for sharing
Waw, I'm impressed ! Congratulations and thnxs for sharing. Looking forward to see the next vidoes.
Thanks Philip! Looking forward to sharing more as this build progresses.
You should use some ferrules for your wires when plugging in to your screw terminals. They'll last quite a big longer and you'll get a stronger connection.
Good idea.
Wow I want more video about this project
That is best 3d printer & robotics project I've seen .
Thanks. I'm really liking the design too. Seeing the electronics work is powerful for feeling like this robot will work overall.
I have finished the first module and its working great, limited to the chillipepper test code for now, but at least its working! The PCB, hardware, and code all work, no surprises. I had some Wires 6 Conductors Capsule Compact Slip Rings included with the aliexpress order, trying to see if there's a way to connect the 24v line in stages inside the arm. This will take a redesign of the couplers/motor mounts for sure, but it's a fun project. I am interested in what others are doing to as to a controller once the arm is complete, the ESP32 is a great way to connect everything, open to code and ideas:)
Awesome project John!
Looking great John.
I just bought all the parts minus the sensors. Ordered 30 of your custom PCBs. I am building this with my Robotics class. I will upgrade the actuator like you did for the heat issues but will not be running all the sensors at first. I just want to build the arm and control it with the xbox controller. The arm will stay with the class and each class will seek to improve on it is my goal. Thanks so much for your videos.
That's awesome. Have fun with it. I never quite got further than my part 3 video, so if you make any further progress on the design, let all of us know. I'd love to see your videos of your class putting it together! It's really quite an intricate design.
@@JohnLauerGplus Thanks! We are printing everything now. Waiting on the electronics to get here in a few weeks. The only part I cant seem to find is the touch sensor you used. I will post some video when we are all finished.
@@infosec1812 The touch dial is a custom circuit board. Order it at the same time as the other circuit board.
@@JohnLauerGplus I ordered the pcb for the touch dial. Now I just wait for everything to get here. When I ordered the circular PCB, JLC asked if I wanted the holes to be castellated. I agreed to the service but the price went up quite a bit. I ordered 30 of them at a cost of $87 including shipping.
@@infosec1812 Hmm. That seems really expensive for those boards. I'm guessing you're referring to the 3 castellated holes that connect to the ws2812 LED, so you can mount it at a 90 degree angle on the board. What's probably cheaper to do is not pay for castellation and instead make them full holes by expanding the board outline and then just Dremel the PCB, or cut it with clippers, on your own. Back when I designed these, JLCPCB would just do castellated for free.
Parabéns pelo projeto. Justamente o que precisava. Vou ver o resto do material
getting excited for part 4
Love the modular design. I'm guessing buying these metal gear reducers are pretty expensive. Great use of 3d printer.
A screw terminal connection onto tinned wires, in my experience, is troublesome. The solder is malleable and especially with movement (which you have *lots* of) will cause the connection to loosen due to the solder deforming. Some will bemoan this view, but I suggest you see for yourself and go back and try wiggling those power connections and examine the status of them. Search "crimp ferrules" for a solution
Interesting. The goal was to make it not fall out, but I could see the solder eventually wearing down. I did use silicone wire which is so soft that it shouldn't pass on very much pressure to the screw terminal. I also think a crimp could be added to the plastic parts to take all the load of the wire movement prior to the screw terminal.
@@JohnLauerGplus"proper" silicone wire has 2 main functions. The silicone insulation has excellent heat characteristics making it suitable for operating near high temperature items such as motors and heaters and it contains a higher quantity but smaller gauge strands than an equivalent CSA multistranded wire which makes it very flexible and a lot less susceptible to fatigue.
I was always taught that only the conductor should be within the clamp termination and the insulation should stop just beforehand. I find that this sometimes leads to stress on the conductors at that point because there is no strain relief so for some connections I double over the conductor and insert the wire including a small amount of the insulation to allow the screw terminal to bite and act as a clamp. The insulation then has a tendancy to crush out of the way at the top and bottom of the strands and doesn't interfere with the electrical connection but maintaines enough presence to act as a support. Another alternative is to add some heat shrink sleeving to the wire just prior to the termination and works really well on very thin wires
The ferrules I suggested to search for solve most of these issues in one simple package and are extensively used (at least here in the UK) for electrical installations including electrical control panels
@@havenview That's some good stuff there. Thanks for the advice. These are the kinds of details that are great to hear about from people's experiences out there. It will help in the design here.
Great video! I've noticed a lot of robot arms seem to incorporate the motor driver (and other electronics?) right next to the motor...so it has to fit inside the joint. Is there a reason this is preferred instead of just routing the motor's cables to the base of the unit or somewhere else where all the electronics are housed in a single location?
thanks for sharing! I think I found inspiration. I want to design an embedded wire. The stepper motor uses a ring as the contact wire. In this way, an infinite 360-degree rotation can be achieved. .
me too!! I was just sitting around, thinking, when I realized, hey, AUX jacks (audio, 3.5mm) are essentially a series of rings with wires and- WAIT I CAN USE COPPER AS RINGS THAT TOUCH EACH OTHER!! This has even helped me get more ideas, your comment. I'm gonna use springs and such to keep the rings pressed. You, sir (or ma'am, not gonna assume), are a lifesaver.
First let me say this is beyond anything I could currently design with my skill level, so kudos. Did you experience problems with having the cables run through the structure as opposed to outside it?
absolute Cool
Nice design
In order to run it as as a continuously flowing robotic arm do you have plans to connect it all through a master controller? Have you thought about placing 9DOF sensors on all the joints so the master "knows" where everything is and the most direct path to the object? I thought this would make it more organic. I've been following for years. Great work, i've been wanting to build an arm or two but not being a programmer had to wait on others for the examples.
To get this to the next step we'll need some open source contributions from others to help achieve the goals you're describing.
What did you use to drill those four holes? I am still brand new with pcb milling (i got the sainsmart genmitsu or whatever it is, and i need to figure it out.) i want to be able to make use of my double sided pcbs for a controller for my Ender's lights, and for making my own custom pcbs for an arduino and pi to work together and such. What software does that for you??
thanks in advance!!
For your next robot arm you should use sliprings in for the wires and see if you can do 360 rotation
Totally agree. I think you could just do the power via slipring and get everything else to be wireless and you'd have a super amazing arm that's easy to assemble.
@@JohnLauerGplus Yea that's a good idea, I guess it would have to be a bit bigger maybe to fit the stuff, but 360 rotation would be really cool. If you got a tight grip on the end like fingers you could fully screw in a screw with it. lol!
Thanks for all the work on this, especially the documentation. I just ordered the PCB boards, zip worked perfectly. I have this arm working and running using a mega/ramps (three steppers only) and three tb5600s. Old school lol. This approach you have is way better! I am curious on the Adafruit joints that allow rotation for the 24 V, that might solve the issue of the 1 W power wire needed.
which size stepper motors did you use and were did you get them.? thank you
Awsome project!
You could consider using PETG instead of PLA if some mechanical parts fail
The shaft is disconnecting from the sun gear due to heat in my small actuators. So, I do need to find a solution to that. Bought some PETG to try it, but I still think that won't be good enough.
Could you please explain how you turned the gcode coordinates into angles for each joint? The controlling software and the inverse kinematics confuse me the most, especially the multiple solutions part. Also, that's a nice robotic arm you got there
None of that is quite figured out yet. The movement in this video is just a per actuator back and forth test movement. Next step is Gcode and record & play functionality.
Excuse me, why install EPS32 instead of directly using the driver to drive the stepper motor
Hi John, this project looks great! I really would like to have my hand at replicating what you made of Jeff Kerr's robot arm so far. However your explanation on the electronics in this video is quite brief. I am not very familiar with electrical engineering myself so was hoping you could provide some more information on which components you used and how/why.
Looking forward to your response!
I had the same fear, but if you look deeply at the PCB schematics it's very straight forward, and a good learning experience.
Very nice build and video. How mechanically rigid is that two stage planet gear design? might it be interesting to print some of the mechanics in metal?
Printing in metal would be awesome and possibly if this robot arm is viewed as a prototype and works well enough as the community invests in it, which is already happening if you look at the Thingiverse page, you could end up with this being the first highly popular open source 3d printed robot arm.
You should look into tmc2208 stepper drivers for extra smooth operation! Should make a huge difference to the drv8825 you are using right now!
I bought some tmc2130's a couple weeks ago just like you were thinking. The idea is three-fold. 1) Make the sound really nice on the arm, 2) Have the ability to dial in current settings per stepper motor perfectly via SPI, but more importantly 3) Use the homing feature where the tmc2130 detects the pending stall to do homing without an endstop switch. Prior to that I was thinking of using a hall magnet sensor, but that would add extra components to each actuator.
John Lauer Yes that homing feature is a real plus, I would love to see that implemented
Cool
I will wait for next clip
Brother you are super genius... 🙏
The best !!!👍🏼👍🏼
Awesome project ! :)
Very very cool!
Pretty Sweet... I see you have it in a standard 6DOF configuration. Are your offsets all standard as well or are you going to be putting together your own inverse kinematics. Finding joint angles from Cartesian coordinates is the part I want to see in some detail. :D Good job.
The initial plan is to simply let you train each joint, record its position, and then play it back. Getting inverse kinematics going will be a second phase, although this will be all open source so perhaps somebody from the community can help on that part.
Bro where do you learned to use fusion 360? How do you put the Electric parts in Fusion?
Fusion is actually really cool, it has all sorts of views, from electronics to even having it put into an assembly line with full scale versions of this arm!
It's fun, and I cant wait to learn how to use it (i got the hobby license, meaning it's free as long as it's for personal use)
Could you show us, how did you program the robot? was it with ROS?
Part 3 shows more how it's programmed, but no, I did not use ROS.
Hey john, can you list the correct jack for the stepper motor as you mentioned here(and any other components (except normal stuff), I know I’m missing a few! Thanks
I'm pretty sure it's a JST-PH 4-Pin Header. The Eagle BRD file has it in the properties description of the component.
@@JohnLauerGplus thanks! for anyone needing it, here you go:
Partlist exported from C:/Users/jhkru/Desktop/robot arm/PCB boards/robot-actuator-controller-v1-master/adapter.sch at 4/28/2019 12:06 PM
Part Value Device Package Description MF MPN OC_FARNELL OC_NEWARK SPICEPREFIX
5V PINHD-1X8 1X08 PIN HEADER
5VOUT PINHD-1X2 1X02 PIN HEADER
24V PINHD-1X2 1X02 PIN HEADER
C1 CPOL-USE5-6 E5-6 POLARIZED CAPACITOR, American symbol C
D FE08-1 FE08 FEMALE HEADER unknown unknown
GND24V PINHD-1X2 1X02 PIN HEADER
GNDOUT PINHD-1X2 1X02 PIN HEADER
J1 CON_TERMINAL_BLOCK_02-5MM CON_TERMINAL_BLOCK_02-5MM TERMINAL_BLOCK_2P_5 2 poles wire to board terminal block
JP1 PINHD-1X8 1X08 PIN HEADER
JP2 PINHD-1X3 1X03 PIN HEADER
JP4 PINHD-1X4 1X04 PIN HEADER
JP10 FE08-1 FE08 FEMALE HEADER unknown unknown
JP11 PINHD-1X1 1X01 PIN HEADER
SV1 MA03-1 MA03-1 PIN HEADER unknown unknown
SV2 MA03-1 MA03-1 PIN HEADER unknown unknown
U$1 JST-PH_4-PIN_HEADER JST-PH_4-PIN_HEADER JST_B4B-PH_HEADER 4-pin JST PH Shrouded Header, top entry
Your PCBs look pretty good. What setup are you using to mill the prototypes? I'm particularly interested in what spindle you're using.
Check out my UA-cam video on my whole process for milling a PCB with ChiliPeppr ua-cam.com/video/DX0xGgSARj4/v-deo.html
Thanks! @@JohnLauerGplus
TMC 2208 stepper drivers (silent step stick) and accelstepper library for stepper acceleration.
Working on a PCB design that uses TMC2130, ESP32, and a touch sensor PCB on outside for jogging per actuator. TMC2130 gives ability for sensorless homing.
@@JohnLauerGplus tmc 2209 should be coming out in a while. It's a combination of the 2208 & 2130. Looks like a sweet project!
the pdb u made goes each stepper motor for all 7 of them or just the last 3
The idea is to go to all 6 actuators so you only have to run 24v power across the whole arm, but looks like I'll need a sync signal wire too now. Still work in progress
cool thanks can wait printing parts now
It seems realy cool! I just want to learn how much weight , it can handle on the gripper ? Did you try for limit?
I like the idea. Nice explanation. Not sure if PLA is a good idea, it won't deal with heat well at all. Why have a separate MCU for each stepper? Seems overkill when one could have done. STM32 perhaps with an esp for WiFi?
Heat is a concern, especially on the small steppers. Trying to figure out if I can just print the sun gear in something else because the heat emanates through the shaft of the stepper and can melt the plastic and the superglue gives out. The reason I'm using an ESP32 for each stepper is I want a touch jog dial at each actuator, temperature sensor, fan control, RGB LED status indicator, and sensorless homing. All of these would require numerous wires back to a core controller. Also, I want a distributed system at the core of this so you can add-on degrees-of-freedom with a lot of freedom. What if you wanted to add 1 more small stepper actuator at the end of the arm? When you get to dealing with the end gripper which may have tons of sensors, motors, etc it will almost certainly have it's own MCU. So, might as well set up a core operating system for the robot arm that fully embraces a distributed approach with synchronization. The other issue folks don't realize is how complex/hard it is to run wiring across these robot arms. You want to eliminate every wire you can, so by using an MCU you could in theory just run 24v power and nothing else.
@@JohnLauerGplus You make a very good case. PETG will do what you need if you have a heated bed. Why not file a flat on the Nema shafts instead of relying on superglue.
Great project
Seems like magic to me. 😁
Hello
Have you worked the inverse kinematic model?
Can you recommend learning sources that you have personally used?
Yeah, other UA-cam videos.
so... each joint has a dedicated MCU ? How do you connect each other, Wi-Fi ?
Yes, over Wifi.
John Lauer and what about sync problems between joints? If you want to follow a certain trajectory at a certain speed? Do you have any feedback position sensor ?
@@pablo_costas If you watch the video on the Cayenn protocol I created for ChiliPeppr ua-cam.com/video/SlHhcErWCDQ/v-deo.html, you'll see how I solved sync issues. Each device is it's own ESP8266 in that video and there's one wire for sync. I'm using the same approach here. All Gcode is uploaded ahead of time where just the commands for each actuator are uploaded to that actuator. Then the sync wire is just a count. When the device hits a count where it has a command, it executes it. However, on this project I'm going to try to not have to run the sync wire. I have a feeling that won't work, but gonna give it a try.
Furthermore, one of the ESP32's becomes the master where it sends out the "which line of Gcode are we executing" command. It then waits for an acknowledgement from each device that has Gcode on that line until it sends out the next "we are executing this next line" command. That's how it all syncs.
If it's a move where the start/end of the move should finish at the same time across multiple axes, then the actuators will just adjust their feedrate to match the other actuator by just using math.
It's all theory right now until implemented.
John Lauer sound cool, I’m looking forward to see it working !
What type of 3d printer you used?
Thanks, really cool project. What kind of 3D printer did you use for this project?
Creality ender 3. 190 bucks!
if you add oil to the moving parts,maybe it can build an ironman suit
Gfx Grafix People Don't tend to lubricate plastic gears with oil since it will eventually wear out faster. Perhaps with dry lubricant such as graphite powder?
Cool. What motors are used? Where is link to aliexpress to motors?
Take a look at the description in the Part 1 video. All listed there.
This is so bad ass!
It's so amazing
amazing, really interesting. What is that chip silver color of the pcb? a processor, memory or what? it calls my attention
that's an esp32, it's the microcontroller he's using to control the stepper motor. neat little microcontroller, very powerful for the price and has wifi hardware integrated into it.
Sir, what filament material did you use to build this structure, gears and mechanisms?
amazon basics pla. run it at 210 celsius on my ender 3.
hey!, nice work!, which milling machine you use?
I use the generic 3040 CNC from China with a TinyG board and ChiliPeppr to run it.
Nice!
Is that a 300uf 16v cap your running in the final?
I run with a 100uf 26v cap now, but I may have an old one in this video. I blew a 16v cap a month ago and realized my error.
John Lauer ok thanks for the update, waiting on AliExpress for parts as usual, the pcbs look great
what 3D printer you use for this?
How to control stepper motors with any arduino board?
I want to build a smaler version of this robot. Is it possible to get the original cad data? I cant edit the stl :/
Thanks a lot,
Dave
All of that is on the Thingiverse.
hey what bolt for the joints and the connector is or the motor and the capacitor thanks you . how to controller with xbox controller wireless thanks mate
Are you planning on adding slip rings to the joints in a future iteration?
That would be awesome. Any design ideas for how to achieve it?
@@JohnLauerGplus depending on your power need: www.adafruit.com/product/736
@@okbrb Interesting, but how would you wire that through those actuators I show in the Part 1 video? I would need at least 2 for power, but likely 1 more for a sync signal.
@@JohnLauerGplus I'll take a look at that video and reply soon
@@okbrb 1 year later... I'm hoping to figure out what the heck to do about it, because i need to be able to turn every which way to have full freedom.
*Vraiment intéressant !*
Amazing!👏
But why ESP32? Why not blue pill stm32 for example? I wanna repeat it on bluepill😃
Blue pill STM32 doesn't look very good compared to ESP32. Blue pill is 72Mhz, 128K flash, 20KB RAM @ $2 while the ESP32 is dual-core 240Mhz, 4MB Flash, 520KB RAM, Wifi, Bluetooth, and lots of sub-controllers like a pulse counter, pulse generator (for stepper driving), 10 touch sensors, etc. @ $4.
@@JohnLauerGplus wow, i didn't know that🤔 and grbl it seems have to .. excellent choice😃
Nice (:
Though I can't stop thinking, while you already had to connect the actuator to the power supply through their VCC and GND wires, why didn't you just add another wire for signal control of each actuator? Why there are that many ESP32s wasted? (one would be enough...)
Anyway, really nice project.
Well, take a look at part 3 video to see why I used an ESP32 in each actuator. ua-cam.com/video/4o3d7_WZ_DQ/v-deo.html
Hello I'm Raffaele and I have to say that your robot is fantastic, you did an amazing job; you could mount a spindle to make it work like a cnc?.
How are you sensing position, please?
The idea is to home each actuator and then just keep track of the step position on the stepper motor. The homing will be done via TMC2130 stepper motor drivers that can be homed without endstop switches. If that doesn't work I'll had hall sensors as the endstop switches. Another alternate idea is to put an absolute encoder on each actuator, but that doesn't seem as workable since I'd want to track the reduced part of the actuator, not the stepper itself, and nothing commercially available is that compatible that I can think of with the shape of the actuators.
Aah, dead reckoning. Fingers crossed!
@@i-make-robots How is that dead reckoning? People are using the TMC2130 to home 3D printers. Hall sensors are also common for homing. Absolute positioners are spot on too. Dead reckoning would be inaccurate.
I home an axis and I count steps as I move. if I never miss a step then reality matches my estimation and everything is fine. While the TMC2130 is very good is it not perfect and can miss steps - I've had layer shift on Prusa 3s equipped with the same driver. Rare... but when it happens... ;(
@@i-make-robots With your experience on TMC2130, do you see layer skips during the print? If so, are you running it at the 256 microsteps, or the interpolation? Are you running the motors with enough power to not get skips? Or are you saying during homing? The homing would need to be done after a power off because you have no current step count to reference off of. I could store the current step count each time in flash memory, but I'd have to buffer that, and if there's a power outage you wouldn't really know if you had the buffer write. So just plain old homing would seem to do the trick.
is better to print the upper arm and forearm standing up or lying flat .
I think I did it flat first and then didn't like it so did it standing up but with a sizeable raft.
@@JohnLauerGplus My printer is not tall enough so I have to print flat. I have to use auto supports and the inside of the arm is filled with supports. My Dreamer NX barely fits the upper arm.
Motors?
Any news on the wireless controller how to get ot working thanks
The current workspace has XBox controller support at chilipeppr.com/arm but you would need my latest codebase for the actuator and I don't have that quite published yet. Working on it.
I want to build a 6 axis robot arm for a 3d printer with a 4 axis print bed.
Great 👍
Immenso
You need a DC Servo Motor do the job better.
There is the ODrive project now which can give you nice control over a brushless DC motor, but I'm not so sure you get much more power/torque out of that solution than just using a stepper.
If you filled those arms with an epoxy granite, it would move as if an industrial robot.
That sure would add some weight.
@@JohnLauerGplus That's essentially what allows industrial robots to move so precisely. As you know.
@@dieselphiend The Universal Robots UR5 is pretty big but is only 55 pounds. I've always considered the harmonic drives in it to be why they're so precise.
@@JohnLauerGplus The most precise motors/drive system in the world is only as good as its base, and frame. Precision has just as much to do with the rigidity of the frame, as the resolution of the encoders. I would even say that rigidity is more important than resolution. You can indeed achieve rigidity without adding a lot of weight, but with enormous cost.
In order to have a rigid frame that was also light weight, you would need materials like composites= carbon fiber. That would cost a fortune. That's why industrial machines weigh so much. They are exchanging weight (mass) for rigidity. It is the cheapest way to have a rigid frame. I really admire your robot arm- it''s only a few steps away from being very capable.
Have you considered driving it with an Odrive and brushless servo motors? Are you familiar with Odrive and field oriented control? It uses bleeding edge control circuitry from Texas Instruments, borderline dark magic type stuff.
@@dieselphiend yes I am very familiar with odrive and do think that could be a natural progression to this design. Thinking about that as phase 2 of the design or maybe somebody else in the community extends it. On the rigidity, I think that will be a future phase too because the power of these 35mm steppers is not great. There are heat problems too, so lots of stuff needs to get solved prior to rigidity. Also the syncing of actuators is still a work in progress using Bluetooth. I do believe the world needs a great open source robot arm though. Maybe this helps us get closer to that.
👍👍👍👍👍👍👍
Revision 2: Use slip rings so no wiring is seen
Where I can buy the balls?
www.amazon.com/gp/product/B003MINZD6/ref=oh_aui_search_asin_title?ie=UTF8&th=1&psc=1
@@JohnLauerGplus Thanks
Все круто, но драйвера для шаговых двигателей лучше использовать другие.
What stepper drivers do you recommend instead?
@@JohnLauerGplus ух ты, только заметил, что тут был а я не ответил :((. Почту чистил и наткнулся.
Я же так вижу, что тут DRV8825. Он не задуман для точной техники. Он спроектирован для управления кондиционерм например или чем-то таким.
У него там есть погрешности.
@@JohnLauerGplus прошу прощения, что ответил только спустя пол года :(
@@JohnLauerGplus если опираться в низкий бюджет и тот же формат, то на ум ничего кроме A4988 не приходит (он вроде не даёт таких погрешностей, но есть другие минусы), может есть что-то и получше.
Лайк! Класс! Подписка.
Hanzhen harmonic gear drive , robot joint gear , over 30 years experience
u uploaded the wrong files and i back the board today so not right board
Somebody else mentioned that too so I fixed it a few days ago in GitHub. Sorry about that. All is not lost though because that is the next gen PCB for tmc2130 stepper and it's starting to work for me.
so what can i do with the 20 borad i got ok or its waste of money and do i bin the pcb or what
@@ThePawel8888 I don't have that figured out. That board design requires 2 additional custom PCB's, so this is quite the task to get figured out and debugged. This is a weekend hobby project so it can take months/years.
Why are you putting the driver, the controller and some DCDC-converter for every axis inside every "knuckle", together with the motor?? Why not only the motor inside the knuckle and all the electronics for all the motors in a separate compartment?
Running wires is a mess. You'd need 4 stepper motor wires * 6 actuators, plus if you get fancy on the hand with multiple motors, you end up with even more wires. It's cheaper/easier to put a wireless microcontroller in each actuator. The ESP32 is so cheap these days it makes this possible. Also, by doing this in a distributed way, you can create multiple hand type grippers, dispensers, lasers, etc for the hand and follow the same structure of the Gcode. Also, for each actuator I want a temperature sensor, touch sensors for moving the actuator fwd/rev and hitting a record button to record position. I also want a fan in the actuators which means a fan controller. All of this adds up to it being more cost effective and simpler to put a controller in each actuator plus the optionality of numerous end gripper/hand solutions.
@@JohnLauerGplus Hum... If you say so. Why temperature sensors? Design properly, test once, measure, compare, done. I also don't see why the gripper-thing would require controllers and drivers in every joint. Also, the number of wires goes down the further up the joints you go. I don't want to step on your toes, but this approach seems overly complicated. Pretty sure there's a good reason why every robot manufacturer rather pulls wires through the joints than putting all the electronics inside those... Mass is another thing to consider.
Anyway, cool project nevertheless. I really enjoy watching it grow!
kuka finished and bankrupt
Please stop the vocal fry.
What's a vocal fry?
NOT LIKE VERY PRIMITVE
A lot of work but it looks so crappy...
hey what bolt for the joints and the connector is or the motor and the capacitor thanks you . how to controller with xbox controller wireless thanks mate
The bolts needed are described in the Thingiverse. The capacitor is your typical size for a DRV8825 which is about 100uF or bigger. For Xbox, that's a lot more involved but been making progress there and may be able to post a video soon.
@@JohnLauerGplusabout bolts i dont get what u mean m4 40 is tha size m4 40mm long.
@@ThePawel8888 Look at the Thingiverse description really close. These are imperial unit machine screws. I wish the designer had used metric, but they didn't.
@@ThePawel8888 Lobo CNC said, " Most all of the screws used are 6-32. I went with what is most available in the US". The only screws that are metric are the motor screws I believe.