# Is it correct to think of forward kinematics as merely a 'check' for the inverse kinematics?

When the only inputs to your robot are the next x,y,z coordinates of the next point on and on, I can simply just calculate IK to find the angles and make my actuators move to these angles. Whats the point in calculating forward kinematics in this case? does it merely act as a check for your inverse kinematics integrity? (this shouldn't be accurate because I don't think an analytical solution of the IK will have errors). I see no purpose in calculating the forwards kinematics in this application.

• Forward kinematics better known as forward simulation, models a problem in software. In case of a kinematic chain the model is equal to describing the link structure. With the model it is possible to answer what-if questions like “what happens, if servo #1 moves to the left”. The inverse kinematics is less important. It is similar to an inverse model for finding a solution for a problem. The inverse model can answer a problem like “what is the angle of each joint, if the end effector should reach (200,150)”. – Manuel Rodriguez Feb 25 at 9:21
• Great answer @ManuelRodriguez! Why not make it a real answer instead of a comment so we can up vote it. – Ben Feb 26 at 1:14
• You, Ben, asked me, if i should remove my comment and write the text into a formal answer so it will extend the list of existing answers to this question? – Manuel Rodriguez Feb 26 at 13:15
• Welcome to Robotics Manuel Rodriguez. Comments are for helping to improve questions and answers, and are distracting, so we try to keep them to a minimum. Partial answers, or answers you aren't confident about should still be posted as answers, since they can be improved by future edits. Comments should be considered ephemeral, any comment which no longer actively helps to improve a question or answer may be deleted at any time to tidy up a post. – Mark Booth Mar 5 at 11:36

You can control the robot using just the inverse kinematics solution. However, you must be careful to handle the multiple inverse solutions properly (for example, $$acos(\theta) = acos(-\theta))$$. Forward kinematics can help you visualize the selected solution. They are also helpful when building a graphical simulation of the robot.

The forward kinematic will become useful e.g. if you want to compute the working envelope of your robot.

If you think of classical Jacobian-based methods for IK (still representing the majority), then you ought to consider that they make use of forward-kinematics (FK) maps internally in order to compute the error in the operational space as well as the Jacobian itself, which is actually a differential FK law.

In particular, the IK method based on Jacobian pseudo-inverse generates iteratively joint velocities profiles $$\dot{q}$$ that drive the system toward the target. In formula:

$$\begin{cases} e=x_d-f\left(q\right) \\ \dot{q}=J^{-1}\left(q\right) \cdot \left(\dot{x}_d+Ke\right) \end{cases},$$

where $$x=f\left(q\right)$$ and $$J=\partial f/\partial q$$ are the standard and differential forward-kinematics maps, respectively.

This reasoning and/or considerations apply also to other IK methods.

Forward kinematic has many uses, but for your case YES it can be used “merely” as a check. However the check is probably redundant since most IK solvers will give you some kind of residual which indicates the quality of the solution.

If you have the next target position you can convert that in joint space and make a PTP or point to point type motion and there is no need for forward kinematics.

The forward kinematics is crucial when geometrical contraints to the path are considered, e.g. a circular motion (CIRC), linear motion (LIN) or spline motion (SPLINE). Usually these are set also with a desired speed. In this case converting the current joint space coordinates to cartesian space and computing the trajectory (incl. velocity and acceleration) from the current end effector coordinates to the target in cartesian space will assure that the set parameters (path shape and target velocity) will be (more) precisely executed.

Also in the case where robos are programmed or operated (monitored) it is useful to know what the current cartesian coordinates of the end-effector is. This is done by calculating the forward kinematics. For determinig the current velocity of the robot differential forward kinematics are used.