Challenge

Week 2- 2R Robotic Arm Challenge

% programming using for loop in forward kinematic

%inputs

l1=2
l2=1
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',5);
        axis([-0.1 4 0 4])
        pause(0.1)
        M(ct)=getframe(gcf);
        ct=ct+1;
    end 
end
movie(M)
videofile=VideoWriter('forward_kinematic.avi','Uncompressed AVI');
open(videofile)
writeVideo(videofile,M)
close(videofile)

EXPLANATION OF CODES USED ABOVE:

INPUT HAS BEEN ASSUMED.

L1=2 MEANS LENGTH OF THE FIRST ARM

L2=1 MEANS LENGTH OF THE SECOND ARM

theta1=linspace(0,90,10)

theta2=linspace(0,90,10)

HERE THE LANSPACE COMMAND IS USED BECAUSE I NEED VARIOUS ARM POSITION SO, theta VALUE 0 TO 90 I NEED 10 VALUES BETWWEN THEM

ct =1 IT MEANS COUNTER USED INCREMENTS VALUES

for MEANS THE LOOP HAS BEEN OPENED HERE IT IS USED FOR REPEATING THE PROGRAMM UNITS THE COMMAND END IS USED

i=1:length(theta1)

THETA1=theta1(i)

THIS MEANS i VARIABLE IS EQUAL TO 1 IS TO LENGTH OF theta1 HERE THE LENGTH OF theta1 is 10

ANOTHER FOR LOOP IS OPENED j FOR THE theta2

AND THE REPEATED VALUES SHOULD BE ENTERED IN LOOP MEANS

X0=0

Y0=0

X1= L1* COSD(THETA1)

Y1= L1* SIND(THETA1)

X2= X1+L2* COSD(THETA2)

Y2= Y1+L2* SIND(THETA2)

PLOTTING THE COORDINATES

PLOTTING ALL THE COORINATES IN DIFFERENT POSITIONAS

AXIS LIMITS HAS BEEN FIXED OR MENTIONED

PAUSE COMMAND IS USED TO FASTER THE MOTION OR TIME TO APPEAR IN DIFFERENT POSITION

M IS THE VARIABLE WE USE SOME ALSO

M(ct)=GETFRAME(gcf) MEANS THE COLLECTING ALL THE FIGURE FROM ALL DIFFERENT POSITION HAS BEEN COLLECTED

AGAIN THE CT IS INCREMENTED TO +1

SO, THE ALL THE DIFFERENT POSITION AND ANGLES BEEN DONE BY USING FOR LOOP COMMMAND

END

END HERE 2 END HAS BEEN TYPIED BECAUSE WE HAVE 2 FOR LOOP SO, THE 2 END SHOULD GIVE AT THE END

FROM THE ABOVE THE PROGRAM THE DIFFERENT FIGURE HAS BEEN COLLECTED BUT WE NEED THE ANIMATION SO,

MOVIE (M)

HERE THE M IS THE ARRAY OF FIGURE IT HAS BEEN ANIMATED BY MOVIE COMMAND IN BULIT IN MATLAB

FOR THE SAVING THE ANIMATED VIDEO OF FIGURES

INITIALLY THE VIDEOFILE HAS BEEN CREATED IN THAT VIDEO WRITING SHOULD SAVED INTO THAT VIDEO FILE IN THAT FORMAT OF THE FILE HAS BEEN MENTIONED

FOR SAVING THE FILE -OPEN FILE (VIDEO FILE) MEANS OPENING THE CREATED VIDEO FILE

WRITEVIDEO(VIDOE FIEL, M ) MEANS THE AN ARRAY OF FIGURE OF M HAS BEEN ANIMATED IN THAT VIDEO FILE

CLOSEFILE(VIDEO FILE ) MEAN CLOSING THE OPENED VIDEO FILE AFTER WRITIED IN THAT FILE.

ERROR:

FROM THIS ABOVE IMAGES THE ERROR THAT I HAVE MADE IS IN 34 LINE THE videofile=Videowriter('forward_kinematic.avi','Uncompressed AVI')

ERROR IN THAT IS Videowriter IS WRONG, VideoWritier IS CORRECT HERE V AND W SHOULD BE IN UPPERCASE

THIS IS THE IS OUTPUT OF MY PROGRAM

https://youtu.be/LCaMba67kDI

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.