Week 2- 2R Robotic Arm Challenge
AIM: TO SIMULATE THE 'FORWARD KINEMATICS' OF A 2R ROBOTIC ARM USING MATLAB
OBJECTIVE:
Write a program to simulate forward kinematics of a 2R Robotic Arm
Animating and creating a movie from the plots obtained from the program
THEORY: A manipulator/end effector movement determines the workspace where the robotic arm can be applicable. Our motive is to animate the movement of robotic arm with the subsequent relative motion between the two-comprising links.
Input:
(x0, y0) = starting point of link1
(x1, y1) = end point of link1 / starting point of link 2 (x2, y2) = end point of link 2
l1 = length of link attached to the base
l2 = length of link between the first link and the end effector theta1 = angle made by link 1 with x-axis
theta2 = angle made by link 2 with x-axis

clear all close all clc
% Inputs
% Length of robotic arms l1 = 1;
l2 = 0.5;
% Set of angles for the movement of robotic arms theta1 = linspace(0,90,10);
theta2 = linspace(0,90,10);
ct=1;
THETA1 = theta1(i);
for j = 1:length(theta2) THETA2 = theta2(j);
% Coordinates of start point of first arm x0 = 0;
y0 = 0;
% Coordinates of end point of 1st arm / start point of 2nd arm x1 = l1*cosd(THETA1);
y1 = l1*sind(THETA1);
% Coordinates of end point of 2nd arm x2 = x1 + l2*cosd(THETA2);
y2 = y1 + l2*sind(THETA2);
% Plotting
% Coordinates of arms assigned over a set of theta1 and theta2
plot([x0 x1],[y0 y1],[x1 x2],[y1 y2],'linewidth',3,'marker','*');
end
end
% The limits of x-axis and y-axis axis([-0.1 1.5 0 1.5]);
% To cease the animation from jumping between subsequent figures pause(0.03)
% Collecting frames of figures to comprise a movie/animation M(ct) = getframe(gcf);
ct=ct+1;
% To make a movie of the collected frames movie(M)
% Saving the movies in '.avi' format
videofile = VideoWriter('forward_kinematics.avi','Uncompressed AVI'); open(videofile)
% Writing the movie in the videofile created writeVideo(videofile,M)
close(videofile)
EXPLANATION OF PROGRAM:
Initially we define the length of the robotic arms, i.e. l1 and
Set of values for theta1 and theta2 are assigned in and array with linspace command. Use of for command for iterating the values of the desired variable.
Again using for command for providing movement to the second robotic arm. Defining the coordinates of both the robotic arms.
Plotting all the coordinate values and writing commands for changing the appearance of the contours. All figures are assigned to a variable M, one at a time using ct followed by termination of for loop.
Lastly, movie command is used to combine all the figures saved in the M file to make an animation/movie and thereafter saving it in .avi format.
CONCLUSION: A practical scenario regarding the functioning of the robotic arm and its workspace h simulating the forward kinematics with a program in MATLAB.