Week 2- 2R Robotic Arm Challenge
AIM
TO SIMULATE THE FORWARD KINEMATICS OF ROBOTIC ARM USING MAT LAB PROGRAMMING
OBJECTIVES OF PROJECT
* USING THE FREE BODY DIAGRAM OF LINKS AND JOINTS, VARIABLE VALUES CAN BE CALCULATED.
* BY USING PROGRAMMING CODES RESULTS CAN BE PLOTTED.
* FROM THE RESULTS, NEED TO CREATE THE ANIMATED VIDEO FILE FOR REFERENCE.
EXPLANATION OF PROJECT
IN A AUTOMOTIVE INDUSTRY, AUTOMATION OF THE PROCESS PLAYS THE MAJOR ROLE. IN THIS CASE USING THE CODES AND SYNTAX SENDS THE INPUT AS CONVERTED INTO MACHINE LANGUAGE TO THE COMPUTER NUMERICAL CONTROL. BY THIS TYPE OF AUTOMATION HELPS US TO IMPROVE TIME MANAGEMENT, LESS MANPOWER WITH MORE SAFETY PRECAUTIONS AND MAINLY FOCUSSING ABOUT THE MORE ACCURACY AND PRECISION OF THE JOB. BY CONTROLLING THE MACHINE WITH PROGRAMMING LANGUAGES WHICH MAKES EASIER FOR EVALUATING THE CONCEPT MORE.
HERE, TWO LINKS AND JOINTS ARE THERE, LINK 1 AND LINK 2 ARE MOVING THINGS AND OUR REQUIREMENT IS AFTER LINK 2 END JOINT WELDED THE JOB IT ATTAINS THE POSITION OF 0 DEG .
FREE BODY DIAGRAM

* HERE, LINK-1 BE THE LENGTH OF 0.8 METER AND LINK-2 BE THE LENGTH OF 0.7 METER. ‘theta1’ & ‘theta2’ BE THE ANGLES OF LINK 1 AND 2.
* X0,X1,X2 AND Y0,Y1,Y2 BE THE VARIABLES OF END JOINTS.
* INITIALLY, X0 AND Y0 FIXED AS ORIGIN POINTS WHICH REFERS (0,0)
SYNTAX
% FORWARD KINEMATICS ON A ROBOTIC ARM
close all
clear all
clc
theta1 = linspace(0,90,3);
theta2 = linspace(0,90,3);
l1 = 0.8;
l2 = 0.7;
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 );
plot([x0 x1], [y0 y1], [x1 x2], [y1 y2])
axis ([0,1.5,0,1.5])
pause (0.2)
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)
PROGRAM EXPLANATION

* HERE, theta1 & theta2 ASSIGNED USING LINSPACE(0,90,3) WHICH REFERS THAT INBETWEEN 0 AND 90, THREE VALUES ARE ASSIGNED THAT VALUES ARE 0,45 AND 90.
* L1 AND L2 VALUES ARE 0.8M & 0.7M RESPECTIVELY.

FOR LOOP
LENGTH OF theta1 DENOTES THAT SIZE OF theta 1,here size of theta1 is 3

NESTED FOR LOOP IS INITIATED HERE,
CASE-1
* IF ,i=1:1 MAKES THE CONDITION TRUE AND EXECUTES THE INSIDE LOOP . INSIDE LOOP HAS ‘j’ VARIABLE AND CHECK THE CONDITION j=1:1 MAKES THE CONDITION TRUE AND EXECUTES FURTHER.
* IF ,i=1:1 MAKES THE CONDITION TRUE AND EXECUTES THE INSIDE LOOP . INSIDE LOOP HAS ‘j’ VARIABLE AND CHECK THE CONDITION j=1:2 MAKES THE CONDITION TRUE AND EXECUTES FURTHER.
* IF ,i=1:1 MAKES THE CONDITION TRUE AND EXECUTES THE INSIDE LOOP . INSIDE LOOP HAS ‘j’ VARIABLE AND CHECK THE CONDITION j=1:3 MAKES THE CONDITION TRUE AND EXECUTES FURTHER.
*IF ,i=1:1 MAKES THE CONDITION TRUE AND EXECUTES THE INSIDE LOOP . INSIDE LOOP HAS ‘j’ VARIABLE AND CHECK THE CONDITION j=1:4 MAKES THE CONDITION FALSE AND IT RETUNED TO THE OUTER FOR LOOP AND ALSO IT DOES NOT EXECUTES FURTHER AND i=1:2 EXECUTE AND SO ON…
CASE-2 (i=1:2) AND CASE-3 (i=1:3) FOLLOWS THE SAME PROCEDURE …

* CALCULATED VARIABLES AND EQUATIONS ARE ENTERED.
* THETA1 AND THETA2 ARE VARIABLES ASSIGNED FOR EXECUTING FOR LOOP.
* COS’D’ WHICH REPRESENTS VALUES IN DEGREES

* PLOT THE CALCULATED VALUES.
* AXIS TO BE SET ACCORDINGLY

* FOR LOOP IS CLOSED WITH END COMMAND.
* ‘Movie(M)’ COMMAND USED TO CREATE THE MOVIE FILE.
* ‘VideoWriter’ COMMAND HELPS TO CREATE THE NAME OF FILE AND ITS FORMAT
* PAUSE COMMAND WHICH HELPS TO CONTROL THE SPEED OF THE FRAME IN SECONDS
FACED ERRORS WHILE PROGRAMMING

HERE, INSTEAD OF “THETA1” USED LOWERCASE AND MAKES THE PLOT LIKE BELOW

MOVIE
FOR YOUR REFERENCE: https://drive.google.com/file/d/1qbtmSTS5ms8PmFp5e-yRLFPWzV-nWcFy/view?usp=sharing
CONCLUSION
FROM THE EXECUTED RESULTS, (X2,Y2) VALUES ARE DEPENDING THE (X1,Y1) VALUES. FROM THIS PROGRAM WE CONCLUDE THAT ANIMATED FILE WHICH HELPS TO UNDERSTAND THE MOVING ARM IN A PARTICULAR AREA WITH A MEASURING ANGLES AND POSITION. USING THE ‘LINE’ COMMAND INSTEAD OF PLOT WHICH SHOWS THE SINGLE OF PARTICULAR VALUE FOR CLEAR UNDERSTANDING. FINALLY WE SIMULATE THE RESULT OF FORWARD KINEMATICS OF A ROBOTIC ARM SUCCESSFULLY.