Week 2- 2R Robotic Arm Challenge
Aim: Write a program in Matlab to simulate the forward kinematics of a 2R Robotic Arm,as shown in the video.
1. Create an animation file of the plot.
Inputs:
l1 = 1.4 meters
l2 = 0.8 meters
theta1 = (0,90) 10 values in degress
theta2 = (0,90) 10 values in degress
x0 = 0
y0 = 0
x1 = l1*cosd(theta1)
y1 = l1*sind(theta1)
x2 = x1+l2*cosd(theta2)
y2 = y1+l2*sind(theta2)
Objective of the Project:
To study the forward kinematics links of a robotic arm at different position and different angles to understand the working of a robotic arm.
Body of the content:
% forward kinematics of a 2R robotic arm manipulator
clear all
close all
clc
% inputs
l1 = 1.4;
l2 = 0.8;
theta1 = linspace(0,90,10);
theta2 = linspace(0,90,10);
ct=1;
for i = 1:length(theta1)
THETA1 = theta1(i);
for j = 1:length(theta2)
THETA2 = theta2(j);
x0 = 0;
y0 = 0;
x1 = l1*cosd(THETA1);
y1 = l1*sind(THETA1);
x2 = x1+l2*cosd(THETA2);
y2 = y1+l2*sind(THETA2);
% plotting
plot([x0 x1],[y0 y1],[x1 x2],[y1 y2],'linewidth',3)
axis([-0.1 1.5 0 1.5])
pause(0.3)
M(ct) = getframe(gcf);
ct=ct+1;
end
end
movie(M)
videofile = VideoWriter('forward_kinematics.avi','Uncompressed AVI')
open(videofile)
writeVideo(videofile,M)
close(videofile)
Explanation of the program:
1. First we define the length of the robotic arm l1 and l2 respectively.
2. Assign values to theta1 and theta 2 using linspace command.
3. After that use for loop command for link 1 and theta1.
4. Again use for loop command for link 2 and theta2.
5. After that define the co-ordinates of the robotic arm.
6. Then plot all the co-ordinates.
7. All figures are assigned to a value M one at a time using ct followed by terminates for loop.
8. movie command is used to combine all the figures saved in the M file to make an animate and saving in .avi extension.
Report: Animation link
Conclusion: A pratical functioning of the robotic arm are experienced through simulating the forward kinematics in a Matlab.