Inverse kinematics is a much more challenging problem than forward kinematics. It is the procedure when we have a desired end effector position but need to know the joint angles required to achieve it. The solution of the inverse kinematics is computationally expensive, and usually, it takes long time for the real time control of manipulators. Singularities and nonlinearities that make the problem harder to solve. Hence, only for a slight class of kinematically simple manipulators (manipulators with Euler’s wrist) have complete analytical solutions.

### Forward vs Inverse Kinematics

The FK is not very helpful because having given a change of the servo’s angle, only one effector moves in the chain. However, if we are given a change of the coordinates, the whole chain of effectors (servos) have to turn a certain angle to reach the desired position. Moreover, also the movement tend to be more natural as well! “Balance” can be defined as the robot’s center of mass (affectionately referred to as its center of gravity) being its center of pivots (i.e. the edges of where its feet contact the ground). If the center of mass is above the center of pivots and between them, the robot will balance (almost an unstable equilibrium, if you are an applied mathematician. If the center of mass is above but outside the center of pivots, the robot will overbalance and fall.

Two main solution procedures for the inverse kinematics problem are analytical and numerical methods. In the first solution, the joint variables are solved analytically according to given configuration. In the second solution, the joint variables are obtained based on the numerical techniques. There are two approaches in the analytical method: geometric and algebraic solutions. Here we examined the analytical solution of the manipulators rather than the numerical solution.

The geometric approach is usually applied to simple robot structures, such as DOF manipulator with parallel joint axes or 2- DOF planar manipulator. For the manipulators with more links extend into three dimensions or more the geometry gets much more tedious. In this case, the algebraic approach is more beneficial for the inverse kinematics solution. There are some difficulties to solve the inverse kinematics problem when the kinematics equations are coupled, and multiple solutions and singularities exist. Mathematical solutions for inverse kinematics usually are not corresponding to the physical solutions and method of its solution depends on the robot structure.

### Implementation

In this pentapod robot, it is not advised to control the legs directly, rather than controlling the position of the body. Any change of the body’s position is translated into changes of each leg position. By using Inverse Kinematics, we can work out the angles of each servo, and the robot moves the way we wish.

The source code is available here. and a demonstration of the Inverse Kinematics algorithm can be found here.