Challenge

Week 2- 2R Robotic Arm Challenge

Aim

Solving Forward Kinematics of 2R robotic arm manipulator and making an animation of the motion of the robotic arm by using MATLAB.

Steps:

Before Programming

  • Figuring out how the robot move
  • Drawing the base of robot which contains two linkages and two rotational joints
  • Calculate the linkages by using the following equations: 1- 2- . . The original points should be given

During the first (file) Programming

The Objective here is to calculate the parameters that is involved and also plotting it.

  • Inserting the inputs: Link 1, Link 2, Theta 1, Theta 2, The original and second points for x and y coordinates respectively.
  • Inserting the equations of Forward Kinematics.
  • Plotting the code

Problems or Errors that has been faced during the program:

  • In the first plot the ‘line’ function has been used but it showed as a one link only

How is it solved : By adding another function with different points and different angle with a different color

During the second (file) Programming

The main objective here is to do the final coding that will make the desired animation that will shows the moving of the 2R robotic arm.

  • THE FIRST CODE 
    
    % Forward kinematics of a 2R robotic arm manipulator 
    clear all 
    close all 
    clc 
    
    % Inputs 
    l1= 1; 
    l2= 0.5; 
    
    theta1 = 45; 
    theta2 = 30; 
    
    %Coordinates 
    x0 = 0; 
    y0 = 0; 
    
    x1 = l1*cosd(theta1); 
    y1 = l1*sind (theta1); 
    
    x2 = x1 + l2*cosd(theta2); 
    y2 = y1 + l2*sind(theta2); 
    % Plottinjg 
    line([x0 x1], [y0 y1], 'linewidth',3, 'color', 'b')
    line([x1 x2], [y1 y2], 'linewidth',3, 'color','r')
    
    
    
    THE SECOND CODE 
    
    
    close all
    clc 
    
    %Inputs 
    l1 = 1;
    l2 = 0.5;
    
    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.04)
        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)​
    Inserting the inputs. The different here is to make the two angles in multiple values. By using the ‘linspace’ function.
  • Using ‘for loop’ function to help changing the position of angles automatically.
  • Coping the equation In the first file and paste it in the current file
  • Plotting the code with help of ‘plot’ function, only in one line with two points. Then plot the axis, and pause it to animate it.
  • Fixing the x and y axis to make the plot a bit smoother
  • Insert ‘Pause’ function to animate the plot
  • Increase the resolution of theta 1 and theta 2 to make it smoother
  • Creating a movie of the plot to make it a movie animation

Problems or Errors that has been faced during the program:

  • Using ‘line’ function, which will shows the figure in multiple lines all at once and not animated. How is it solved: changing the function from ‘line’ to ‘plot’, and also using counter figure to show it in different figures.
  • When the plot has been runned, it has been showed only in one color. Because it has been overwritten and to overcome this issue ‘hold on’ command has been used. And because of the plot function we can remove the hold on command.
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.

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.