I am a beginner at robotics. I recently stumbled across this robotic clock on youtube.

I am an electrical engineering student and am interested in submitting it as my minor project.

I have studied the basics on forward and inverse kinematics, Greubler's Equation, four bar linkage but this robot seems to be a 5 bar linkage. I want to know how to implement it in a 5 bar linkage.

How to use the inverse kinematics solutions described in Combined synthesis of five-bar linkages and non-circular gears for precise path generation, to make the robot follow desired trajectory?

I have been stuck at this for days... any sort of help would be appreciated.


2 Answers 2


Both the forward kinematics and inverse kinematics aren't too difficult, but always a little tricky for parallel manipulators like this one. Consider the configuration in this diagram.

enter image description here

The forward kinematics first involve solving for the position of the joint where you hold the pen from each motor joint separately and then equating the two.

$\begin{bmatrix} a - b \cos \theta_2 - c \cos \beta \\ a \sin \theta_2 + c \sin \beta \end{bmatrix} = \begin{bmatrix} e \cos \theta_1 + d \cos \alpha \\ e \sin \theta_1 + d \sin \alpha \end{bmatrix}$

This gives you two equations in two unknowns, $\alpha$ and $\beta$. After you solve for those angles, simply substitute them back into one of the sides of the above equation and you have the position of the pen given the input motor angles $\theta_1$ and $\theta_2$.

For the inverse kinematics, you start with the known position of your pen (the blue dot in the image), then you compute the lengths of the red lines, $f$ and $g$. Since you know all other lengths you can also solve for the angles in triangles $def$ and $gcb$. From that geometry you can then get the angles $\theta_1$ and $\theta_2$.

So then you can turn each of your desired clock characters into an x-y path for the pen, convert the x-y path into $\theta_1$-$\theta_2$ trajectories, and control your motors accordingly. It looks like the entire linkage is then mounted on another joint that pushes the pen away from the surface between characters, but the logic behind that should be pretty easy to implement.


Not to completely ignore your direct questions, but I think you are overthinking the problem. I don't believe any linkage math or even inverse kinematics are required. The main reason is that the set of actions that the robot must perform (10 different characters at 4 locations) is small and the workspace never changes (a plane that is fixed to the robot). That's not to say that this isn't a great project, and there should still be some interesting engineering problems to solve.

Since hobby servos like these are backdrivable, I think the best thing to do would be for you to simply write each character by hand and record the trajectory. (Record the joint angles at some time increment and/or when the joints move some distance). Then simply write some control code to follow this trajectory. Like i said before, because the robot's workspace is completely fixed, you can get away with doing everything in joint-space. Going in and out of Cartesian space with FK / IK really doesn't buy you much.

Now, if you were to make a mobile system that was supposed to write on any whiteboard surface in it's workspace, then you would start to need some forward / inverse kinematics...

  • $\begingroup$ Thanks for the answer. It is right that coding required in it is limited to certain characters and it is already available in the online code. I was actually hoping to implement drawing sketches or atleast writing alphabets with it. Also as the angles used in this are 0-90 degrees for each servo its range can be further extended.Please mention any other interesting project that might be on your mind :) $\endgroup$ Nov 7, 2015 at 7:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.