Andrew Panasyuk Mechatronics Engineer
2D Parallel Linkage Robot
Personal Weekend Project, 2023
I built this robot over one weekend to explore inverse kinematics controls.
​
I designed the robot in SolidWorks with bearing-supported linkage arms, and 3D printed it at home with two design iterations.
​
I derived parametric motion control equations to convert a desired X/Y target position into required stepper rotation angles. Each arm length and stepper separation can be adjusted easily. I implemented the controls math in Arduino, using a joystick to drive the X/Y position.
​
I built the first version of controls electronics with A4982 stepper drivers controlled by an Arduino Mega, then upgraded it with TMC2209 stepper drivers controlled by an Adafruit Feather M0.

Parallel Linkage Robot on the table
Highlight 1 - Robot Motion
Collision Avoidance
2D Scribing
Moving 2.5 lb weight
Fine Control
Highlight 2 - Inverse Kinematics
I derived the linkage kinematics on paper, then transcribed my calculations to an Arduino function to allow a script to convert an X/Y target position into angular stepper positions.
​
The main robot script calls this function when a new target position is issued.

Hand Calculations

Arduino Kinematics Function
Highlight 3 - Programmed Motion
The linkage robot can also followed programmed paths instead of user input. In this demonstration it scribes an ellipse.
​
This is using the original electronics scheme with the A4982 drivers and is much louder!
​
I would like to try using this robot for a 2D inverted pendulum experiment with a Raspberry Pi and computer vision. The Arduino can be issued target position commands via Serial, which would enable this use case.
Noisy Ellipse Scribing