Back in the mid 80s I worked in robotics, and there were (and still are) many different approaches for different applications. The approach you took here is specifically for lightweight loads, as strings, cables and such tend to stretch with higher loads as well as over time, thus affecting the precision. Robotic arms are designed for specific loads, no matter how many axis (degrees of freedom) they have. With your system, you have to pay very much attention to your first and fourth axis to not over-rotate them. Otherwise some of your strings might stretch or even snap, or create friction inside the tubes that have been wound around the arm, causing it to fail. Sorry if I come across too critical. I only mean to point out some points I personally have had experience with, and have had my own fair share of mishaps 🤫
Don't worry, you didn't come across as critical. You're right about the applications. Some of these issues will be mitigated when I fin sensors to turn it into a closed loops system, but I agree that this approach will not work for higher payloads.
@@roTechnic you could still overcome the limits on the 1st and 4th axis created by the wires getting wrapped up. 1st could have the spools and motors mounted there since weights not an issue that low down. but the 4th could be bridged with a freely rotating tube around the joint each end being a wire spool. as the joint turns its rotation relative to the spool would be the same as the spool being driven since the tube will be held stationary by the spool on its other end, so you drive that spool the other way to counter keeping the axis this whole line is running still while the 4th turns. this way the 4th can turn as much as you want without anything tangling, it'll just run the wire around one spool as fast as the motor turns it back. and you can nest this inside another of the same mechanism to run both 5th and 6th axis. im too tired to explain it well so heres and imgur link to a doodle imgur.com/a/GgBRnoJ
This is pretty cool. Not unlike how our own wrists work when you think about it, right? Our tendons are controlled by muscles that are actually mostly much lower down in our forearms, away from the actual fulcrum point up on the wrist that they're affecting. Kinda different but similar in a way. You get what I mean. Maybe that's why we evolved like that, more efficient to move less mass around at the end of the arm while maintaining control over the joint at the far end.
muscles would be the motorr in a robot, however when it comes about motion, animal human, the most powerful fuel is oxigen, compressed air, people of robotics should consider this, the wire hacks and installations, soon will become the next issue to deal with, however by now, the best approach possible.
I love where this project is going. If you make the 3D files open for anyone to download, I can totally see someone making an open-source 3D control GUI for the whole thing. This definitely has potential as a cheap, DIY camera robot!
I really have to say, Im blown away by this incredible little arm. Im currently working on a project in school and this helped me out so much with a LOT of problems. Thank you for that great video!!!
Are they though? Like really? This is sort of the equivalent of having a whole pile of small muscles in your chest somewhere and just having a skeleton with some skin on it past your elbow. Also, in terms of trying to replicate how human hands move, this has been the preferred way of doing it for at least 50 years. It always disappoints me that just because people are seeing something, personally, for the first time, they think that its the first time that thing has been done.
As if the human anatomy was the epitome of efficiency and ability. The human body is extremely flawed and limited. It is not the bar that should be set for mechanical devices.
@@htomerif That business of saying "I can't imagine anything better than this!" is just human, gotta be take the time to show where the path to all the other stuff starts. You have to experience reactions being wrong a few times before learning to allow for more outside what you're seeing that's so exciting. You will have done it yourself when younger and I guess haven't noticed moving on from that . So, teach patiently. With regard to this specific reference to anatomy, you could look at the forearm where the muscles that do most of the movement of fingers are most of the way up to the elbow with long tendons reaching into the hand. Wiggle your fingers while you grip the elbow end of that forearm with the other hand and you'll feel the muscles doing their job.
@@DavidThornley No, this "I can't imagine anything better than this" definitely isn't "just human". Its "just lazy" and "just ignorant". This person is almost certainly a grown adult and this person has seen, probably in person, demonstrations in school on field trips or whatever of exactly what I'm talking about. I've spent days researching and going over things like the finer points of the longevity of molten fuel nuclear reactors or the thermodynamic efficiency of unducted, multistage turbofan engines with people who are actually interested in *learning*, but when I encounter someone who clearly just pressed the "toilet flush" lever on their brain the instant they left high school, I don't feel even the slightest obligation to rectify that lost cause. If you want a good example of how this person is ignorant of everything that's gone on in the world, look at the Honda ASIMO. Its been around and been iterated on for 20 years and been in development a great deal longer. Its far more human-like than this robot arm. Before you get the wrong impression though, hobby robotics (which I obviously do myself) have a real problem when it comes to cheap, accurate, compact actuators. We don't have anything to bridge the gap from RC servos that have been around since the 80s to AC servomotors (which have also been around since the 80s). I'm not knocking what this guy has done at all. I don't think it fits and its definitely not new but he's trying to address a serious problem in robotics for people who can't blow $20,000 on an industrial grade robotic arm.
I've always been really nervous about robotics and have been slowly learning about it as I get more comfortable with printing and programming and seeing things like this makes it all seem so much more approachable, there's still room to innovate and make things easier and get over some of the hurdles like weight and motor strength. I've seen hydraulic robotics where they used motors to just press and depress plungers on syringes attached to tubes and something about that just immediately made the whole of the technology seem so much more approachable and seeing you attaching the lines to motors on your final design and have them fishing up through the rest of the robot just... It just makes it make so much more sense, it feels so much more applicable, so much more reasonable. It's just pulleys, tubes and motors at the end of it, much less daunting.
thanks. the main drive behind the design is the idea of simplicity.. keeping it as simple as possible - and then maybe upgrading parts and increasing complexity over time, but with each change being small and easily understandable
I love following your progress with the arm. I was particularly intrigued with the ability to do serial communication with Python. As a beginner Arduino enthusiast and as someone who feels more at home with Python, I would love to see more of that. Great video!
Thank you. Yeah, the way I'm approaching this is to do the minimum of coding on the arduino and then I can bang all the "intelligence" on the computer. Arduinos are cool and all, but python is SO much nicer than C :D
@@roTechnic That's really great. Just the other day I was trying to translate a relatively involved code from Python to C++ for a project and found it extremely tedious. I would definitely like to take the approach of doing the heavy lifting in Python and would also love to hear if you have a good source for learning how to integrate Python into the Arduino framework =D
@@curious_ben I'm afraid that I don't have any sources for what I'm doing. I normally just design up a quick DSL (Domain Specific Language) - in this case the stepper motor commands - and then write a quick and dirty parser on the arduino. As I keep the DSLs as simple as possible, I've never needed to use a library to parse them, a simple State machine, or in this case a couple of if statements are all I need. The Python side is even easier as it's just serial communication and building up the commands as strings. If you've got any specific things you'd like to do, I'm happy to help over email.
Arduino is adding MicroPython language support to a select number of board models. Two Nano (BLE Sense, RP2040) boards and the Portenta H7 board to name a few.
The great thing with actually doing stuff like this is once you have completed the design your mind is already designing the Mk 2 because you can actually see where it can be improved. Well done for doing this and posting the video.
Pretty genius in it's simplicity to use bowden tubes as the line guide. Industrial robots often use a sort-of similar setup too to remove mass from the wrist but with timing belts instead.
I've had this same idea for a long while, but instead of cord it was sprockets and chains (or belts and pulleys for simpler/test versions) with rolling joints that allow the arm to fold up however I need it to. I just haven't had the education and materials to do it yet
I had an idea for draw string robotics, absolutely thrilled to see it in action, I feel as though with some clever thinking and 3d modeling the Bowden tubes could almost completely run through the core of the arm (kind of tendon like)
They can also be applied to legs as well ! the Birdbot robot has motors only in the hip in upper hip , the leg itself is mostly just strings , no motors whatsoever
the way you talk and explain what you're doing is marvelous. its way better than the youtubers who sound like they consumed 6 pots of extra strength coffee just before filming.
the best part is you smiling while looking at it when it finally worked. we just see the final result but I bet it was a long process not free from frustration
Hi, a couple comments: - I'm not sure what wire you use on pulleys, check out Dyneema (UHMWPE fiber), which is high stiffness, strength and slippery. - Angular momentum of a mass at the end of a rotating arm increases with the square of radius. Which means if you move wrist motor from wrist to elbow (1/2 distance to shoulder) gets 1/4 (75% reduction) vs 0 (100% reduction) of moving motor at the shoulder. This is significant because you can pull wires in a straight line, avoiding problems of bowden routing: stiffness, large dynamic/static friction, limited strength.
Nicely done! I've been working on trying to design something for a future bot and wanted to make a dual-6DOF setup of sorts and this largely validated some of my theories before getting deep into the maths of it. This was both a cool project and super helpful. Thanks! :)
Freaking cool! Love to see home innovations like this. At the end you mentioned you wanted to put sensors at each of the DOF to know where it is at all times - alternatively you could have an exterior plate that you calibration with from time to time to save weight on the arm still. If you have worked with CNC Mills, it would be like calibrating the Z axis - a conductive metal piece on the arm will slowly move towards the sensor plate until contact is sensed and a high level of accuracy can be achieved for the exact position of the arm. You would have to get creative with where you put the conductive parts on the arm in order to know where each DOF is, but this may be a lighter and cheaper option for sensing at the cost of constantly knowing where the arm is. I just wanted to share in case this was an avenue that may interest you!
Amazing idea! It reminds me of the LEGO "Flex-System" but without the limitation of their short travel of the link. Add also a gear reduction on the side opposite to the motor, and it is very versatile & powerful!
This all reminds me of my old dentist tooth cutting machine, when you went to the dentist to have a filling he had a long arm with a belt that came from the motor through universal joints to the cutting head.
One of the first electro-mechanical robots, the ASEA (later known as ABB) IRB 6 dealed with this issue in a similar way by placing the motors closer ro the base and using a clever linkage to actuate the 4th and 5th axis (it only has 5 DOF).
Stunningly elegant... I know for a fact... even though you say you made this part and another part.... it would take hours of designing, testing, iterating to get the right design. Stunning piece of work and congrats on having the skillset, with electronics and programming to do it....... and the determination to not give up when 90% of the way there.
Back in the day, we built a kit robot arm that used cables with steppers in the base. The cables ran along the arm segments to no need to have bowden tubes flapping about. armdroid I think it was called.
I'm thoroughly impressed. Also, this is completely random, but thank you for speaking in a normal tone. I have to listen to loud voices all day at work, and sometimes listening to loud "presenter voice" news casters and TH-cam people use can be a little irritating.
I want to suggest you look at differential pan&tilt mechanisms. It doesn't save you on motors or bowden cables, but I think the mechanism is overall lighter and more rigid. it can be used at the wrist, but also at the base of the robot, reducing a lot of moving weight. It can be done with worm gears, too, to get fantastic holding torque.
I certainly will look into it. I'd like to get this arm up to the point where it is useful, and then look into other designs for some components. What you're suggesting will fit really well into that. Thanks
I'd recommend bike cables and tubes. More durable and repeatable than fishing line and I'm pretty sure your take ups are big enough that the extra stiffness won't be a problem.
It all makes perfect sense really. If our arms were put together the way we normally put robot arms together, we'd end up with massive muscles on our wrists and hands, when what we actually have is the part that generates the force further back, and then just something to transfer that force along to where it's needed.
This is absolutely fantastic, As Eliot mentioned earlier, this could become and opensource 3D Printing Robot Arm. It would be nice to have the STL files so that every body could give it a go and see what each one comes up with. Siamak
Brilliant video, I learnt a lot and formed some new ideas on how to solve some of my design problems/requirements, so a big thanks for that. Just subscribed and looking forward to watching all your other videos and hoping that you bring out a lot more 🙂
Thanks. There's no backlash at all in the joints, but with enough torque applied to them, there is a bit of stretch in the lines. Not enough to be noticeable in normal use, but as I move the joints faster, it increases. Sensors should fix that though
I recall seeing a six-axis robot arm with the motors moved down to the base some years ago, made by one of the big players like KUKA, ABB, or Fanuc. I think they used four-bar linkages rather than pulleys, though.
I enjoyed your video! One challenge with cable/Bowden motion driving is that when one axis is moved, the resulting bending of the other cable sleeves will lead to undesired movement of other axes (unless the steppers are holding position via sufficiently-high current/torque, and if they do not skip steps). But you mentioned that you'll be integrating sensors some time in the future. Whether they end up being incremental or absolute encoders of some sort, if you have the time and want a fairly precise robot, I'm sure you'll program it to compensate for such 'side effect' through some closed-loop implementation. Great video! I look forward to seeing more! Thank you.
Thanks. Yeah, I did notice this. It was especially evident in my last video where I was using bicycle brake cable as the bowden assembly. With the fishing line having a much smaller diameter this is minimised, although it is just perceptible. As you say, a closed loop system should fix that. I'm just printing off the parts to attach absolute encoders to each axis, so we'll see if that fixes it!
This is absolutely amazing! Never though about using wires in such a way to allow to move the steppers far away from the location of motion necessary. Saving this video for later use!
This has been done for a long time. Except it evolved to using water in the lines instead of string. Much more power transfer ability. Quicker response time. More efficient. Less likely to twist and knot etc. this is the old way of doing it. Hydraulics is the better way.
@@jacobleeson4763 thanks! That makes a lot of sense. I would imagine the coding for hydrolic to rotation is more complicated than the wire version but I'm sure someone has already figured it out.
I think a Korean team already has tried this. They built a robot. Almost all the motors are attached to the body, only strings connect the limbs. It looks fantastic. Probably a better direction.
@@roTechnic If I could remember any link or keyword, I would have left it here. Sorry. I think it's from a institute or uni in Korea. Light weighted robo arm or something similar.
This is such a cool idea. I have quite a bit of experience with C++ and would absolutely love to mess with such arms. If only it didn't cost a fortune. Like, a grand for a decent 3d printer, surely $60-70 per motor, motor drivers ain't cheap either, plastic for the printer, etc... If I had to guess, disregarding buying a 3d printer, that arm cost at least $400 in materials.
it cheaper than you may think! you can buy a 3d printer (ender 3) for less than $150. it would be good enough for this kind of printing. the motors ant less than $10 each. the bearings are the most expensive part, but I’ve started using 3d printed bearings where I can
Don't forget your endstop switches, so if the stepper loses a step, you won't jam the joint. It'll work fine under no load, but I'm sure that you'll end up in conditions where there's too much load on the stepper motor. I like mechanical endstop switches, but hall effect sensors will look better, and keep the arm almost silent.
Nice! I've experimented a bit with 2mm OD, 1mm ID PTFE tubing, with some high-tensile strength, low stretch fishing cord (i can get the exact product info). For me, it's so that I can put servos in an enclosed, sound-insulated box, driving the movements for an animatronic bird. I want the bird to be as silent as possible... also moving the servos out makes the thing a lot lighter. The biggest pain in the butt is getting the lines and tubing secured. :D
I'm a beginner and I adore your ideas of running soft PVC tube protecting fishing line to simple turning motors instead of having heavy motors inside the arms. Simplification is something I am heavily targeting. Thank you Sensei. Subscribed, thumbs up. One question. I want to do the same thing for the a simple humanoid like robot for the shoulder joint as well. I am targeting rapid accurate movement with no weight being applied to the arm at all. It's more of an aiming system. Will it be foolish to apply the soft pvc tube protected fishing line design to the shoulder joint as well? I think I'm aiming for 3DOF on the shoulder joint at this stage. It's a robot that simply wants to flick light switches on and off in rooms. Just a bit of fun really.
Hi, that sounds like a great idea, I can't see why it wouldn't work. One thing to not is that this is not soft PVC tubing, it is PTFE which is slightly more rigid but also had a very low coefficient of friction which helps reduce the wear from the fishing line. Good luck!
Very nice idea and presentation of it 👍🏻 What would be nice (maybe already there but I did not notice it) is easing for the movements so they get smoother. Thanks for sharing 👍🏼
Thanks Mickael! You're right, there's no easing on this at all at the moment. I'm hoping to include it as soon as I have the sensors in place, as they will need a complete rethink of the motion control.
Amazing robotics! Also: your voice is amazing. Soothing, but not sedative. Captivating, but subtle. It would make for a great narrator's voice. Like Stephen Fry, but with a few steps of a slighter accent.
What about two cylinders in a yoyo configuration. Hollow them a bit and use them as a rotational piston. Not sure how quick it would be to actuate but it would remove the need for a motor at the joint.
Now, the assignment my teacher gave me 14 years ago: given two points in space, draw a line connecting them ^^ I refused the saignement and asked to simulate a small factory line. And in a funny way, we started programming the arm using joint command. Then I read the manual end to end and discovered that we could put the arm in "follow" mode. So, the arm support itself and when you try to move it, it detects where you try to move it and move accordingly. Then you can send command to save the way point. And at the very last, you can ask the arm to go from one key-point to another and even lock joints. (though, we didn't need to) That read was worth it, because in two sessions, we were done ^^ I also made a really bad joke, because there was also a release command which would free all joints and the robot was massive. My colleague was "holding it" (otherwise, the arme believe you want it to go down and slowly descent, so you need to apply a bit of force) and I issued a "release" for less than a second, which was enough for him to shit his pant. I thought it would be funny, but he didn't laugh at all ^^ (and it was stupid, though, pretty sure that if there is a power down or the command line is cut, the arm stop moving or brackets/home) And the very first thing we tried is how fast it rotates...and smashed a wood column. The teacher didn't even yell as we were looking at the wood being chipped and froze in horror. Obviously, we knew that we shouldn't put any flesh in the operating area, but I can tell you that when you hear the impact and see the chipping, you look at the arm very differently.
This is amazing work - and lots of fun to watch in addition! Having motors in a box on the side is very, very neat - and makes it easier to experiment with different motors, gearboxes etc. without having to print a new arm every time.. I'm a bit curious - your approach is for three joints at the far end of the arm makes sense... But are there hard reasons for not using this on the shoulder joint(s)? I mean... the line would be shorter and less joints to affect the line... even though the load would be harder on those joints (but you have the kevlar line and they claim for some of them to handle 30+ kg and with more or less no flexibility...)? Or am I just swimming around in ignorance here? :)
Sweet project. I was about to say you should add some encoders or at least something for indexing but at the end of the video you mentioned it yourself. I want one too now!
It would be nice if the routing for the tubes was internal for most of it but also you could and cuppleing areas at the joints allowitn the arm to rotate infinity
Dame and i thought the using fishing lines on Delta type 3dprinters years ago was smart. This was way cooler, and the guides for it was news to me. To apply motion that far away. Now im stuck imagining last part being 3 fingers with an end platform. Just 70%into the video yet🤣.
It's always crazy to me, as a developer, that someone writes a function (like at 5:25) "readSerial" and then puts the *entire* function in an if statement...instead of inverting the if statement and just returning and then put the code outside of the if statement haha. After that for the second if statement...you can return at the end, and then remove the else (because that branch will never be hit because of the return) etc. Less indents is better static analysis! Great video's! Enjoying this content!
@@roTechnicyou are making some great content btw, been bingewatching most of it. I might try to build a robot arm and your techniques are most appealing to me!
Back in the mid 80s I worked in robotics, and there were (and still are) many different approaches for different applications.
The approach you took here is specifically for lightweight loads, as strings, cables and such tend to stretch with higher loads as well as over time, thus affecting the precision.
Robotic arms are designed for specific loads, no matter how many axis (degrees of freedom) they have.
With your system, you have to pay very much attention to your first and fourth axis to not over-rotate them. Otherwise some of your strings might stretch or even snap, or create friction inside the tubes that have been wound around the arm, causing it to fail.
Sorry if I come across too critical. I only mean to point out some points I personally have had experience with, and have had my own fair share of mishaps 🤫
Don't worry, you didn't come across as critical. You're right about the applications. Some of these issues will be mitigated when I fin sensors to turn it into a closed loops system, but I agree that this approach will not work for higher payloads.
@@roTechnic for a heavy duty arm, the motor is negligible compared to the payload. To be honest your design is backwards
Both of your comment and video are helpful. Thank you.
@@roTechnic you could still overcome the limits on the 1st and 4th axis created by the wires getting wrapped up. 1st could have the spools and motors mounted there since weights not an issue that low down. but the 4th could be bridged with a freely rotating tube around the joint each end being a wire spool. as the joint turns its rotation relative to the spool would be the same as the spool being driven since the tube will be held stationary by the spool on its other end, so you drive that spool the other way to counter keeping the axis this whole line is running still while the 4th turns. this way the 4th can turn as much as you want without anything tangling, it'll just run the wire around one spool as fast as the motor turns it back. and you can nest this inside another of the same mechanism to run both 5th and 6th axis.
im too tired to explain it well so heres and imgur link to a doodle imgur.com/a/GgBRnoJ
This is pretty cool. Not unlike how our own wrists work when you think about it, right? Our tendons are controlled by muscles that are actually mostly much lower down in our forearms, away from the actual fulcrum point up on the wrist that they're affecting. Kinda different but similar in a way. You get what I mean. Maybe that's why we evolved like that, more efficient to move less mass around at the end of the arm while maintaining control over the joint at the far end.
desinc???
@@Neon-ws8er he do be watching TH-cam videos
👀
muscles would be the motorr in a robot, however when it comes about motion, animal human, the most powerful fuel is oxigen, compressed air, people of robotics should consider this, the wire hacks and installations, soon will become the next issue to deal with, however by now, the best approach possible.
hi desinc
I love where this project is going. If you make the 3D files open for anyone to download, I can totally see someone making an open-source 3D control GUI for the whole thing.
This definitely has potential as a cheap, DIY camera robot!
Wow, so cool seeing you progress so far with the 3D printed robot arm. Noticed the proud smile at the end :D Makes me want to start my own project.
thanks. yeah, couldn’t help grinning at the end!
I really have to say, Im blown away by this incredible little arm. Im currently working on a project in school and this helped me out so much with a LOT of problems. Thank you for that great video!!!
I love how robotic arms are becoming more in tune with real anatomy of human arm and its mechanisms. Great work!
Are they though? Like really? This is sort of the equivalent of having a whole pile of small muscles in your chest somewhere and just having a skeleton with some skin on it past your elbow. Also, in terms of trying to replicate how human hands move, this has been the preferred way of doing it for at least 50 years.
It always disappoints me that just because people are seeing something, personally, for the first time, they think that its the first time that thing has been done.
As if the human anatomy was the epitome of efficiency and ability. The human body is extremely flawed and limited. It is not the bar that should be set for mechanical devices.
@@htomerif That business of saying "I can't imagine anything better than this!" is just human, gotta be take the time to show where the path to all the other stuff starts. You have to experience reactions being wrong a few times before learning to allow for more outside what you're seeing that's so exciting. You will have done it yourself when younger and I guess haven't noticed moving on from that
. So, teach patiently. With regard to this specific reference to anatomy, you could look at the forearm where the muscles that do most of the movement of fingers are most of the way up to the elbow with long tendons reaching into the hand. Wiggle your fingers while you grip the elbow end of that forearm with the other hand and you'll feel the muscles doing their job.
@@DavidThornley No, this "I can't imagine anything better than this" definitely isn't "just human". Its "just lazy" and "just ignorant". This person is almost certainly a grown adult and this person has seen, probably in person, demonstrations in school on field trips or whatever of exactly what I'm talking about.
I've spent days researching and going over things like the finer points of the longevity of molten fuel nuclear reactors or the thermodynamic efficiency of unducted, multistage turbofan engines with people who are actually interested in *learning*, but when I encounter someone who clearly just pressed the "toilet flush" lever on their brain the instant they left high school, I don't feel even the slightest obligation to rectify that lost cause.
If you want a good example of how this person is ignorant of everything that's gone on in the world, look at the Honda ASIMO. Its been around and been iterated on for 20 years and been in development a great deal longer. Its far more human-like than this robot arm.
Before you get the wrong impression though, hobby robotics (which I obviously do myself) have a real problem when it comes to cheap, accurate, compact actuators. We don't have anything to bridge the gap from RC servos that have been around since the 80s to AC servomotors (which have also been around since the 80s). I'm not knocking what this guy has done at all. I don't think it fits and its definitely not new but he's trying to address a serious problem in robotics for people who can't blow $20,000 on an industrial grade robotic arm.
I've always been really nervous about robotics and have been slowly learning about it as I get more comfortable with printing and programming and seeing things like this makes it all seem so much more approachable, there's still room to innovate and make things easier and get over some of the hurdles like weight and motor strength. I've seen hydraulic robotics where they used motors to just press and depress plungers on syringes attached to tubes and something about that just immediately made the whole of the technology seem so much more approachable and seeing you attaching the lines to motors on your final design and have them fishing up through the rest of the robot just... It just makes it make so much more sense, it feels so much more applicable, so much more reasonable. It's just pulleys, tubes and motors at the end of it, much less daunting.
thanks. the main drive behind the design is the idea of simplicity.. keeping it as simple as possible - and then maybe upgrading parts and increasing complexity over time, but with each change being small and easily understandable
I love following your progress with the arm. I was particularly intrigued with the ability to do serial communication with Python. As a beginner Arduino enthusiast and as someone who feels more at home with Python, I would love to see more of that. Great video!
Thank you. Yeah, the way I'm approaching this is to do the minimum of coding on the arduino and then I can bang all the "intelligence" on the computer. Arduinos are cool and all, but python is SO much nicer than C :D
@@roTechnic That's really great. Just the other day I was trying to translate a relatively involved code from Python to C++ for a project and found it extremely tedious. I would definitely like to take the approach of doing the heavy lifting in Python and would also love to hear if you have a good source for learning how to integrate Python into the Arduino framework =D
@@curious_ben I'm afraid that I don't have any sources for what I'm doing. I normally just design up a quick DSL (Domain Specific Language) - in this case the stepper motor commands - and then write a quick and dirty parser on the arduino. As I keep the DSLs as simple as possible, I've never needed to use a library to parse them, a simple State machine, or in this case a couple of if statements are all I need. The Python side is even easier as it's just serial communication and building up the commands as strings. If you've got any specific things you'd like to do, I'm happy to help over email.
@@roTechnic Thanks! I'll send you an email🙂
Arduino is adding MicroPython language support to a select number of board models. Two Nano (BLE Sense, RP2040) boards and the Portenta H7 board to name a few.
Love your smile at 6.30 when you watch everything work as planned! Its a great feeling 😄 well done and explained
The great thing with actually doing stuff like this is once you have completed the design your mind is already designing the Mk 2 because you can actually see where it can be improved. Well done for doing this and posting the video.
Pretty genius in it's simplicity to use bowden tubes as the line guide.
Industrial robots often use a sort-of similar setup too to remove mass from the wrist but with timing belts instead.
The big smile on your face at the end of the video really shows how much effort you put into this
I've had this same idea for a long while, but instead of cord it was sprockets and chains (or belts and pulleys for simpler/test versions) with rolling joints that allow the arm to fold up however I need it to. I just haven't had the education and materials to do it yet
we need to collaborate on a mech suit frame
@@kingmasterlord i will add my grain of sand and say that the legs should be like the ones of Birdbot except bigger
I had an idea for draw string robotics, absolutely thrilled to see it in action, I feel as though with some clever thinking and 3d modeling the Bowden tubes could almost completely run through the core of the arm (kind of tendon like)
They can also be applied to legs as well ! the Birdbot robot has motors only in the hip in upper hip , the leg itself is mostly just strings , no motors whatsoever
What a warm and nice voice and words you have sir, it's very relaxing to hear you explaining. Congrats !
Progress looks amazing! Movement is incredibly smooth too
Thanks!
What a calming voice, straight to the point, smart and enough british sarcasm to be really funny. Got me subbed.
That's really awesome, love the neat solution of keeping the motors at the base, reducing the overall weight of the arm for the end affector 👍
How satisfying it is to see an abstraction become a reality. Bravo.
the way you talk and explain what you're doing is marvelous. its way better than the youtubers who sound like they consumed 6 pots of extra strength coffee just before filming.
thank you, much appreciated
I don't know if it was just me but I felt some Bob Ross vibes in his way of explaining 😀
the best part is you smiling while looking at it when it finally worked. we just see the final result but I bet it was a long process not free from frustration
Thank you! yes, that was the first time I'd programmed in a series of moves, and I couldn't stop myself grinning!
Good to see a new video, great work!
Thank you!!!!
This is the best robot i have ever seen done DIY witch has 6dof. Well done🙌
Hi, a couple comments:
- I'm not sure what wire you use on pulleys, check out Dyneema (UHMWPE fiber), which is high stiffness, strength and slippery.
- Angular momentum of a mass at the end of a rotating arm increases with the square of radius. Which means if you move wrist motor from wrist to elbow (1/2 distance to shoulder) gets 1/4 (75% reduction) vs 0 (100% reduction) of moving motor at the shoulder. This is significant because you can pull wires in a straight line, avoiding problems of bowden routing: stiffness, large dynamic/static friction, limited strength.
Fantastic idea and very satisfying to look at it moving around!
Thank you!
Incredible design to reduce the weight at the lower shoulder. Well done
This is the basically same principle that uses the Shadow Robot Company to drive their robotic hands. Nice video! :)
Great idea. I've been fighting a weight issue myself. Love the idea of de-coupling the motors!
Nicely done! I've been working on trying to design something for a future bot and wanted to make a dual-6DOF setup of sorts and this largely validated some of my theories before getting deep into the maths of it. This was both a cool project and super helpful. Thanks! :)
Great to see a new video..
Yeah, it's been a while. Thank you!
Freaking cool! Love to see home innovations like this. At the end you mentioned you wanted to put sensors at each of the DOF to know where it is at all times - alternatively you could have an exterior plate that you calibration with from time to time to save weight on the arm still. If you have worked with CNC Mills, it would be like calibrating the Z axis - a conductive metal piece on the arm will slowly move towards the sensor plate until contact is sensed and a high level of accuracy can be achieved for the exact position of the arm. You would have to get creative with where you put the conductive parts on the arm in order to know where each DOF is, but this may be a lighter and cheaper option for sensing at the cost of constantly knowing where the arm is. I just wanted to share in case this was an avenue that may interest you!
Interesting. I’ll look into it. thank you
Well that was nifty. Again I like that you didn't burn time in the video with the assembly part. Good stuff. Keep it up.
hope at the end share the design & code for learning, thanks for your efforts
The CAD and code will be released in the next video!
Amazing idea! It reminds me of the LEGO "Flex-System" but without the limitation of their short travel of the link. Add also a gear reduction on the side opposite to the motor, and it is very versatile & powerful!
This all reminds me of my old dentist tooth cutting machine, when you went to the dentist to have a filling he had a long arm with a belt that came from the motor through universal joints to the cutting head.
One of the first electro-mechanical robots, the ASEA (later known as ABB) IRB 6 dealed with this issue in a similar way by placing the motors closer ro the base and using a clever linkage to actuate the 4th and 5th axis (it only has 5 DOF).
Oh, nice. I'll look into that. Thanks for the info.
Love the way you present your robot idea. Hope to see more videos like this from you
Just stumbled on your channel. Great content, and finally delivered at a pace I don't have to put on 2x and then swear it's too slow.
The huge smile on your face at the end. Like holy shit it finally works
Stunningly elegant... I know for a fact... even though you say you made this part and another part.... it would take hours of designing, testing, iterating to get the right design. Stunning piece of work and congrats on having the skillset, with electronics and programming to do it....... and the determination to not give up when 90% of the way there.
Wow, thank you!
Back in the day, we built a kit robot arm that used cables with steppers in the base. The cables ran along the arm segments to no need to have bowden tubes flapping about. armdroid I think it was called.
Oh wow, I'd forgotten about those. I remember lusting after them in the '80s!
I'm so pleased and amazed!, Its been a while since a video pulled my mind that way.
I'd love to see some comparison, specifically how the mass being moved away from the load compares to the added friction from the motor feeds.
this dudes making some pretty cool stuff! hes also got good taste in music
Fantastic video! I am learning a lot from your videos. Cannot wait to see more.
Thank you!
You are massively undersubscribed for this quality of content. I'm glad I'm on the list.
I'm thoroughly impressed. Also, this is completely random, but thank you for speaking in a normal tone. I have to listen to loud voices all day at work, and sometimes listening to loud "presenter voice" news casters and TH-cam people use can be a little irritating.
I want to suggest you look at differential pan&tilt mechanisms. It doesn't save you on motors or bowden cables, but I think the mechanism is overall lighter and more rigid. it can be used at the wrist, but also at the base of the robot, reducing a lot of moving weight. It can be done with worm gears, too, to get fantastic holding torque.
I certainly will look into it. I'd like to get this arm up to the point where it is useful, and then look into other designs for some components. What you're suggesting will fit really well into that. Thanks
Great work ! Looking forward to how you'll use sensors to check where the arm is. Magnetic encoders maybe ?
Thank you! yup, magnetic encoders - AS5600s.
I'd recommend bike cables and tubes. More durable and repeatable than fishing line and I'm pretty sure your take ups are big enough that the extra stiffness won't be a problem.
It all makes perfect sense really. If our arms were put together the way we normally put robot arms together, we'd end up with massive muscles on our wrists and hands, when what we actually have is the part that generates the force further back, and then just something to transfer that force along to where it's needed.
That's a great way of looking at it!
This is absolutely fantastic, As Eliot mentioned earlier, this could become and opensource 3D Printing Robot Arm.
It would be nice to have the STL files so that every body could give it a go and see what each one comes up with.
Siamak
Dude you gained a suscriber. Top quality and understandable content. Thanks!
Brilliant video, I learnt a lot and formed some new ideas on how to solve some of my design problems/requirements, so a big thanks for that. Just subscribed and looking forward to watching all your other videos and hoping that you bring out a lot more 🙂
Don't mind me, just adding some timestamps for myself.
0:50 - pulley intro
3:26 - stepper drive panel
3:59 - working
4:06 - rig shot
6:02 - GUI
Very unique wrist design! I like it. Is there a lot of backlash in those final three joints?
Thanks. There's no backlash at all in the joints, but with enough torque applied to them, there is a bit of stretch in the lines. Not enough to be noticeable in normal use, but as I move the joints faster, it increases. Sensors should fix that though
I recall seeing a six-axis robot arm with the motors moved down to the base some years ago, made by one of the big players like KUKA, ABB, or Fanuc. I think they used four-bar linkages rather than pulleys, though.
Thank you for sharing your knowledge with us friend!
I enjoyed your video! One challenge with cable/Bowden motion driving is that when one axis is moved, the resulting bending of the other cable sleeves will lead to undesired movement of other axes (unless the steppers are holding position via sufficiently-high current/torque, and if they do not skip steps). But you mentioned that you'll be integrating sensors some time in the future. Whether they end up being incremental or absolute encoders of some sort, if you have the time and want a fairly precise robot, I'm sure you'll program it to compensate for such 'side effect' through some closed-loop implementation. Great video! I look forward to seeing more! Thank you.
Thanks. Yeah, I did notice this. It was especially evident in my last video where I was using bicycle brake cable as the bowden assembly. With the fishing line having a much smaller diameter this is minimised, although it is just perceptible. As you say, a closed loop system should fix that. I'm just printing off the parts to attach absolute encoders to each axis, so we'll see if that fixes it!
I came here for the robotic arm and stay for soothing voice.
He's the Bob Ross of robotics!
This is absolutely amazing! Never though about using wires in such a way to allow to move the steppers far away from the location of motion necessary. Saving this video for later use!
This has been done for a long time. Except it evolved to using water in the lines instead of string. Much more power transfer ability. Quicker response time. More efficient. Less likely to twist and knot etc. this is the old way of doing it. Hydraulics is the better way.
@@jacobleeson4763 thanks! That makes a lot of sense. I would imagine the coding for hydrolic to rotation is more complicated than the wire version but I'm sure someone has already figured it out.
jo realy nice. can you show how you do this with Jupyter lab
If you mount the three motors to the elbow joint you get pretty much the setup that's used at my workplace for nearly all of our robot arms
oh, that's a neat idea! can I ask what arms you use?
@@roTechnic Mostly Kuka, some ABB arms as well. Don't know the exact models unfortunately.
I think a Korean team already has tried this. They built a robot. Almost all the motors are attached to the body, only strings connect the limbs. It looks fantastic. Probably a better direction.
Oh, wow. That sounds amazing. Do you have a link to it, I'd love to see it.
@@roTechnic If I could remember any link or keyword, I would have left it here. Sorry. I think it's from a institute or uni in Korea. Light weighted robo arm or something similar.
Really lovely arm!
6:30 that proud smile of accomplishment on your face xD
This is such a cool idea.
I have quite a bit of experience with C++ and would absolutely love to mess with such arms.
If only it didn't cost a fortune. Like, a grand for a decent 3d printer, surely $60-70 per motor, motor drivers ain't cheap either, plastic for the printer, etc...
If I had to guess, disregarding buying a 3d printer, that arm cost at least $400 in materials.
it cheaper than you may think!
you can buy a 3d printer (ender 3) for less than $150. it would be good enough for this kind of printing. the motors ant less than $10 each. the bearings are the most expensive part, but I’ve started using 3d printed bearings where I can
Don't forget your endstop switches, so if the stepper loses a step, you won't jam the joint. It'll work fine under no load, but I'm sure that you'll end up in conditions where there's too much load on the stepper motor. I like mechanical endstop switches, but hall effect sensors will look better, and keep the arm almost silent.
Yep, you're 100% right. I'm adding sensors to it that'll detect the absolute position of each joint - I can use them as endstop sensors.
Was just thinking about your channel while watching James Bruton's latest video
Yeah, it’s been a while, but I’m back into it now!
Brilliant work!
Excellent job!!
Nice! I've experimented a bit with 2mm OD, 1mm ID PTFE tubing, with some high-tensile strength, low stretch fishing cord (i can get the exact product info). For me, it's so that I can put servos in an enclosed, sound-insulated box, driving the movements for an animatronic bird. I want the bird to be as silent as possible... also moving the servos out makes the thing a lot lighter. The biggest pain in the butt is getting the lines and tubing secured. :D
Oh, nice. I found the biggest pain to be getting the line through the tube!
@@roTechnic Yeah... that's a big one too... very tedious.
I'm a beginner and I adore your ideas of running soft PVC tube protecting fishing line to simple turning motors instead of having heavy motors inside the arms. Simplification is something I am heavily targeting. Thank you Sensei. Subscribed, thumbs up. One question. I want to do the same thing for the a simple humanoid like robot for the shoulder joint as well. I am targeting rapid accurate movement with no weight being applied to the arm at all. It's more of an aiming system. Will it be foolish to apply the soft pvc tube protected fishing line design to the shoulder joint as well? I think I'm aiming for 3DOF on the shoulder joint at this stage. It's a robot that simply wants to flick light switches on and off in rooms. Just a bit of fun really.
Hi, that sounds like a great idea, I can't see why it wouldn't work. One thing to not is that this is not soft PVC tubing, it is PTFE which is slightly more rigid but also had a very low coefficient of friction which helps reduce the wear from the fishing line. Good luck!
Very good video, thank you for sharing your knowledge to all.
More failures please. :) Fun and instructive.
Very nice idea and presentation of it 👍🏻 What would be nice (maybe already there but I did not notice it) is easing for the movements so they get smoother. Thanks for sharing 👍🏼
Thanks Mickael! You're right, there's no easing on this at all at the moment. I'm hoping to include it as soon as I have the sensors in place, as they will need a complete rethink of the motion control.
Very good, Congratulations!
Amazing robotics!
Also: your voice is amazing. Soothing, but not sedative. Captivating, but subtle. It would make for a great narrator's voice. Like Stephen Fry, but with a few steps of a slighter accent.
Love your work man
Изобрёл тросы от печки 2109 молодец, отличная работа, наконец то
This is awesome well put together video with quality content, well done.
What about two cylinders in a yoyo configuration. Hollow them a bit and use them as a rotational piston. Not sure how quick it would be to actuate but it would remove the need for a motor at the joint.
Joy division !
Awesome work
You're the first person to spot the t-shirt!
Now, the assignment my teacher gave me 14 years ago: given two points in space, draw a line connecting them ^^
I refused the saignement and asked to simulate a small factory line.
And in a funny way, we started programming the arm using joint command. Then I read the manual end to end and discovered that we could put the arm in "follow" mode. So, the arm support itself and when you try to move it, it detects where you try to move it and move accordingly. Then you can send command to save the way point.
And at the very last, you can ask the arm to go from one key-point to another and even lock joints. (though, we didn't need to)
That read was worth it, because in two sessions, we were done ^^
I also made a really bad joke, because there was also a release command which would free all joints and the robot was massive. My colleague was "holding it" (otherwise, the arme believe you want it to go down and slowly descent, so you need to apply a bit of force) and I issued a "release" for less than a second, which was enough for him to shit his pant. I thought it would be funny, but he didn't laugh at all ^^ (and it was stupid, though, pretty sure that if there is a power down or the command line is cut, the arm stop moving or brackets/home)
And the very first thing we tried is how fast it rotates...and smashed a wood column. The teacher didn't even yell as we were looking at the wood being chipped and froze in horror. Obviously, we knew that we shouldn't put any flesh in the operating area, but I can tell you that when you hear the impact and see the chipping, you look at the arm very differently.
This is amazing work - and lots of fun to watch in addition!
Having motors in a box on the side is very, very neat - and makes it easier to experiment with different motors, gearboxes etc. without having to print a new arm every time..
I'm a bit curious - your approach is for three joints at the far end of the arm makes sense... But are there hard reasons for not using this on the shoulder joint(s)? I mean... the line would be shorter and less joints to affect the line... even though the load would be harder on those joints (but you have the kevlar line and they claim for some of them to handle 30+ kg and with more or less no flexibility...)?
Or am I just swimming around in ignorance here? :)
Sweet project. I was about to say you should add some encoders or at least something for indexing but at the end of the video you mentioned it yourself.
I want one too now!
It would be nice if the routing for the tubes was internal for most of it but also you could and cuppleing areas at the joints allowitn the arm to rotate infinity
Truly amazing and inspiring !
Thanks Philip!
that is a great idea
thanks for shearing.
Very impressive, super cool
Try doing the same thing with hydraulic tubes.
LOVE this idea! I may well steal it for a future project! Thank you
So this on Reddit, it is a good idea, seems to work well too.
Dame and i thought the using fishing lines on Delta type 3dprinters years ago was smart.
This was way cooler, and the guides for it was news to me.
To apply motion that far away.
Now im stuck imagining last part being 3 fingers with an end platform. Just 70%into the video yet🤣.
Loved "and after a shitload of testing..." lol. Nice shirt btw
It's always crazy to me, as a developer, that someone writes a function (like at 5:25) "readSerial" and then puts the *entire* function in an if statement...instead of inverting the if statement and just returning and then put the code outside of the if statement haha. After that for the second if statement...you can return at the end, and then remove the else (because that branch will never be hit because of the return) etc. Less indents is better static analysis!
Great video's! Enjoying this content!
You are 100% correct. I'll change it. Thank you!
@@roTechnicyou are making some great content btw, been bingewatching most of it. I might try to build a robot arm and your techniques are most appealing to me!
Incredible work, subbed.
Great video packed with information original thinking ,thank you for sharing
Thank you!
@@roTechnic python code is not so clear from screen ,if you kindly paste it in comments
Great work, very intrigued by the eccentric cycloïdal. I see this video has done very well for views - any idea why?
thanks. I think I just got lucky with the title and thumbnail
Very cool project. Nice work 👍
Take a look at the Jubilee Tool Changer mechanism.
It uses a similar idea, and has been around for a few years now.
Oh, I haven't seen that before! Thanks!