# Matlab Assignment, U need the matlab software to work on this

Anonymous

### Question Description

i need someone who is sure to work on it.

see the attachments

assignment__2._matlab.docx

assignment_5._matlab.pdf

U CAN ALSO CHECK OUT THES EXAMPLES

Lecture_13.pdfhan

lecture_15.pdf

thanks

Assignment 2 Watch one of the two videos below and afterwards, provide a brief three to five paragraph response describing one of the "robots" introduced and whether or not it satisfies the definition of a robot as introduced in class. 1https://www.youtube.com/watch?v=13JGGbB2ctM 2https://www.youtube.com/watch?v=Hvtxe_EkG6U Assignment 3 Lecture 11 Video and Notes http://www.youtube.com/watch?v=cpHwSSA1zbg&feature=youtu.be http://www.youtube.com/watch?v=H8VjgcTp7ms&feature=youtu.be Lecture 12 Video and Notes http://www.youtube.com/watch?v=G71LkbPMf6A&feature=youtu.be
EET 477: Robotics Assignment #5 Chapter 7: Trajectory Generation Directions: Use Matlab to perform each of the indicated tasks lists in the problems below. For submission, include the Matlab code for each problem and, when asked for, the joint locations in Cartesian space and a graphical representation of the manipulator configuration. 1. Develop a Matlab program that will implement a linear interpolation algorithm to move the end effector from an initial point to a destination along a linear path. The program should use the cyclic coordinate descent algorithm developed in Chapter 4 as well as the D-H parameters stated listed below and other program parameters from the previous assignment. The program should interpolate at least 100 points between the two points. (5 points) 00 πΌβ [ πβ ] = [ 0 π1 πβ 00 40 π2 00 30 π3 00 00 20 10 π4 π5 00 5] 0 2. Modify the program from problem 1 to accept 5 separate destinations, then subsequently move the manipulator between each of the six locations. This six locations include the five selected destinations and initial location. (5 points)
EET 477 Robotics Lecture 13: 21Jul14 Objective: ο· Review cyclic coordinate descent algorithm for inverse kinematics. ο· Introduce trajectory planning Discuss the speed of the CCD algorithm ο· The following code represents the solution for Part one of homework 4. ο· It generally takes between 8 to 30 seconds to determine a solution when the destination is not near the edge of the workspace. %Author: Davis %Date: 21Jul14 %Description: Homework 4, Problem 1 Destination_DH_Parms=Initial_DH_Parms; Workspace = sum(Initial_DH_Parms(2,:)); cla; hold on; %retains plots between plot statements grid on; axis([-1*Workspace,Workspace,-1*Workspace,Workspace,-1*Workspace,Workspace]); %defines min_x, max_x, ... view([0,0,15]); %defines point of view Angle_Resolution = 4; Frame_A=[0,1,0,0,0,0; 0,0,0,1,0,0; 0,0,0,0,0,1; 1,1,1,1,1,1]; Frame_B=Revolute_Transformation(Destination_DH_Parms(:,1))*Frame_A; Frame_C=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*Frame_A; Frame_D=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*Frame_A; Frame_E=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*... Revolute_Transformation(Destination_DH_Parms(:,4))*Frame_A; Frame_F=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*... Revolute_Transformation(Destination_DH_Parms(:,4))*... Revolute_Transformation(Destination_DH_Parms(:,5))*Frame_A; Frame_G=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*... Revolute_Transformation(Destination_DH_Parms(:,4))*... Revolute_Transformation(Destination_DH_Parms(:,5))*... Revolute_Transformation(Destination_DH_Parms(:,6))*Frame_A; %plot each displacement vector in green and P vector in cyan plot3([Frame_A(1,1),Frame_B(1,1)],... [Frame_A(2,1),Frame_B(2,1)],... [Frame_A(3,1),Frame_B(3,1)],'blue','linewidth',3); plot3([Frame_B(1,1),Frame_C(1,1)],... [Frame_B(2,1),Frame_C(2,1)],... [Frame_B(3,1),Frame_C(3,1)],'blue','linewidth',3); plot3([Frame_C(1,1),Frame_D(1,1)],... [Frame_C(2,1),Frame_D(2,1)],... [Frame_C(3,1),Frame_D(3,1)],'blue','linewidth',3); plot3([Frame_D(1,1),Frame_E(1,1)],... [Frame_D(2,1),Frame_E(2,1)],... [Frame_D(3,1),Frame_E(3,1)],'blue','linewidth',3); plot3([Frame_E(1,1),Frame_F(1,1)],... [Frame_E(2,1),Frame_F(2,1)],... [Frame_E(3,1),Frame_F(3,1)],'blue','linewidth',3); plot3([Frame_F(1,1),Frame_G(1,1)],... [Frame_F(2,1),Frame_G(2,1)],... [Frame_F(3,1),Frame_G(3,1)],'blue','linewidth',3); %Select Destination plot3([x_dest x_dest],[y_dest y_dest],[0 0],'r+') drawnow; start = clock(); Distance_to_Destination(1) = sqrt((x_dest-Frame_G(1,1))^2+(y_dest-Frame_G(2,1))^2) if(sqrt(x_dest^2+y_dest^2)>Workspace) text(0,0,'Outside of reachable space!!!!!!','FontSize',24,... 'FontWeight','bold','Color','r'); break; end %initialize distance to enter loop. Tolerance = .5; while(Distance_to_Destination(1) > Tolerance) for m = 5:-1:1 First_Loop = 1; for n=m:1:5 Distance_to_Destination(2) = 1000; Destination_DH_Parms(3,n)=Destination_DH_Parms(3,n)+1; Temp_Calc=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*... Revolute_Transformation(Destination_DH_Parms(:,4))*... Revolute_Transformation(Destination_DH_Parms(:,5))*... Revolute_Transformation(Destination_DH_Parms(:,6))*Frame_A; if(Distance_to_Destination(1)<... (sqrt((Temp_Calc(1,1)-x_dest)^2+(Temp_Calc(2,1)-y_dest)^2))) Rotation=-1; else Rotation=1; end Destination_DH_Parms(3,n)=Destination_DH_Parms(3,n)-1; while((Distance_to_Destination(2)>Distance_to_Destination(1))&&... (Distance_to_Destination(1)>Tolerance)) Destination_DH_Parms(3,n)=Destination_DH_Parms(3,n)+... Angle_Resolution*Rotation; Frame_B=Revolute_Transformation(Destination_DH_Parms(:,1))*Frame_A; Frame_C=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*Frame_A; Frame_D=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*Frame_A; Frame_E=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*... Revolute_Transformation(Destination_DH_Parms(:,4))*Frame_A; Frame_F=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*... Revolute_Transformation(Destination_DH_Parms(:,4))*... Revolute_Transformation(Destination_DH_Parms(:,5))*Frame_A; Frame_G=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*... Revolute_Transformation(Destination_DH_Parms(:,4))*... Revolute_Transformation(Destination_DH_Parms(:,5))*... Revolute_Transformation(Destination_DH_Parms(:,6))*Frame_A; Distance_to_Destination(2) = Distance_to_Destination(1); Distance_to_Destination(1) = sqrt((x_dest-Frame_G(1,1))^2+(y_destFrame_G(2,1))^2); end end end if(Distance_to_Destination(1)<10) Angle_Resolution=1; end end %plot each displacement vector in green and P vector in cyan plot3([Frame_A(1,1),Frame_B(1,1)],... [Frame_A(2,1),Frame_B(2,1)],... [Frame_A(3,1),Frame_B(3,1)],'red','linewidth',3); plot3([Frame_B(1,1),Frame_C(1,1)],... [Frame_B(2,1),Frame_C(2,1)],... [Frame_B(3,1),Frame_C(3,1)],'red','linewidth',3); plot3([Frame_C(1,1),Frame_D(1,1)],... [Frame_C(2,1),Frame_D(2,1)],... [Frame_C(3,1),Frame_D(3,1)],'red','linewidth',3); plot3([Frame_D(1,1),Frame_E(1,1)],... [Frame_D(2,1),Frame_E(2,1)],... [Frame_D(3,1),Frame_E(3,1)],'red','linewidth',3); plot3([Frame_E(1,1),Frame_F(1,1)],... [Frame_E(2,1),Frame_F(2,1)],... [Frame_E(3,1),Frame_F(3,1)],'red','linewidth',3); plot3([Frame_F(1,1),Frame_G(1,1)],... [Frame_F(2,1),Frame_G(2,1)],... [Frame_F(3,1),Frame_G(3,1)],'red','linewidth',3); finish=clock()-start The following code represents the same implementation of the CCD algorithm with the following differences: ο· It uses the same initial joint parameters and destination as the first script. o The first script must be executed first to generate these parameters ο· It only draws the initial and final solutions, with no intermediate steps. ο· Generally arrives at the solutions in less than 1 second when destination is not near edge of workspace %Author: Davis %Date: 21Jul14 %Description: Homework 4, problem 1 Solution only Destination_DH_Parms=Initial_DH_Parms; Workspace = sum(Initial_DH_Parms(2,:)); cla; hold on; %retains plots between plot statements grid on; axis([-1*Workspace,Workspace,-1*Workspace,Workspace,-1*Workspace,Workspace]); %defines min_x, max_x, ... view([0,0,15]); %defines point of view Angle_Resolution = 1; Frame_A=[0,1,0,0,0,0; 0,0,0,1,0,0; 0,0,0,0,0,1; 1,1,1,1,1,1]; Frame_B=Revolute_Transformation(Destination_DH_Parms(:,1))*Frame_A; Frame_C=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*Frame_A; Frame_D=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*Frame_A; Frame_E=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*... Revolute_Transformation(Destination_DH_Parms(:,4))*Frame_A; Frame_F=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*... Revolute_Transformation(Destination_DH_Parms(:,4))*... Revolute_Transformation(Destination_DH_Parms(:,5))*Frame_A; Frame_G=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*... Revolute_Transformation(Destination_DH_Parms(:,4))*... Revolute_Transformation(Destination_DH_Parms(:,5))*... Revolute_Transformation(Destination_DH_Parms(:,6))*Frame_A; %plot each displacement vector in green and P vector in cyan plot3([Frame_A(1,1),Frame_B(1,1)],... [Frame_A(2,1),Frame_B(2,1)],... [Frame_A(3,1),Frame_B(3,1)],'blue','linewidth',3); plot3([Frame_B(1,1),Frame_C(1,1)],... [Frame_B(2,1),Frame_C(2,1)],... [Frame_B(3,1),Frame_C(3,1)],'blue','linewidth',3); plot3([Frame_C(1,1),Frame_D(1,1)],... [Frame_C(2,1),Frame_D(2,1)],... [Frame_C(3,1),Frame_D(3,1)],'blue','linewidth',3); plot3([Frame_D(1,1),Frame_E(1,1)],... [Frame_D(2,1),Frame_E(2,1)],... [Frame_D(3,1),Frame_E(3,1)],'blue','linewidth',3); plot3([Frame_E(1,1),Frame_F(1,1)],... [Frame_E(2,1),Frame_F(2,1)],... [Frame_E(3,1),Frame_F(3,1)],'blue','linewidth',3); plot3([Frame_F(1,1),Frame_G(1,1)],... [Frame_F(2,1),Frame_G(2,1)],... [Frame_F(3,1),Frame_G(3,1)],'blue','linewidth',3); %Select Destination plot3([x_dest x_dest],[y_dest y_dest],[0 0],'r+') drawnow; start = clock(); Distance_to_Destination(1) = sqrt((x_dest-Frame_G(1,1))^2+(y_dest-Frame_G(2,1))^2) if(sqrt(x_dest^2+y_dest^2)>Workspace) text(0,0,'Outside of reachable space!!!!!!','FontSize',24,... 'FontWeight','bold','Color','r'); break; end %initialize distance to enter loop. Tolerance = .5; while(Distance_to_Destination(1) > Tolerance) for m = 5:-1:1 First_Loop = 1; for n=m:1:5 Distance_to_Destination(2) = 1000; Destination_DH_Parms(3,n)=Destination_DH_Parms(3,n)+1; Temp_Calc=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*... Revolute_Transformation(Destination_DH_Parms(:,4))*... Revolute_Transformation(Destination_DH_Parms(:,5))*... Revolute_Transformation(Destination_DH_Parms(:,6))*Frame_A; if(Distance_to_Destination(1)<... (sqrt((Temp_Calc(1,1)-x_dest)^2+(Temp_Calc(2,1)-y_dest)^2))) Rotation=-1; else Rotation=1; end Destination_DH_Parms(3,n)=Destination_DH_Parms(3,n)-1; while((Distance_to_Destination(2)>Distance_to_Destination(1))&&... (Distance_to_Destination(1)>Tolerance)) Destination_DH_Parms(3,n)=Destination_DH_Parms(3,n)+... Angle_Resolution*Rotation; Frame_B=Revolute_Transformation(Destination_DH_Parms(:,1))*Frame_A; Frame_C=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*Frame_A; Frame_D=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*Frame_A; Frame_E=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*... Revolute_Transformation(Destination_DH_Parms(:,4))*Frame_A; Frame_F=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*... Revolute_Transformation(Destination_DH_Parms(:,4))*... Revolute_Transformation(Destination_DH_Parms(:,5))*Frame_A; Frame_G=Revolute_Transformation(Destination_DH_Parms(:,1))*... Revolute_Transformation(Destination_DH_Parms(:,2))*... Revolute_Transformation(Destination_DH_Parms(:,3))*... Revolute_Transformation(Destination_DH_Parms(:,4))*... Revolute_Transformation(Destination_DH_Parms(:,5))*... Revolute_Transformation(Destination_DH_Parms(:,6))*Frame_A; Distance_to_Destination(2) = Distance_to_Destination(1); Distance_to_Destination(1) = sqrt((x_dest-Frame_G(1,1))^2+(y_destFrame_G(2,1))^2); end end end if(Distance_to_Destination(1)<10) Angle_Resolution=.1; end end %plot each displacement vector in green and P vector in cyan plot3([Frame_A(1,1),Frame_B(1,1)],... [Frame_A(2,1),Frame_B(2,1)],... [Frame_A(3,1),Frame_B(3,1)],'red','linewidth',3); plot3([Frame_B(1,1),Frame_C(1,1)],... [Frame_B(2,1),Frame_C(2,1)],... [Frame_B(3,1),Frame_C(3,1)],'red','linewidth',3); plot3([Frame_C(1,1),Frame_D(1,1)],... [Frame_C(2,1),Frame_D(2,1)],... [Frame_C(3,1),Frame_D(3,1)],'red','linewidth',3); plot3([Frame_D(1,1),Frame_E(1,1)],... [Frame_D(2,1),Frame_E(2,1)],... [Frame_D(3,1),Frame_E(3,1)],'red','linewidth',3); plot3([Frame_E(1,1),Frame_F(1,1)],... [Frame_E(2,1),Frame_F(2,1)],... [Frame_E(3,1),Frame_F(3,1)],'red','linewidth',3); plot3([Frame_F(1,1),Frame_G(1,1)],... [Frame_F(2,1),Frame_G(2,1)],... [Frame_F(3,1),Frame_G(3,1)],'red','linewidth',3); finish=clock()-start
EET 477 Robotics Lecture 15: 23Jul14 Objective: ο· Introduce Linear Interpolation ο· Use Linear Interpolation in trajectory generation Warmup: Given a manipulator with the following DH Parameters, determine the minimum holding torque required for each joint if the maximum load capacity of the end effector is 25 kg. 00 [0 π1 00 40 π2 00 25 π3 00 10] 0 Solution: For π1 , π π1 = βββ βββ π1 Γ πΉ = |75 0 π 0 0 π 0 | = [0,18375,0] β245 |πβββ1 | = 18375 ππ π βββ π2 = βββ π2 Γ πΉ = |35 0 π 0 0 π 0 | = [0,8575,0] β245 |πβββ1 | = 8575 ππ π βββ π3 = βββ π3 Γ πΉ = |10 0 π 0 0 π 0 | = [0,2450,0] β245 |πβββ3 | = 2450 ππ For π2 , For π3 , Introduce linear interpolation Linear interpolation is the process of approximating the point on the interior of two boundaries by assuming a linear relation. Can use the equation of the line between the boundaries, then select an βxβ to determine the βyβ π¦ β π¦0 π¦1 β π¦0 = π₯ β π₯0 π₯1 β π₯0 π₯, π¦ = πππ‘πππππππ‘πππ πππππ‘ π₯0 , π¦0 = ππππ‘πππ πππ’πππππ¦ π₯1 , π¦1 = π‘πππππππ πππ’πππππ¦ Example: Assume two points are located at [2,3] and [7,1]. Determine the coordinate of the point at π₯ = 5. Solution: π¦β3 1β3 = β π¦ = 1.8 5β2 7β2 To implement linear interpolation in matlab, can divide the line segment into a particular number of division. This code segment divides the x and y range into 200 steps, then plots each step. cla; hold on; %retains plots between plot statements grid on; Workspace = 100; axis([-1*Workspace,Workspace,-1*Workspace,Workspace,-1*Workspace,Workspace]); %defines min_x, max_x, ... view([0,0,15]); %defines point of view [x_init,y_init]=ginput(1) plot3([x_init x_init],[y_init y_init],[0 0],'r+') [x_dest,y_dest]=ginput(1) plot3([x_dest x_dest],[y_dest y_dest],[0 0],'r+') for n = 0:200 x=n*(x_dest-x_init)/200+x_init; y=n*(y_dest-y_init)/200+y_init; plot([x x],[y y],'black','linewidth',4); end To implement linear interpolation in trajectory planning, we need to: 1. Determine the initial end effector location 2. Determine the destination of the end effector 3. Use linear interpolation to determine a series of steps between the initial location and destination 4. Use the CCD algorithm at each of these locations to determine the set of joint parameters needed to arrive at the location.

This question has not been answered.

Create a free account to get help with this and any other question!

Brown University

1271 Tutors

California Institute of Technology

2131 Tutors

Carnegie Mellon University

982 Tutors

Columbia University

1256 Tutors

Dartmouth University

2113 Tutors

Emory University

2279 Tutors

Harvard University

599 Tutors

Massachusetts Institute of Technology

2319 Tutors

New York University

1645 Tutors

Notre Dam University

1911 Tutors

Oklahoma University

2122 Tutors

Pennsylvania State University

932 Tutors

Princeton University

1211 Tutors

Stanford University

983 Tutors

University of California

1282 Tutors

Oxford University

123 Tutors

Yale University

2325 Tutors