Low-Cost DIY Robotic Arm using Arduino and Grasshopper

Praneet Mathur
2 min readOct 24, 2020

--

I spent about 6 hours constructing and programming a janky, low-cost robotic arm that can draw like a drunk man on a whiteboard. Why? Because I could.

Check out the video here: https://www.youtube.com/watch?v=cnzm6UTHyrE

I am an architect by qualification and haven’t been professionally trained in robotics or programming. I’ve always been interested in both, but never enrolled in any course or workshop to learn professionally. One morning I decided to ask my dad to fund my interests and get me a 6-axis robotic arm that I could use for 3D printing, drawing, digital fabrication and other experiments. He responded by asking “Don’t you need some sort of degree in robotics to be able to operate that kind of equipment?”.

At the time India was under lockdown to combat the Covid-19 Virus. There was a curfew and limitations of all kinds, making it impossible for me to get access to any kind of fabrication equipment. Still, constructing the arm itself seemed like a fun craft project. I had an Arduino Uno, two servo motors and a PC. I tore apart some acrylic wedding invitations (Indian wedding invitations are quite elaborate) for the members/segments and the base of the arm. I threw everything together and wrapped it up with electrical tape. Once I finished wiring the Arduino and the servo motors, I felt like I had finished 90% of the work. All that remained was telling the Arduino how to actuate the motors to reach a specific point — simple enough, right?

It took me another 3 hours or so to not only learn about Inverse Kinematics, but also write a C# script within the Grasshopper3D environment that would let me control the arm through the Firefly plugin. The Coding Train’s video series on Inverse Kinematics in the Processing environment helped a lot here. Once I was simulating a virtual arm within Grasshopper, the remaining work truly became much simpler. I measured the angle at which the members/segments of the arm were turning at any given point of time, and remapped that angle to rotate the servo motors to the correct position.

Another few additions to the script let me define a curve for the path the arm had to follow and I added a slider to move the arm along that path. With that, the robotic arm was complete.

The entire system was far from accurate and basically useless — I ended up dismantling it the very next day for another Arduino project. But it was a good way to prove to my dad and myself that qualifications and degrees aren’t required to learn and experiment. Research is not something reserved for PhD holders and labs with sophisticated equipment. All you need is a good internet connection and some creativity.

--

--

Praneet Mathur

Digital Architect and Founder of ARPM Design and Research