Proof of Concept for the Robot Arm
I have been putting this off too long, I "finished" the robot arm in a mad dash because I was moving which means all my tools and my computer are packed up. The robot arm does move relatively smoothly but it lacks a lot of polish, mostly in the electronics area but also some mechanical stuff. Here's a video and then I'll get into some of the details.
I now have a much greater appreciation for a few things:
- brushless DC motor drivers
- position control
- serial communication
- inverse kinematics
I think that steppers were not the right choice for this project but I did learn a lot by foolishly using them. And they weren't a total flop, but driving them is inconvenient, (at least mine) are loud, and they use a ton of power. The first item on my wishlist is to use proper FOC motor drivers with brushless dc motors for just overall better performance. My other major complaint about how I executed this is the serial communication. I know I didn't do it optimally. And I am actually pretty proud of the solution I managed to come up with for giving a continuous stream of goal positions to the motors without having the arm be super jerky. But I can't imagine there isn't a better way, I just don't know exactly what that better way might be. It also might all be a stepper symptom. I have the Arduino sending individual pulses for every step that's kind of how it has to work. It takes a lot of work just to generate those pulses and if they are interrupted (by the serial communication or by any kind of position/force feedback) it makes the arm pause and its very unnatural. But if I have separate motor divers for each motor and one central MCU just coordinated serial communication between them and the PC then I think everything will be much smoother and easier (at least for that part of the software).
At some point I'd like to dig into the solution I had to do the serial communication as is, but I'm a little pressed for time right now so I will just leave a github link to the code: https://github.com/DomPulse/arduino_robot_arm