Kinematics
Defining terms
To do kinematics on the robotic arm, it first needs to be modelled in a way to do calculations on the different joint angles and positions. This is done by using 4x4 matrix notation to represent the different joints.
The different points and angles are defined like this:
In the all the following code blocks, there will be different types of variables used.
Variables that start with a P represent points,
variables that start with a T represent transform that can be performed on points,
and variables that start with an L are scalar length values.
Note: all angles are measured in radians, and all lengths are measured in meters.
Forward kinematics
The input arguments of the function are the actuated angles of the arm, since these are the only ones measurable by the encoders.
The function returns the projected end position of the end effector.
function [x, y, z] = forward_kinematics(theta0, theta1, theta3, theta4)
%defining dimentions
LbaseToP1 = 0.065;
LbaseToP3 = 0.149;
LP1toP2 = 0.350;
LP5toP6 = 0.620;
LP5toP2 = 0.120;
LP6toP7 = 0.300;
LP3toP4 = 0.120;
LP4toP5 = 0.280;
The first thing that happens in the forward kinematics is the definition of the dimensions of the different joints, these values are gotten from measuring the physical arm.
From there all the known transforms to the different points are defined, the transforms are defined with the main idea being, rotation happens along the Z-axis, and translation happens along the X-axis.
