Amaranth maintainer here! This is an incredibly cool project :D Please don't hesitate to reach out if you hit any issues with the language, we would be happy to help.
This is epic, I love to see the progress. This could work wonders for getting cheaper robot arms working again. Older models are still capable, but the controller or teach pendant is nowhere to be found. This could bring a new life to still capable hardware that is sold on ebay. Lot of the times when they take these out of the factory they just cut the wires, so rewiring them is pain, but with this you could rewire them and even get new and better controller.
Complete working robots are cheap enough that this will not offer any savings over just finding a complete unit. It's a very impressive project, but I don't think it will have much use for repurposing existing industrial robots, outside of a few people looking for a challenging project. Most people who want to run one outside of an industrial setting can't even get their head around a phase converter let alone rewiring to a new controller. Within an industrial setting it makes no sense for many reasons (cost, time, safety). As he mentions, I think it will find more use as a generic CNC controller than a controller for old industrial robots. Right now the real prohibitive cost of running an industrial robot outside of an industrial setting is the software for CAM/simulation, assuming you want to use it for some type of cutting/milling. SprutCAM/Ency is $20kUSD for a basic license, AlphaCam/Eureka combo comes in around $25000 USD...
@GregsStoneYard what do you consider cheap enough? For some reason in USA you can buy old cnc mill in pretty good shape for reasonable price or even lower. In Europe even rundown equipment is being sold at insane prices considering the state.
For reference a new one of those robots with controller is around $100k, mine was 1.6k used (unknown condition). This definitely isn’t meant to replace robots for heavy industrial applications like building cars, it’s just a retrofit system like LinuxCNC to give machines a second life. Retrofits are surprisingly common since you can get old machines for so cheap. The real use case I think it will have is being able to easily run different setups and test new features/controls out at a more entry level (especially stuff like 3d printing). For simple 3+2 or maybe full 5 by now, fusion360 does CAM for free for hobbyists (just doesn’t simulate the entire arm)
@ To be clear, I think it is very impressive what you have done, and as I stated above, for anything other than an industrial robot, I think it can be a useful tool. FWIW I use Fusion360 with my robot. Even with the paid version, you only get 3 axis. For more you must pay for the manufacturing extension, which is $1500/year. There is a built in post processor for ABB/Kuka robots, but it only supports 3 axis milling, and as you said there is no simulation. Simulation is very important once you want to start doing any type of machining/milling with a robot. You can't really do anything complex without it, well you can but you could end up with some very costly mistakes. It's also the most expensive part of using an old robot.
@ExcessiveOverkill I have a few kawasaki zx200s industrial robots. I want to use it for arc welding but I am kindof limited by the controller to intuitively program it no weave function. Your open source controller could help me with that. The other half of this is you need to build a easy to program teach pendant /cam program to go with it that is intuitive and easy for a operator to no code make programs.
For configuring the axis of the robots, I would suggest using Denavit-Hartenberg parameters (or the Modified DH parameters). They basically define the matrix-transformation from one joint-coordinate system to the next and are a de facto standard in robotics. They can be used to define rotary as well as linear joints. For most robots, you can get them online or from the manufacturer, and if not, they're pretty easy to find from a dimensioned drawing of a robot.
was just going to say this. DH parameters are great because they're published by everyone that makes a robot, and dead simple for a cartesian platform.
That combined driving (weird wrist gearing) of the axes 4, 5 and 6 is more common than you may think. Our Kuka KR180 robot has the same style with 3 motors mounted near the A3 joint. As soon as you move A4, the motors for A5 and A6 also rotate. We still use it with the original KR-C2 control cabinet and I love that one. I meanwhile had to replace 2 drivers and a PC card (the robot is over 20 years old) and that is a very easy job. Especially the drivers are very easy to swap. Just remove the connectors and use a screwdriver to open two metal brackets and the driver can be pulled from the system. Up and running again in 5 minutes, 4 of which are for rebooting the PC.
I did a project very similar to this in varsity. Fpga controller with FOC servo drives... It was way too much work for 1 year, and i stuck to cartesian coordinates to not have to figure out those other relationships. Cudo's to you for this project, it's fantastic.
On James Bruton's channel he mentions that on robot dogs like the one he made, that they place motors further up the leg if they can. He says that they do that to have smaller/cheaper motors, or to gear for speed, due to the reduced weight/inertia near the end of the limb. I imagine there's similar reasoning for having the motors in the middle of the robot arm you have.
Nobody mentioned partially constrained inverse kinematics. That might be useful to you. Once you have an IK chain set up, you can tell the end grip thing where and how you want it, and the IK chain will determine the position of all the joints. We choose partially constrained because IK had some funky stuff that crops up occasionally.
Great project! Used to do stuff like that and really miss the days when I had time to reverse engineer and give new lease of life to some cool old tech and learn lot in the process. Those fanuc encoders, are they gen 1 or gen 2 serial protocol? I have a fanuc drive which has gen 2 serial encoders and want to make a gen1 to gen2 converter. Any info you dig out reverse engineering them it would be great to hear.
the ones on the robot I believe are gen 2 (rs485 or rs422) the one I had running on the bench is older which I assume is gen 1 (rs422 only). I have logic analyzer captures from both, and made an old VHDL module for the newer ones for my linuxcnc controller, but it doesn't do the CRC check and is questionably reliable. The current amaranth module does do the CRC check and reads the other signal bits for the gen 1 encoders, I haven't added gen 2 support yet. I have a spreadsheet pinned in my discord that has what I believe is the correct bit layout for the gen 2 encoders, not sure what the CRC is yet though.
LinuxCNC actually already sorta supports some of the older Fanuc encoders, I added support for the newer ones on my robot in one of the previous videos. But linuxCNC is really not quite fast enough to do the low level servo control properly. The *slow* update speed I was running in this video is already close to where Linux CNC can start having issues with a ton of motors
You guys have no idea, there is no messing with names. The robot in the background, the first RO8 has a birthday that is celebrated every year. I mean party hat, cake, full deal. They are family.
yea there is actually quite a lot of backlash through the entire chain, but that's all before the final RV reducer so it gets divided by 100-200 and ends up not being too much of an issue
This robot is intended to be used in loading operations that require fairly low precision and high reliability. Its payload is 200 kg, and I think the accuracy of +/- 2 mm will be enough to handle large and heavy boxes.
@alexkart9239 Fanuc rates the repeatability at +/- 0.3 mm when new. The true accuracy is probably much worse, but usually doesn’t matter much since the robot just repeats set moves so it’s easy to fine-tune them. This robot was used for spot welding car parts at Chrysler.
Agreed there aren't that many options for hobbyist accessible servo drive especially ones that can support such a high frequency control loop or high current/voltage.
@@joshuahuman1 Plus the Get hub is a process which take time for us to get the project implemented... We will use the Get to repair the drives... There's few alternatives to original fanuc drivers in the market
Amaranth maintainer here! This is an incredibly cool project :D Please don't hesitate to reach out if you hit any issues with the language, we would be happy to help.
This is epic, I love to see the progress. This could work wonders for getting cheaper robot arms working again. Older models are still capable, but the controller or teach pendant is nowhere to be found. This could bring a new life to still capable hardware that is sold on ebay. Lot of the times when they take these out of the factory they just cut the wires, so rewiring them is pain, but with this you could rewire them and even get new and better controller.
Complete working robots are cheap enough that this will not offer any savings over just finding a complete unit. It's a very impressive project, but I don't think it will have much use for repurposing existing industrial robots, outside of a few people looking for a challenging project. Most people who want to run one outside of an industrial setting can't even get their head around a phase converter let alone rewiring to a new controller. Within an industrial setting it makes no sense for many reasons (cost, time, safety). As he mentions, I think it will find more use as a generic CNC controller than a controller for old industrial robots. Right now the real prohibitive cost of running an industrial robot outside of an industrial setting is the software for CAM/simulation, assuming you want to use it for some type of cutting/milling. SprutCAM/Ency is $20kUSD for a basic license, AlphaCam/Eureka combo comes in around $25000 USD...
@GregsStoneYard what do you consider cheap enough? For some reason in USA you can buy old cnc mill in pretty good shape for reasonable price or even lower. In Europe even rundown equipment is being sold at insane prices considering the state.
For reference a new one of those robots with controller is around $100k, mine was 1.6k used (unknown condition). This definitely isn’t meant to replace robots for heavy industrial applications like building cars, it’s just a retrofit system like LinuxCNC to give machines a second life. Retrofits are surprisingly common since you can get old machines for so cheap. The real use case I think it will have is being able to easily run different setups and test new features/controls out at a more entry level (especially stuff like 3d printing). For simple 3+2 or maybe full 5 by now, fusion360 does CAM for free for hobbyists (just doesn’t simulate the entire arm)
@ To be clear, I think it is very impressive what you have done, and as I stated above, for anything other than an industrial robot, I think it can be a useful tool. FWIW I use Fusion360 with my robot. Even with the paid version, you only get 3 axis. For more you must pay for the manufacturing extension, which is $1500/year. There is a built in post processor for ABB/Kuka robots, but it only supports 3 axis milling, and as you said there is no simulation. Simulation is very important once you want to start doing any type of machining/milling with a robot. You can't really do anything complex without it, well you can but you could end up with some very costly mistakes. It's also the most expensive part of using an old robot.
@ExcessiveOverkill I have a few kawasaki zx200s industrial robots. I want to use it for arc welding but I am kindof limited by the controller to intuitively program it no weave function. Your open source controller could help me with that. The other half of this is you need to build a easy to program teach pendant /cam program to go with it that is intuitive and easy for a operator to no code make programs.
Good to see you are still alive and working!
Unreal undertaking for one guy. Can’t wait to see more!
For configuring the axis of the robots, I would suggest using Denavit-Hartenberg parameters (or the Modified DH parameters). They basically define the matrix-transformation from one joint-coordinate system to the next and are a de facto standard in robotics. They can be used to define rotary as well as linear joints. For most robots, you can get them online or from the manufacturer, and if not, they're pretty easy to find from a dimensioned drawing of a robot.
was just going to say this. DH parameters are great because they're published by everyone that makes a robot, and dead simple for a cartesian platform.
That combined driving (weird wrist gearing) of the axes 4, 5 and 6 is more common than you may think. Our Kuka KR180 robot has the same style with 3 motors mounted near the A3 joint. As soon as you move A4, the motors for A5 and A6 also rotate.
We still use it with the original KR-C2 control cabinet and I love that one. I meanwhile had to replace 2 drivers and a PC card (the robot is over 20 years old) and that is a very easy job. Especially the drivers are very easy to swap. Just remove the connectors and use a screwdriver to open two metal brackets and the driver can be pulled from the system. Up and running again in 5 minutes, 4 of which are for rebooting the PC.
Oh yes, this is what we've been waiting for.
I did a project very similar to this in varsity. Fpga controller with FOC servo drives... It was way too much work for 1 year, and i stuck to cartesian coordinates to not have to figure out those other relationships. Cudo's to you for this project, it's fantastic.
Tiny nitpick but it's spelled kudos lol
so interesting!! can’t wait to see more!!
babe wake up EO dropped another bomb!!!
love this project! wish i had your tenacity, having a robo stone carver or something would be so sick
I was just watching your series on this an hour ago! So glad to see a new part just pop up
On James Bruton's channel he mentions that on robot dogs like the one he made, that they place motors further up the leg if they can. He says that they do that to have smaller/cheaper motors, or to gear for speed, due to the reduced weight/inertia near the end of the limb. I imagine there's similar reasoning for having the motors in the middle of the robot arm you have.
Man you are a legend! Insane project !
Awesome awesome! The only time I want to watch something in youtube
Nobody mentioned partially constrained inverse kinematics. That might be useful to you. Once you have an IK chain set up, you can tell the end grip thing where and how you want it, and the IK chain will determine the position of all the joints. We choose partially constrained because IK had some funky stuff that crops up occasionally.
FPGA LETS FUCKING GO
Ty for your work
At 12:52 for J6 aren't you making a sum of J4 twice ? You should already take in account in J5, so you would overshoot ?
PART 4 OH BOY!
This is really cool are you planing on selling the servo drives or control boards once their finished?
Very impressive!
One day I'll be making a large stewart platform, so I'd like to see a video on that control system when you make it :)
it would be great if you posted shorter videos but more often. it's interesting to see the progress.
Great project! Used to do stuff like that and really miss the days when I had time to reverse engineer and give new lease of life to some cool old tech and learn lot in the process.
Those fanuc encoders, are they gen 1 or gen 2 serial protocol? I have a fanuc drive which has gen 2 serial encoders and want to make a gen1 to gen2 converter. Any info you dig out reverse engineering them it would be great to hear.
the ones on the robot I believe are gen 2 (rs485 or rs422) the one I had running on the bench is older which I assume is gen 1 (rs422 only). I have logic analyzer captures from both, and made an old VHDL module for the newer ones for my linuxcnc controller, but it doesn't do the CRC check and is questionably reliable.
The current amaranth module does do the CRC check and reads the other signal bits for the gen 1 encoders, I haven't added gen 2 support yet. I have a spreadsheet pinned in my discord that has what I believe is the correct bit layout for the gen 2 encoders, not sure what the CRC is yet though.
Cracking those Fanuc controllers is in an of itself an enormous achievement. Has this amazing work been rolled into LinuxCNC yet?
LinuxCNC actually already sorta supports some of the older Fanuc encoders, I added support for the newer ones on my robot in one of the previous videos. But linuxCNC is really not quite fast enough to do the low level servo control properly. The *slow* update speed I was running in this video is already close to where Linux CNC can start having issues with a ton of motors
I also have a (much smaller) fanuc arm i need to work on a controller for!
Excitement!
I would totally buy this if you offered a kit, by the way. I have a 7 axis mill-turn with Fanuc red top motors that needs a new brain.
Finally! I was waiting..
i thought im insain having 3CNC´s whit 3Robots in my basment..... but you engeneering a Universal Drive that´s deam impressive!
I hope you are going to name the robot “ROB” (R08)
You guys have no idea, there is no messing with names. The robot in the background, the first RO8 has a birthday that is celebrated every year. I mean party hat, cake, full deal. They are family.
Let’s goooooo
7:06 is that 'mayo' i.e. water in the oil?
grease likely
Nah the grease in these robots always looks like that, it’s some weird fancy stuff that costs a fortune.
Why not ros moveit
6:59 gears !!!???? that's a backlash bottleneck on a premium machine (industrial robot arm) like that
yea there is actually quite a lot of backlash through the entire chain, but that's all before the final RV reducer so it gets divided by 100-200 and ends up not being too much of an issue
This robot is intended to be used in loading operations that require fairly low precision and high reliability. Its payload is 200 kg, and I think the accuracy of +/- 2 mm will be enough to handle large and heavy boxes.
@alexkart9239 Fanuc rates the repeatability at +/- 0.3 mm when new. The true accuracy is probably much worse, but usually doesn’t matter much since the robot just repeats set moves so it’s easy to fine-tune them. This robot was used for spot welding car parts at Chrysler.
skibidi rizz Fanuc arm
I just want this motors and drivers I will them for something else
Please consider selling your product to control the fanuc servos
Best regards
Please make it a product we can buy..... Days of GetHub are over we need solution for our systems
Agreed there aren't that many options for hobbyist accessible servo drive especially ones that can support such a high frequency control loop or high current/voltage.
@@joshuahuman1 Plus the Get hub is a process which take time for us to get the project implemented... We will use the Get to repair the drives... There's few alternatives to original fanuc drivers in the market
Or robodk
Those diaganol ICs are _tilting_ me
If I had the place and money to do this 🥲