Forward kinematics is the method for determining the orientation and position point of end-effector using specified values for the joint parameters (angle of servo). Forward Kinematics is not very useful because if you want to grab a remote control for your TV, you don't think how many degree to move from shoulder angle, elbow angle and wrist angle. Instead, you will think the goal position like "move hand to remote control", your brain takes care of all angles necessary to achieve the position. This is called Inverse Kinematics. Inverse Kinematics (IK) is a really handy tool used when controlling moving linkages.
I plan to refresh my memory by making a Quadruped/Hexapod and learn the IK and walking gait. I believe that hexapod are far easier to get working because it has a very stable tripod configuration.
Because I don't have a base frame for the body yet, I'll try on Quadruped first. For 3DOF Leg it's easier to use simple trigonometry for calculating each angle of leg. There is 3 Section in 3DOF leg of quadruped. Coxa, Femur, Tibia.
To make the problem easier, we are going to calculate each 2 axis to solve all three angle
We can calculate gamma from left picture with equation
After that, We found the following angle. From now I will simplify Coxa Length as C, Femur length as F, and Tibia length as T with x,y,z as a goal coordinates.
For Alpha2 we use cosine rule as:
and searching betha with the same cosine rule and the same triangle:
Now we have each angle value for certain goal position. For my Quad I need some adjustment to compensate my servo orientation & hardware design.
Quadruped Body Translation
Next step is translate the body while keeping the leg point. This gesture will make my quad can change it center of gravity and balancing for walking gait purposes. Pretty simple calculation for the quad. It just like translate moving each leg to some point in the same coordinates for all of the leg.
just keep in mind for quadruped, they will have each 2 leg is opposite direction with another 2.