├── Codes ├── CCSegment.m ├── Constant_curvature_plots.m ├── FKineSMA.m ├── IKineSMA.m ├── PCCSection.m ├── alpha_l_numerical.sfit ├── homogeneousTransformMatrix.m ├── model_plots.m ├── motionSimulation.mlx └── workspace_plot.m ├── Images ├── CCSegmentTest.png ├── CCmodel.gif ├── CCplots.png ├── PCCSectionTest.png ├── linear_circular_angle_diff.png ├── linear_circular_angle_diff_10deg.png ├── linear_circular_angle_diff_120deg.png ├── linear_circular_angle_diff_150deg.png ├── linear_circular_angle_diff_180deg.png ├── linear_circular_angle_diff_30deg.png ├── linear_circular_angle_diff_50deg.png ├── linear_circular_angle_diff_60deg.png ├── linear_circular_angle_diff_70deg.png ├── linear_circular_length_diff.png ├── linear_circular_length_diff_10deg.png ├── linear_circular_length_diff_120deg.png ├── linear_circular_length_diff_150deg.png ├── linear_circular_length_diff_180deg.png ├── linear_circular_length_diff_30deg.png ├── linear_circular_length_diff_50deg.png ├── linear_circular_length_diff_60deg.png ├── linear_circular_length_diff_70deg.png └── workspace.png ├── Information about Supervisor in Saarbrücken.docx └── Slides ├── Intro_SMA.pptx ├── thesis_statement.pptx ├── update1.pptx ├── update2_kinematics.pptx └── update3_kinematics.pptx /Codes/CCSegment.m: -------------------------------------------------------------------------------- 1 | % Constant curvature for one segment. beta is the segment angle and l is 2 | % the segment length. 3 | 4 | function T = CCSegment(alpha, l) 5 | 6 | if alpha == 0 % singularity 7 | T = [1, 0, 0, 0; ... 8 | 0, 1, 0, 0; ... 9 | 0, 0, 1, l; ... 10 | 0, 0, 0, 1]; 11 | else 12 | T = [ cos(alpha) 0, -sin(alpha) l * ((1 - cos(alpha))/alpha) ; ... 13 | 0, 1, 0, 0 ; ... 14 | sin(alpha), 0, cos(alpha), l * (sin(alpha)/alpha) ; ... 15 | 0, 0, 0, 1 ]; 16 | end 17 | end -------------------------------------------------------------------------------- /Codes/Constant_curvature_plots.m: -------------------------------------------------------------------------------- 1 | % Code to generate representative plot for CC model 2 | clear 3 | clc 4 | 5 | %% Calculate transforms along the curvature and plot 6 | length = 1; % 1m 7 | figure; hold on 8 | 9 | for alpha = 0:pi/10:pi 10 | temp_points = []; 11 | for s = 0:0.002:1 12 | T_1 = homogeneousTransformMatrix(s, alpha, length); 13 | px = T_1(1, 4); 14 | py = T_1(2, 4); 15 | temp_points = [temp_points; [px, py]]; 16 | end 17 | plot(temp_points(:, 1), temp_points(:, 2), '.'); 18 | end 19 | 20 | % Plot parameters 21 | grid on 22 | % xmax = 1.2; xmin = -0.2; ymax = 1.2; ymin = -0.2; 23 | % xlim([xmin xmax]) 24 | % ylim([ymin ymax]) 25 | % set(gca, 'xtick', xmin:0.2:xmax) 26 | % set(gca, 'ytick', ymin:0.2:ymax) 27 | axis equal 28 | xlabel("x [m]") 29 | ylabel("y [m]") 30 | title("Soft continuum arm with constant curvature. L = 1m, alpha = 0:pi/10:pi") 31 | hold off 32 | 33 | % Save plot 34 | saveas(gcf, '../Images/CCplots.png') 35 | 36 | %% Code to generate gif 37 | length = 1; % 1m 38 | 39 | h = figure; 40 | filename = '../Images/CCmodel.gif'; 41 | axis tight manual 42 | grid on 43 | 44 | for alpha = 0:pi/10:pi 45 | temp_points = []; 46 | for s = 0:0.002:1 47 | T_1 = homogeneousTransformMatrix(s, alpha, length); 48 | px = T_1(1, 4); 49 | py = T_1(2, 4); 50 | temp_points = [temp_points; [px, py]]; 51 | end 52 | 53 | % Plot the current curve 54 | plot(temp_points(:, 1), temp_points(:, 2), '.'); 55 | xlabel("x [m]") 56 | ylabel("y [m]") 57 | title("Soft continuum arm with constant curvature. L = 1m, alpha = 0:pi/10:pi") 58 | % xmax = 1.2; xmin = -0.2; ymax = 1.2; ymin = -0.2; 59 | % xlim([xmin xmax]) 60 | % ylim([ymin ymax]) 61 | % set(gca, 'xtick', xmin:0.2:xmax) 62 | % set(gca, 'ytick', ymin:0.2:ymax) 63 | axis equal 64 | grid on 65 | drawnow 66 | 67 | % Capture the plot as an image 68 | frame = getframe(h); 69 | im = frame2im(frame); 70 | [imind, cm] = rgb2ind(im, 256); 71 | 72 | % Write to the GIF file 73 | if alpha == pi/10 74 | imwrite(imind, cm, filename, 'gif', 'Loopcount', inf); 75 | else 76 | imwrite(imind, cm, filename, 'gif', 'WriteMode', 'append'); 77 | end 78 | end 79 | 80 | %% Plot tip values using CCSegment 81 | length = 1; % 1m 82 | figure; hold on 83 | 84 | for alpha = 0:pi/10:pi 85 | T_3 = CCSegment(alpha, length); 86 | px = T_3(1, 4); 87 | py = T_3(2, 4); 88 | plot(px, py, '*'); 89 | end 90 | 91 | % Plot parameters 92 | grid on 93 | % xmax = 1.2; xmin = -0.2; ymax = 1.2; ymin = -0.2; 94 | % xlim([xmin xmax]) 95 | % ylim([ymin ymax]) 96 | % set(gca, 'xtick', xmin:0.2:xmax) 97 | % set(gca, 'ytick', ymin:0.2:ymax) 98 | axis equal 99 | xlabel("x [m]") 100 | ylabel("y [m]") 101 | title("Soft continuum arm tip values with CCSegment. L = 1m, alpha = 0:pi/10:pi") 102 | hold off 103 | 104 | % Save plot 105 | saveas(gcf, '../Images/CCSegmentTest.png') 106 | 107 | %% Plot tip values using PCCSection 108 | length = 1; % 1m 109 | num_segments = 4; 110 | figure; hold on 111 | 112 | for alpha = 0:pi/10:pi 113 | T_4 = PCCSection(alpha, length, num_segments); 114 | px = T_4(1, 4); 115 | py = T_4(2, 4); 116 | plot(px, py, '*'); 117 | end 118 | 119 | % Plot parameters 120 | grid on 121 | % xmax = 1.2; xmin = -0.2; ymax = 1.2; ymin = -0.2; 122 | % xlim([xmin xmax]) 123 | % ylim([ymin ymax]) 124 | % set(gca, 'xtick', xmin:0.2:xmax) 125 | % set(gca, 'ytick', ymin:0.2:ymax) 126 | axis equal 127 | xlabel("x [m]") 128 | ylabel("y [m]") 129 | title("Soft continuum arm tip values with PCCSection. L = 1m, alpha = 0:pi/10:pi") 130 | hold off 131 | 132 | % Save plot 133 | saveas(gcf, '../Images/PCCSectionTest.png') -------------------------------------------------------------------------------- /Codes/FKineSMA.m: -------------------------------------------------------------------------------- 1 | % Calculates Direct kinematics for the SMA continuum module given SMA 2 | % length, d which is the attachment distance of the SMA wires from the 3 | % neutral fibre and l_nf which is the neutral fibre length per section. 4 | % Output is the transformation matrix from the base to the tip of the SMA 5 | % continuum module 6 | function T = FKineSMA(sma_length, d, l_nf) 7 | alpha = (l_nf - sma_length)/d; 8 | transform_mat = CCSegment(alpha, l_nf); 9 | 10 | p_x = transform_mat(1, 4); 11 | p_z = transform_mat(3, 4); 12 | rotation_mat = transform_mat(1:3, 1:3); 13 | eulZYX = rotm2eul(rotation_mat); 14 | alpha = eulZYX(2); 15 | 16 | % Create struct array 17 | field1 = 'tip_position'; value1 = [p_x p_z]; 18 | field2 = 'alpha'; value2 = alpha; 19 | field3 = 'transform_mat'; value3 = transform_mat; 20 | T = struct(field1, value1, field2, value2, field3, value3); 21 | end 22 | -------------------------------------------------------------------------------- /Codes/IKineSMA.m: -------------------------------------------------------------------------------- 1 | % Inverse kinematics for constant curvature assumption and assuming 2 | % constant distance between spacers 3 | % TODO have to check failure conditions 4 | function sma_lengths = IKineSMA(alpha, l_nf, d, num_spacers) 5 | if alpha == 0 6 | l_1_prime = l_nf; 7 | l_2_prime = l_nf; 8 | else 9 | l_1_prime = ((l_nf-(alpha*d))*2*num_spacers*sin(alpha/(2*num_spacers)))/alpha; 10 | l_2_prime = ((l_nf+(alpha*d))*2*num_spacers*sin(alpha/(2*num_spacers)))/alpha; 11 | end 12 | sma_lengths = [l_1_prime, l_2_prime]; 13 | end -------------------------------------------------------------------------------- /Codes/PCCSection.m: -------------------------------------------------------------------------------- 1 | function H = PCCSection(section_angle, section_length, num_segments) 2 | segment_angle = section_angle/num_segments; 3 | segment_length = section_length/num_segments; 4 | H = eye(4); 5 | for i = 1:num_segments 6 | T_temp = CCSegment(segment_angle, segment_length); 7 | H = H*T_temp; 8 | end 9 | end -------------------------------------------------------------------------------- /Codes/alpha_l_numerical.sfit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Codes/alpha_l_numerical.sfit -------------------------------------------------------------------------------- /Codes/homogeneousTransformMatrix.m: -------------------------------------------------------------------------------- 1 | % Homogeneous transformation matrix at each point on a constant curvature 2 | % s denotes points on the curvature. s ranges from 0 - 1 3 | % alpha is the desired angle of the tip in radians 4 | 5 | function T = homogeneousTransformMatrix(s, alpha, length) 6 | 7 | theta = s * alpha; 8 | 9 | if alpha == 0 10 | transform_mat = [1, 0, 0, 0; ... 11 | 0, 1, 0, 0; ... 12 | 0, 0, 1, s * length; ... 13 | 0, 0, 0, 1]; 14 | else 15 | transform_mat = [ cos(theta), 0, -sin(theta), length * ((1 - cos(theta))/alpha); ... 16 | 0, 1, 0, 0 ; ... 17 | sin(theta), 0, cos(theta), length * sin(theta)/alpha ; ... 18 | 0, 0, 0, 1 ]; 19 | end 20 | 21 | p_x = transform_mat(1, 4); 22 | p_z = transform_mat(3, 4); 23 | 24 | % Create a struct array 25 | field1 = 'point_coord'; value1 = [p_x p_z]; 26 | field2 = 'alpha'; value2 = theta; 27 | field3 = 'transform_mat'; value3 = transform_mat; 28 | T = struct(field1, value1, field2, value2, field3, value3); 29 | end -------------------------------------------------------------------------------- /Codes/model_plots.m: -------------------------------------------------------------------------------- 1 | clear 2 | clc 3 | %% Parameters 4 | l_nf = 1; % 1m 5 | d = 0.05; 6 | 7 | %% Unguided(circular arc) vs guided(piecewise linear segments) sma wires 8 | beta = deg2rad(180); % target angle 9 | l_1 = l_nf - d*beta; 10 | angle_arr = []; 11 | lin_sma_arr = []; 12 | num_spacers = []; 13 | l_1_arr = []; 14 | percent_err = l_1 - (1*l_1/100); 15 | percent_err_line = []; 16 | point_per_err = l_1 - (0.2*l_1/100); 17 | point_per_line = []; 18 | target_beta = []; 19 | ang_percent_err = rad2deg(beta) + (1*rad2deg(beta)/100); 20 | ang_percent_err_line = []; 21 | ang_point_per_err = rad2deg(beta) + (0.2*rad2deg(beta)/100); 22 | ang_point_per_line = []; 23 | % error_line = []; 24 | % zero_line = []; 25 | 26 | for n = 1:1:30 27 | l_1_prime = (l_1*2*n*sin(beta/(2*n)))/beta; 28 | beta_actual = (l_nf - l_1_prime)/d; 29 | lin_sma_arr = [lin_sma_arr l_1_prime]; 30 | angle_arr = [angle_arr rad2deg(beta_actual)]; 31 | num_spacers = [num_spacers n]; 32 | l_1_arr = [l_1_arr l_1]; 33 | percent_err_line = [percent_err_line percent_err]; 34 | point_per_line = [point_per_line point_per_err]; 35 | target_beta = [target_beta rad2deg(beta)]; 36 | ang_percent_err_line = [ang_percent_err_line ang_percent_err]; 37 | ang_point_per_line = [ang_point_per_line ang_point_per_err]; 38 | % error_line = [error_line (((l_1_prime-l_1)/l_1)*100)]; 39 | % zero_line = [zero_line 0]; 40 | end 41 | 42 | figure(1); hold on 43 | plot(num_spacers, lin_sma_arr, num_spacers, l_1_arr,... 44 | num_spacers, percent_err_line, '--', ... 45 | num_spacers, point_per_line, '--') 46 | grid on 47 | xlabel("Number of spacers (1 indicates only one section)") 48 | ylabel("SMA length l_1(circular) and l_1^' (linear segment) [m]") 49 | title("Relation between l_1^l and l_1(Circular arc) with regards to num of spacers") 50 | lgd = legend('sma line', 'sma arc', '1% error', '0.2% error'); 51 | lgd.Location = 'southeast'; 52 | hold off 53 | saveas(gcf, '../Images/linear_circular_length_diff_180deg.png') 54 | 55 | % figure(2); hold on 56 | % plot(num_spacers, error_line, num_spacers, zero_line,... 57 | % num_spacers, percent_err_line, '--', ... 58 | % num_spacers, point_per_line, '--') 59 | % grid on 60 | % xlabel("Number of spacers (1 indicates only one section)") 61 | % ylabel("Percent error") 62 | % title("Relation between l_1^l and l_1(Circular arc) with regards to num of spacers") 63 | % legend('sma line', 'sma arc', '1% error', '0.2% error') 64 | % hold off 65 | 66 | figure(3); hold on 67 | plot(num_spacers, angle_arr, num_spacers, target_beta, ... 68 | num_spacers, ang_percent_err_line, '--', ... 69 | num_spacers, ang_point_per_line, '--') 70 | grid on 71 | xlabel("Number of spacers (1 indicates only one section)") 72 | ylabel("Angle of section [deg]") 73 | title("Relation between target angle and actual angle with regards to num of spacers") 74 | legend('sma line', 'sma arc', '1% error', '0.2% error') 75 | hold off 76 | saveas(gcf, '../Images/linear_circular_angle_diff_180deg.png') 77 | 78 | %% Workspace plot 79 | l_nf = 1; 80 | d = 0.05; 81 | num_spacers = 100; 82 | points_arr = []; 83 | points_arr_restricted = []; 84 | l_neg360 = IKineSMA(-2*pi, l_nf, d, num_spacers); 85 | l_pos360 = IKineSMA(2*pi, l_nf, d, num_spacers); 86 | l_1_neg360 = l_neg360(1); 87 | l_1_pos360 = l_pos360(1); 88 | for l_1 = l_1_pos360:0.001:l_1_neg360 % Corresponds to +2pi and -2pi 89 | T = FKineSMA(l_1, d, l_nf); 90 | points_arr = [points_arr; [T(1, 4), T(3, 4)]]; 91 | end 92 | for l_1 = (l_nf-(0.02*l_nf)):0.001:(l_nf+(0.02*l_nf)) % Corresponds to 2% strain 93 | T = FKineSMA(l_1, d, l_nf); 94 | points_arr_restricted = [points_arr_restricted; [T(1, 4), T(3, 4)]]; 95 | end 96 | figure(4); hold on 97 | plot(points_arr(:, 1), points_arr(:, 2), 'x') 98 | plot(points_arr_restricted(:, 1), points_arr_restricted(:, 2), '+') 99 | grid on 100 | axis equal 101 | xlabel("x [m]") 102 | ylabel("z [m]") 103 | title("Workspace of continuum arm (Constant curvature)") 104 | lgd = legend('Unrestricted', 'Strain-restricted'); 105 | lgd.Location = 'best'; 106 | hold off 107 | saveas(gcf, '../Images/workspace.png') 108 | 109 | %% Curve fitting to derive equation 110 | 111 | l_nf = 1; 112 | d = 0.05; 113 | n = 10; 114 | 115 | alpha_list = []; 116 | l_1_list = []; 117 | 118 | for alpha = -2*pi:pi/100:2*pi 119 | alpha_list = [alpha_list alpha]; 120 | if alpha == 0 121 | l_1_prime = l_nf; 122 | else 123 | l_1_prime = ((l_nf-(alpha*d))*2*n*sin(alpha/(2*n)))/alpha; 124 | end 125 | l_1_list = [l_1_list l_1_prime]; 126 | end 127 | figure; hold on 128 | plot(l_1_list, alpha_list, '.') 129 | grid on 130 | hold off -------------------------------------------------------------------------------- /Codes/motionSimulation.mlx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Codes/motionSimulation.mlx -------------------------------------------------------------------------------- /Codes/workspace_plot.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Codes/workspace_plot.m -------------------------------------------------------------------------------- /Images/CCSegmentTest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/CCSegmentTest.png -------------------------------------------------------------------------------- /Images/CCmodel.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/CCmodel.gif -------------------------------------------------------------------------------- /Images/CCplots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/CCplots.png -------------------------------------------------------------------------------- /Images/PCCSectionTest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/PCCSectionTest.png -------------------------------------------------------------------------------- /Images/linear_circular_angle_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_angle_diff.png -------------------------------------------------------------------------------- /Images/linear_circular_angle_diff_10deg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_angle_diff_10deg.png -------------------------------------------------------------------------------- /Images/linear_circular_angle_diff_120deg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_angle_diff_120deg.png -------------------------------------------------------------------------------- /Images/linear_circular_angle_diff_150deg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_angle_diff_150deg.png -------------------------------------------------------------------------------- /Images/linear_circular_angle_diff_180deg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_angle_diff_180deg.png -------------------------------------------------------------------------------- /Images/linear_circular_angle_diff_30deg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_angle_diff_30deg.png -------------------------------------------------------------------------------- /Images/linear_circular_angle_diff_50deg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_angle_diff_50deg.png -------------------------------------------------------------------------------- /Images/linear_circular_angle_diff_60deg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_angle_diff_60deg.png -------------------------------------------------------------------------------- /Images/linear_circular_angle_diff_70deg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_angle_diff_70deg.png -------------------------------------------------------------------------------- /Images/linear_circular_length_diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_length_diff.png -------------------------------------------------------------------------------- /Images/linear_circular_length_diff_10deg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_length_diff_10deg.png -------------------------------------------------------------------------------- /Images/linear_circular_length_diff_120deg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_length_diff_120deg.png -------------------------------------------------------------------------------- /Images/linear_circular_length_diff_150deg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_length_diff_150deg.png -------------------------------------------------------------------------------- /Images/linear_circular_length_diff_180deg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_length_diff_180deg.png -------------------------------------------------------------------------------- /Images/linear_circular_length_diff_30deg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_length_diff_30deg.png -------------------------------------------------------------------------------- /Images/linear_circular_length_diff_50deg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_length_diff_50deg.png -------------------------------------------------------------------------------- /Images/linear_circular_length_diff_60deg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_length_diff_60deg.png -------------------------------------------------------------------------------- /Images/linear_circular_length_diff_70deg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/linear_circular_length_diff_70deg.png -------------------------------------------------------------------------------- /Images/workspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Images/workspace.png -------------------------------------------------------------------------------- /Information about Supervisor in Saarbrücken.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Information about Supervisor in Saarbrücken.docx -------------------------------------------------------------------------------- /Slides/Intro_SMA.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Slides/Intro_SMA.pptx -------------------------------------------------------------------------------- /Slides/thesis_statement.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Slides/thesis_statement.pptx -------------------------------------------------------------------------------- /Slides/update1.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Slides/update1.pptx -------------------------------------------------------------------------------- /Slides/update2_kinematics.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Slides/update2_kinematics.pptx -------------------------------------------------------------------------------- /Slides/update3_kinematics.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VigneshV7/SMA_Continuum_model/afdb23aa540cf16df7102c96e915d9c1d69d57a3/Slides/update3_kinematics.pptx --------------------------------------------------------------------------------