December 29, 2012

Robotic Plotter Arm

I was required in my school work to design and implement an embedded system. I thought it would be great to make something robotic. I recalled the movie Hugo. I was impressed and later fascinated by the automaton appeared in the movie. I decided to make one with similar functionality by modern robotics.
I quickly designed the mechanical structure of the robotic arm. It is really standard practices from what I saw on the internet. I got some help in hammering the aluminium plates. Then I embedded 3 servo motors in the joints.

We do embedded C on STM32. The only hardware interfacing was the 3 PWM outputs controlling each motor. I did struggle for some time in producing a signal with the correct frequency and pulse width, and to varies the pulse width smoothly at a desired speed.

Luckily the control algorithm is not hard.

In order to design the desired Hugo's drawing, I scratched up a simple vector graphics editor. The editor can export a vector design into a format accepted by the embedded program.
The designer is where magic happens. I traced the Hugo's automaton's drawing, though dropped a lot of lines for fear that the robotic arm cannot be that accurate.

Finally it gave me this drawing.

Compare with the drawing by Hugo's automaton.

It took smaller amount of time and effort than I had expected to finish this arm. That's 10 days of spare time and 3 days of full time.
There is indeed much room for improvement of accuracy. But then I am satisfied by how pieces of hardware and software work together to create the artistic outcome.

Appendix I - photo album
sample sketches produced by the arm
making of

Appendix II - presentation slides

Appendix III - demonstration video

Appendix VI - source code