MAE 493/593 Mathematical Methods in Robotics
Our serial chain manipulator was an PRPR. Using D-H parameterization we decided on having technically
having 3 links. D1, D3, and R4. R2 was combined into D3 as the minimum length for D3. The figure below
displays our intial configuration.
Theta 2 and Theta 4 are also represented in the D-H parameterization form, and then there is the end
effector angle phi.
Analytically, they were extremely easy to solve, as long as the joint variables were known.
In order to solve for the inverse kinematics we used the matlab function, FMINCON along with ODE45 to
solve for the independent joint variables. In order to solve these equations completely we had to hold the
joints steady. The inverse kinematics were needed to solve for the tracjectory path planning part of our
program. As a result, when testing the program to get an accurate tracjectory, we would switch the values
of what joints we were holding steady so that the manipulator would already be in the range of the
tracjectory. Otherwise, which you can see in figures below, the final path would not follow the initial path
closely at all.
Figure 1: An example of a correct path planning. The star region represents the outermost region of the
workspace. The circles represent the path of the end effector.
As shown here, the manipulator was already in the range of the path that was planned. Our final path
matches the the initial path that was placed on the screen. This also agrees with the results of FCONMIN,
which when close to zero, means that the planned path matches the initial path nicely.
Figure 2: An example of bad path planning. The trail of circles represents the path of the end effector,
where as the smoother line represents the initial target.
In this case, our path lied in a portion of the workspace we could not reach due to our current
configuration. By changing which joint variables and where they are fixed we can change the area where
the path planning comes out correctly.
Our inverse kinematics involved using FMINCON to figure out the initial joint variables, and then taking the
data from a spline that was fitted to the path to integrate a velocity function using ODE 45. This can be
seen in the Kinematics.m code file.
Figure 3: We are capable of tracing a circle or any other type of line given to us.
Using ODE45 allowed us to solve for all variables, thus eliminating the problem of redundancy. The
derivative data from the spline
For the parallel manipulator there were 3 chains consisting of PRR. We used the technique of naming the
links by 1-1,1-2,1-3,2-1,2-2,2-3.. etc. We labeled the angles in the same format. The lengths of the
primastic joints were kept at default as 2 and the link lengths were kept at 1. The equations wer e
developed from the diagram below.
The forward kinematic equations were done analytically below. Xb2 and Xb3 represent the coordinates of
the fixed positions.
The inverse kinematics were done in the same way as the serial chain manipulator. However, the results
wer e not as good. The path planning was not nearly as accurate and was confined to much more limited
range. Our visual results show a disjointed path that is very hard to follow, however our indicator from
FMINCON shows a result approximately at zero.
The redundancy was taken care of the same way as the serial manipulator. Specifically we had to change
from absolute to relative coordinates.
The gui has the capability to switch between the serial chain and parallel chain manipulator. Also a
capability with the GUI is the ability to change link lengths. The other option are to show the work space of
the respective option and to generate a trajectory by clicking on the screen to create a spline that will
allow the program to run the inverse kinematics.