I found the Doodle Clock featured by Hack A Day in March of 2012 as a result of a comment on that side. It’s not a traditional drawing robot as I feature on this site, but it does have the most important parts – a robot that creates some kind of drawing using a typical drawing instrument.
The setup appears relatively simple – some metal arms, motors, and what I would guess is an Arduino microcontroller of some kind. Although the video doesn’t seem to show the eraser implement, the robot has an almost hilarious method of wiping the drawing surface using the side of the pen holder.1 There isn’t a ton of information out there about this robot – basically just the write up on Hack A Day, the YouTube video, and then a few comments in both forums.2 Fortunately, in the video comment section the creator does provide a brief explanation of the math underpinning this nifty robot:
Use inverse kinematics to find the angles of the motors like the following equations: float l1 = 80.4; // the length of the shoulder float l2 = 88; // the length of the elbowdouble cb2 = 2*l1*l2;double c2 = (sq(x) + sq(y) - sq(l1) - sq(l2)) / cb2; double s2 = sqrt(1-sq(c2)); double k1 = (l1 + l2 * c2); double k2 = (l2 * s2); double base_ang = rtod((atan2(y,x) - atan2(k2,k1))); double elbow_ang = rtod(atan2(s2,c2)) + 90;myservo1.write(base_ang); myservo2.write(elbow_ang);
Many robotic arms use inverse kinematics math to calculate and control position and movement. Although not as complex, the Doodle Clock and Linus use this same math. Now, if you’ve read this far – why not check out this pretty amusing video of the Doodle Clock in action?