I made robotic arm earlier in the year but I wanted to do better, so I started from scratch and built another arm. I did all the part sourcing, mechanical design, prototyping, and assembly in only 2 weeks. I spent half a day to plan each of the 14 days I had down to the exact hour then executed it.
For this project, budget was not a big constraint. I wanted things fast and was willing to pay for it. I scheduled the most crucial items to come first: the stepper motors/drivers, black screws, thrust bearings, ball bearings, and stepper couplers. Most of these parts came from Amazon and eBay—no Aliexpress this time.
I drew several sketches focusing on aesthetics and functionality. I reused the Matlab script I was made earlier to determine the dimensions of the arm. Then I built it all in SolidWorks. I printed parts as I designed them to speed development time. I also performed stress analysis on the parts to see where the stress concentrations are located and designed to reduce them.
I’m pretty proud of this novel rotation system I designed. I have a downward facing stepper motor with a coupler secured to a rigid plate. A ball thrust bearing allows the system to rotate with less friction. I later replaced the ball thrust bearing with a needle thrust bearing to further reduce the thickness of the system and increase the spread of weight across a greater area providing very noticeably greater stability.
I worked with my friend John Nguyen to create the electronics for the robot. We used an industrial-grade breadboard to house the circuitry. We sourced a cheap 10A power supply to drive the hungry 2A stepper motors. Choosing stepper drivers was easy, we settled on DRV8825 drivers because they were cheap, accurate, and easy to use. We used the top of the breadboard as the main power rail then split it into individual rails for each driver. We also included a Noctua fan to cool the drivers down. This is a non-permanent solution, we hope to move away from the breadboard and make a very small integrated solution that fits into the base of the robot.
We developed our software on a small Raspberry Pi 3 using python. We made a simple GUI that controlled axis movement of the robot. A simple GUI controller was cool, but we wanted more so we looked to inverse kinematics. I lead group sessions with the team members and worked on learning inverse kinematics to control the robot. We developed a rudimentary solution, but the accuracy was too low to be viable. So I reached out to Alistair Wick and he generously allowed us to use his inverse kinematics algorithmn for our project. John and I dove into his algorithmns and adapted them to be compatible with steppers motors and our project.
I replaced the 3mm bearings with bushings. There is an addition of marginal rotational friction, but the lateral wiggling is greatly reduced.
I haven’t worked on this arm in a while because I was in San Francisco for my second co-op. Now that I’m back in school development is resuming and we’re currently working on the hand design and computer vision.