The software is all on my github. robot-viewer is the User Interface and "servo" is the control software that runs on the raspberry pi. Im working on a schematic diagram as there are a few wires that differ from the AR4s schematic, however the AR4 kit still has everything you need :)
People have used it to weld but I would NOT recommend it if you are not a hobbiest who knows how to assemble and solder things as this comes in a kit. Most people will use more mainstream robots for welding such as this www.universal-robots.com/products/ur3-robot/ But those cost around 30k. Im working with a new lower cost robot that can be seen here ruclips.net/video/Q4U09eUogmo/видео.html . That robot is a new product by igus and is much cheaper ( around 5k - 7k )
Hi! I am working on a similar project, do you have the inverse kinematics solution posted online? I am working on solving it myself but I would like to see how others have done it! Awesome work btw.
Yes! I have an npm package here www.npmjs.com/package/kinematics-js . The github is here github.com/joepuzzo/kinematics-js . And you can watch a video about how the kinematcis works here ruclips.net/video/UIzsYq1K_jU/видео.html
Great question. I wrote a custom function that takes all the joint angles. Since I know where all the joints are I can calculate what I need to set the velocities and accelerations to in order to get all motors to end at the same time. You can see the code on my github here github.com/joepuzzo/servo/blob/main/src/robot.js#L512
@@robotjs Yeah, that was the approach I took with my robot arm. I'm making a new one though, and one thing I want it to be able to do is straight line / parametric motion (for example, being able to draw a picture on a flat piece of paper). The only way I can think of to accomplish that is to break the motion up into a high amount of individual movements, basically dividing the straight line / trajectory into thousands of bits, solving the IK at each of those points and moving it that way. I was wondering if you had attempted / were going to attempt something similar, and what your thoughts would be on my approach, because even before testing it I can think of some problems with it that might come up.
@@Jonathan-li2py from my understanding your approach is spot on. You brake down liner or circular motions into small segments and perform IK for each segment. I was going to start experimenting with this once i get my new arm. Should be super simple i might even ask chatGPT to write it for me :)
@@robotjs One thing I thought might be a potential problem would be compounding position errors. Because there will be some error between translation of the IK angles to steps at each interval (lets say you break down a one meter movement into 2000 different movements or something), then the error at the final point will be 2000 * whatever your small error is. If you up the resolution of the movement to like 10000+, this will start compounding as even larger errors and potentially cause major issues. Would encoders be the only way to fix this? I imagine 3D printers must encounter similar problems, but I have no idea how they solve it without encoders.
This makes so much difference! Looks great!
Hi , why 2 stepper motors ( one with visible belt ) ,for the articulation ? great job
I did not design the robot itself. You can find that on www.anninrobotics.com/ . There are 6 stepper motors in total one for each axis of rotation.
what do you use kind of servor ?Servor DC or Step?
These are stepper motors
Oh wow! This looks awesome! I have an AR4 myself and been wanting something better software wise to tinker with. How do I get my hands on it?
The software is all on my github. robot-viewer is the User Interface and "servo" is the control software that runs on the raspberry pi. Im working on a schematic diagram as there are a few wires that differ from the AR4s schematic, however the AR4 kit still has everything you need :)
@@robotjs cool! Does it handle the encoders differently? Like closer to closed loop?
@@olorf Not yet it actually only reports encoder pos atm. The movement is def a bit smoother IMO due to the use of accell stepper firmata.
www.joepuzzo.com/arschematic.pdf Here is schematic for how the wiring differs. Video coming soon
How can you use it as 3d printer or cnc miller
Could this robot be a good welding robot?
(I know nothing about robots, trying to learn to help my son's business)
People have used it to weld but I would NOT recommend it if you are not a hobbiest who knows how to assemble and solder things as this comes in a kit. Most people will use more mainstream robots for welding such as this www.universal-robots.com/products/ur3-robot/ But those cost around 30k. Im working with a new lower cost robot that can be seen here ruclips.net/video/Q4U09eUogmo/видео.html . That robot is a new product by igus and is much cheaper ( around 5k - 7k )
Hi! I am working on a similar project, do you have the inverse kinematics solution posted online? I am working on solving it myself but I would like to see how others have done it! Awesome work btw.
Yes! I have an npm package here www.npmjs.com/package/kinematics-js . The github is here github.com/joepuzzo/kinematics-js . And you can watch a video about how the kinematcis works here ruclips.net/video/UIzsYq1K_jU/видео.html
Where is a link to the software?
How do you handle coordinated acceleration control of the motors?
Great question. I wrote a custom function that takes all the joint angles. Since I know where all the joints are I can calculate what I need to set the velocities and accelerations to in order to get all motors to end at the same time. You can see the code on my github here github.com/joepuzzo/servo/blob/main/src/robot.js#L512
@@robotjs Yeah, that was the approach I took with my robot arm. I'm making a new one though, and one thing I want it to be able to do is straight line / parametric motion (for example, being able to draw a picture on a flat piece of paper). The only way I can think of to accomplish that is to break the motion up into a high amount of individual movements, basically dividing the straight line / trajectory into thousands of bits, solving the IK at each of those points and moving it that way. I was wondering if you had attempted / were going to attempt something similar, and what your thoughts would be on my approach, because even before testing it I can think of some problems with it that might come up.
@@Jonathan-li2py from my understanding your approach is spot on. You brake down liner or circular motions into small segments and perform IK for each segment. I was going to start experimenting with this once i get my new arm. Should be super simple i might even ask chatGPT to write it for me :)
@@robotjs One thing I thought might be a potential problem would be compounding position errors. Because there will be some error between translation of the IK angles to steps at each interval (lets say you break down a one meter movement into 2000 different movements or something), then the error at the final point will be 2000 * whatever your small error is. If you up the resolution of the movement to like 10000+, this will start compounding as even larger errors and potentially cause major issues. Would encoders be the only way to fix this? I imagine 3D printers must encounter similar problems, but I have no idea how they solve it without encoders.
@@robotjs before you ask it to write it, ask it to solve the problem algorithmically. It's really good at robotics. Check my last video.
Can AR4 be powered by Arduino?
It needs its own power supply. You can read the documentation here www.anninrobotics.com/
If by "powered by" you mean controlled with then the answer is yes, it uses a teensy microcontroller which is effectively an arduino.
you mean sprofile moves
Hanzhen harmonic drive gear , strain wave reducer, robot joint , over 30 years experience