From b0ad7defd3ea740a2838b241db9a0057f1d8e75c Mon Sep 17 00:00:00 2001 From: Sravan Balaji Date: Tue, 30 Nov 2021 10:46:06 -0500 Subject: [PATCH] Move Files out of "SimPkg_F21(student_ver)" folder --- Main_Peter.m | 440 +++++++++--------- SimPkg_F21(student_ver)/Main_Peter.m | 220 --------- .../ROB535_ControlProject_part1_Team3.mat | Bin 1206 -> 0 bytes .../ROB535_Control_Project.pdf | Bin 239983 -> 0 bytes SimPkg_F21(student_ver)/TestTrack.mat | Bin 13451 -> 0 bytes SimPkg_F21(student_ver)/forwardIntegrate.m | 116 ----- .../forwardIntegrateControlInput.m | 114 ----- .../generateRandomObstacles.m | 101 ---- SimPkg_F21(student_ver)/getTrajectoryInfo.m | 95 ---- SimPkg_F21(student_ver)/getTrajectoryInfo.p | Bin 1205 -> 0 bytes .../part1_generate_trajectory.m | 221 --------- SimPkg_F21(student_ver)/senseObstacles.m | 27 -- .../xenia_final_project.asv | 204 -------- .../xenia_nonlinearopt.asv | 281 ----------- .../reftrack_info.mat => reftrack_info.mat | Bin .../segments_info.mat => segments_info.mat | Bin ...a_final_project.m => xenia_final_project.m | 0 ...nia_nonlinearopt.m => xenia_nonlinearopt.m | 0 18 files changed, 220 insertions(+), 1599 deletions(-) delete mode 100644 SimPkg_F21(student_ver)/Main_Peter.m delete mode 100644 SimPkg_F21(student_ver)/ROB535_ControlProject_part1_Team3.mat delete mode 100644 SimPkg_F21(student_ver)/ROB535_Control_Project.pdf delete mode 100644 SimPkg_F21(student_ver)/TestTrack.mat delete mode 100644 SimPkg_F21(student_ver)/forwardIntegrate.m delete mode 100644 SimPkg_F21(student_ver)/forwardIntegrateControlInput.m delete mode 100644 SimPkg_F21(student_ver)/generateRandomObstacles.m delete mode 100644 SimPkg_F21(student_ver)/getTrajectoryInfo.m delete mode 100644 SimPkg_F21(student_ver)/getTrajectoryInfo.p delete mode 100644 SimPkg_F21(student_ver)/part1_generate_trajectory.m delete mode 100644 SimPkg_F21(student_ver)/senseObstacles.m delete mode 100644 SimPkg_F21(student_ver)/xenia_final_project.asv delete mode 100644 SimPkg_F21(student_ver)/xenia_nonlinearopt.asv rename SimPkg_F21(student_ver)/reftrack_info.mat => reftrack_info.mat (100%) rename SimPkg_F21(student_ver)/segments_info.mat => segments_info.mat (100%) rename SimPkg_F21(student_ver)/xenia_final_project.m => xenia_final_project.m (100%) rename SimPkg_F21(student_ver)/xenia_nonlinearopt.m => xenia_nonlinearopt.m (100%) diff --git a/Main_Peter.m b/Main_Peter.m index 7b66d3b..ddb63a2 100644 --- a/Main_Peter.m +++ b/Main_Peter.m @@ -1,220 +1,220 @@ -%% ====================================================================== -% ROB 535 Control Project: Peerayos Pongsachai -clear all;clc; close all; -load("TestTrack.mat"); - -% Objectives: -% - Come up with an inequality constraint function that keeps the -% center of mass inside the track limits for all timesteps [hard] -% - Compute gradient of road inequality constraints [medium] -X0= [287;5;-176;0;2;0]; - -% rng(0); -n = 25; -Pose = [randi([900,960],1,n);randi([440,520],1,n)]; - -xhat = 370; yhat = 140; Phat = [xhat;yhat]; -Pinit = [X0(1);X0(3)]; -Pend = [TestTrack.cline(1,end);TestTrack.cline(2,end)]; -[m,nPts] = size(TestTrack.cline); - -% Plot Track -figure;hold; -plot(TestTrack.bl(1,:),TestTrack.bl(2,:), 'k') -plot(TestTrack.cline(1,:),TestTrack.cline(2,:), '--k') -plot(TestTrack.br(1,:),TestTrack.br(2,:), 'k') -plot([TestTrack.bl(1,end),TestTrack.br(1,end)], ... - [TestTrack.bl(2,end),TestTrack.br(2,end)], 'r') -hold; - - -d = vecnorm(TestTrack.cline - Pinit); -eps = 1; -Idx = find(d <= eps); - -while(isempty(Idx)) - eps = eps + 1; - Idx = find(d <= eps); -end - -idx = Idx(1); -prev_idx = max(1-1, 1); -next_idx = idx+1; - -bl_vec = [TestTrack.bl(1,[prev_idx,next_idx]);TestTrack.bl(2,[prev_idx,next_idx])]; -br_vec = [TestTrack.br(1,[prev_idx,next_idx]);TestTrack.br(2,[prev_idx,next_idx])]; - -cp = ontrack(Pinit, bl_vec(:,1), bl_vec(:,2), br_vec(:,1), br_vec(:,2)); - -% fprintf('Pose (%.2f, %.2f) - nearest point (%.2f, %.2f): %i \n', ... -% Pose(1,i), Pose(2,i),TestTrack.cline(1,idx),TestTrack.cline(2,idx),cp) - -hold; -plot(Pinit(1),Pinit(2),'og') -plot(Pend(1),Pend(2),'or') -plot(TestTrack.cline(1,idx),TestTrack.cline(2,idx), 'o') -plot(bl_vec(1,:),bl_vec(2,:), 'ob') -plot(br_vec(1,:),br_vec(2,:), 'ob') -hold; - - -[LB, UB] = bounds(TestTrack, 10); -size(LB) - -[g,h,dg,dh]=nonlcon(z, TestTrack); - -function cp = ontrack(pose, bl_prev, bl_next, br_prev, br_next) - - l_vec = bl_next - bl_prev; % l = l_i+1 - l_i-1 - r_vec = br_next - br_prev; % r = r_i+1 - r_i-1 - - pl = pose - bl_prev; % p_l = p - l_i-1 - pr = pose - br_prev; % p_r = p - r_i-1 - - c1 = l_vec(1)*pl(2) - l_vec(2)*pl(1); - c2 = r_vec(1)*pr(2) - r_vec(2)*pr(1); - - cp = c1*c2; -end - -function dg = diff_g(pose, bl_prev, bl_next, br_prev, br_next) -% syms Lx Ly Rx Ry ly lx rx ry X Y; -% g = (Lx*(Y - ly)-Ly*(X-lx))*(Rx*(Y - ry)-Ry*(X-rx)); -% diff(g,X); -% diff(g,Y); - - dg = [0,0]; - l_vec = bl_next - bl_prev; % l = l_i+1 - l_i-1 - r_vec = br_next - br_prev; % r = r_i+1 - r_i-1 - - pl = pose - bl_prev; % p_l = p - l_i-1 - pr = pose - br_prev; % p_r = p - r_i-1 - - dg(1) = r_vec(2)*(l_vec(2)*pl(1) - l_vec(1)*pl(2)) + ... - l_vec(2)*(r_vec(2)*pr(1) - r_vec(1)*pr(2)); - dg(2) = - r_vec(1)*(l_vec(2)*pl(1) - l_vec(1)*pl(2)) - ... - l_vec(1)*(r_vec(2)*pr(1) - r_vec(1)*pr(2)); -end - -function [lb, ub] = bounds(TestTrack, StepsPerPoint) - - [m,nPts] = size(TestTrack.cline); -% numState = 6; -% numInput = 2; - nsteps = StepsPerPoint * nPts; - - lb_u = [-0.5;-5000]; - ub_u = [0.5;5000]; - - bound_X = [TestTrack.bl(1,1), TestTrack.bl(1,2), ... - TestTrack.br(1,1), TestTrack.br(1,2)]; - bound_Y = [TestTrack.bl(2,1), TestTrack.bl(2,2), ... - TestTrack.br(2,1), TestTrack.br(2,2)]; - phi_init = TestTrack.theta(1); - - lb = [min(bound_X); -Inf; min(bound_Y); -Inf; phi_init-(pi/2); -Inf]; - ub = [max(bound_X); Inf; max(bound_Y); Inf; phi_init+(pi/2); Inf]; - - - for i=1:nPts - prev_idx = max(i-1, 1); - next_idx = min(i+1, 246); - - bound_X = [TestTrack.bl(1,prev_idx), TestTrack.bl(1,next_idx), ... - TestTrack.br(1,prev_idx), TestTrack.br(1,next_idx)]; - bound_Y = [TestTrack.bl(2,prev_idx), TestTrack.bl(2,next_idx), ... - TestTrack.br(2,prev_idx), TestTrack.br(2,next_idx)]; - phi_init = TestTrack.theta(i); - - lb_x = [min(bound_X); -Inf; min(bound_Y); -Inf; phi_init-(pi/2); -Inf]; - ub_x = [max(bound_X); Inf; max(bound_Y); Inf; phi_init+(pi/2); Inf]; - - for num = 1:StepsPerPoint - lb=[lb;lb_x]; - ub=[ub;ub_x]; - end - end - - for i=1:nsteps - ub=[ub;ub_u]; - lb=[lb;lb_u]; - end -end - -function [g,h,dg,dh]=nonlcon(z, TestTrack) - if size(z,2)>size(z,1) - z = z' ; - end - numState = 6; - numInput = 2; - numXandU = 8; - nsteps = (size(z,1)+2)/numXandU; - - dt = 0.01; - - zx=z(1:nsteps*numState); - zu=z(nsteps*numState + 1:end); - - g = zeros(nsteps,1) ; - dg = zeros(nsteps,numXandU*nsteps-2) ; - - h = zeros(numState*nsteps,1) ; - dh = zeros(numState*nsteps,numXandU*nsteps-2); - - for i=1:nsteps - % At given position (Xi, Yi) at Zi, find nearest centerline - % Use the index of nearest centerline to calculate g function - -% pos = [Xi Yi]; - car_pos = [z(numState*i-numState+1); z(numState*i-numState+3)]; - d = vecnorm(TestTrack.cline - car_pos); - eps = 1; - Idx = find(d <= eps); - while(isempty(Idx)) - eps = eps + 1; - Idx = find(d <= eps); - end - - idx = Idx(1); - prev_idx = max(idx-1, 1); - next_idx = min(idx+1, size(TestTrack.cline, 2)); - - bl_vec = [TestTrack.bl(1,[prev_idx,next_idx]);TestTrack.bl(2,[prev_idx,next_idx])]; - br_vec = [TestTrack.br(1,[prev_idx,next_idx]);TestTrack.br(2,[prev_idx,next_idx])]; - - g = ontrack(Pinit, bl_vec(:,1), bl_vec(:,2), br_vec(:,1), br_vec(:,2)); - - dgi_dzj = diff_g(pose, bl_prev, bl_next, br_prev, br_next); - dg(i,numState*i-numState+1) = dgi_dzj(1); - dg(i,numState*i-numState+2) = dgi_dzj(2); - -% if i==1 -% h(1:3) = z(1:3,:) ; -% dh(1:3,1:3)=eye(3); -% else -% h(3*i-2:3*i) = zx(3*i-2:3*i)-zx(3*i-5:3*i-3)-... -% dt*odefun(zx(3*i-5:3*i-3),zu(2*i-3:2*i-2)) ; -% dh(3*i-2:3*i,3*i-5:3*i) = [-eye(3)-dt*statepart(zx(3*i-5:3*i-3),zu(2*i-3:2*i-2)),eye(3)] ; -% dh(3*i-2:3*i,3*nsteps+2*i-3:3*nsteps+2*i-2) = -dt*inputpart(zx(3*i-5:3*i-3),zu(2*i-3:2*i-2)) ; -% end - end -end - - - - - - - - - - - - - - - - - - - +%% ====================================================================== +% ROB 535 Control Project: Peerayos Pongsachai +% clear all;clc; close all; +load("TestTrack.mat"); + +% Objectives: +% - Come up with an inequality constraint function that keeps the +% center of mass inside the track limits for all timesteps [hard] +% - Compute gradient of road inequality constraints [medium] +X0= [287;5;-176;0;2;0]; + +% rng(0); +n = 25; +Pose = [randi([900,960],1,n);randi([440,520],1,n)]; + +xhat = 370; yhat = 140; Phat = [xhat;yhat]; +Pinit = [X0(1);X0(3)]; +Pend = [TestTrack.cline(1,end);TestTrack.cline(2,end)]; +[m,nPts] = size(TestTrack.cline); + +% Plot Track +figure;hold; +plot(TestTrack.bl(1,:),TestTrack.bl(2,:), 'k') +plot(TestTrack.cline(1,:),TestTrack.cline(2,:), '--k') +plot(TestTrack.br(1,:),TestTrack.br(2,:), 'k') +plot([TestTrack.bl(1,end),TestTrack.br(1,end)], ... + [TestTrack.bl(2,end),TestTrack.br(2,end)], 'r') +hold; + + +d = vecnorm(TestTrack.cline - Pinit); +eps = 1; +Idx = find(d <= eps); + +while(isempty(Idx)) + eps = eps + 1; + Idx = find(d <= eps); +end + +idx = Idx(1); +prev_idx = max(1-1, 1); +next_idx = idx+1; + +bl_vec = [TestTrack.bl(1,[prev_idx,next_idx]);TestTrack.bl(2,[prev_idx,next_idx])]; +br_vec = [TestTrack.br(1,[prev_idx,next_idx]);TestTrack.br(2,[prev_idx,next_idx])]; + +cp = ontrack(Pinit, bl_vec(:,1), bl_vec(:,2), br_vec(:,1), br_vec(:,2)); + +% fprintf('Pose (%.2f, %.2f) - nearest point (%.2f, %.2f): %i \n', ... +% Pose(1,i), Pose(2,i),TestTrack.cline(1,idx),TestTrack.cline(2,idx),cp) + +hold; +plot(Pinit(1),Pinit(2),'og') +plot(Pend(1),Pend(2),'or') +plot(TestTrack.cline(1,idx),TestTrack.cline(2,idx), 'o') +plot(bl_vec(1,:),bl_vec(2,:), 'ob') +plot(br_vec(1,:),br_vec(2,:), 'ob') +hold; + + +[LB, UB] = bounds(TestTrack, 10); +size(LB) + +[g,h,dg,dh]=nonlcon(z, TestTrack); + +function cp = ontrack(pose, bl_prev, bl_next, br_prev, br_next) + + l_vec = bl_next - bl_prev; % l = l_i+1 - l_i-1 + r_vec = br_next - br_prev; % r = r_i+1 - r_i-1 + + pl = pose - bl_prev; % p_l = p - l_i-1 + pr = pose - br_prev; % p_r = p - r_i-1 + + c1 = l_vec(1)*pl(2) - l_vec(2)*pl(1); + c2 = r_vec(1)*pr(2) - r_vec(2)*pr(1); + + cp = c1*c2; +end + +function dg = diff_g(pose, bl_prev, bl_next, br_prev, br_next) +% syms Lx Ly Rx Ry ly lx rx ry X Y; +% g = (Lx*(Y - ly)-Ly*(X-lx))*(Rx*(Y - ry)-Ry*(X-rx)); +% diff(g,X); +% diff(g,Y); + + dg = [0,0]; + l_vec = bl_next - bl_prev; % l = l_i+1 - l_i-1 + r_vec = br_next - br_prev; % r = r_i+1 - r_i-1 + + pl = pose - bl_prev; % p_l = p - l_i-1 + pr = pose - br_prev; % p_r = p - r_i-1 + + dg(1) = r_vec(2)*(l_vec(2)*pl(1) - l_vec(1)*pl(2)) + ... + l_vec(2)*(r_vec(2)*pr(1) - r_vec(1)*pr(2)); + dg(2) = - r_vec(1)*(l_vec(2)*pl(1) - l_vec(1)*pl(2)) - ... + l_vec(1)*(r_vec(2)*pr(1) - r_vec(1)*pr(2)); +end + +function [lb, ub] = bounds(TestTrack, StepsPerPoint) + + [m,nPts] = size(TestTrack.cline); +% numState = 6; +% numInput = 2; + nsteps = StepsPerPoint * nPts; + + lb_u = [-0.5;-5000]; + ub_u = [0.5;5000]; + + bound_X = [TestTrack.bl(1,1), TestTrack.bl(1,2), ... + TestTrack.br(1,1), TestTrack.br(1,2)]; + bound_Y = [TestTrack.bl(2,1), TestTrack.bl(2,2), ... + TestTrack.br(2,1), TestTrack.br(2,2)]; + phi_init = TestTrack.theta(1); + + lb = [min(bound_X); -Inf; min(bound_Y); -Inf; phi_init-(pi/2); -Inf]; + ub = [max(bound_X); Inf; max(bound_Y); Inf; phi_init+(pi/2); Inf]; + + + for i=1:nPts + prev_idx = max(i-1, 1); + next_idx = min(i+1, 246); + + bound_X = [TestTrack.bl(1,prev_idx), TestTrack.bl(1,next_idx), ... + TestTrack.br(1,prev_idx), TestTrack.br(1,next_idx)]; + bound_Y = [TestTrack.bl(2,prev_idx), TestTrack.bl(2,next_idx), ... + TestTrack.br(2,prev_idx), TestTrack.br(2,next_idx)]; + phi_init = TestTrack.theta(i); + + lb_x = [min(bound_X); -Inf; min(bound_Y); -Inf; phi_init-(pi/2); -Inf]; + ub_x = [max(bound_X); Inf; max(bound_Y); Inf; phi_init+(pi/2); Inf]; + + for num = 1:StepsPerPoint + lb=[lb;lb_x]; + ub=[ub;ub_x]; + end + end + + for i=1:nsteps + ub=[ub;ub_u]; + lb=[lb;lb_u]; + end +end + +function [g,h,dg,dh]=nonlcon(z, TestTrack) + if size(z,2)>size(z,1) + z = z' ; + end + numState = 6; + numInput = 2; + numXandU = 8; + nsteps = (size(z,1)+2)/numXandU; + + dt = 0.01; + + zx=z(1:nsteps*numState); + zu=z(nsteps*numState + 1:end); + + g = zeros(nsteps,1) ; + dg = zeros(nsteps,numXandU*nsteps-2) ; + + h = zeros(numState*nsteps,1) ; + dh = zeros(numState*nsteps,numXandU*nsteps-2); + + for i=1:nsteps + % At given position (Xi, Yi) at Zi, find nearest centerline + % Use the index of nearest centerline to calculate g function + +% pos = [Xi Yi]; + car_pos = [z(numState*i-numState+1); z(numState*i-numState+3)]; + d = vecnorm(TestTrack.cline - car_pos); + eps = 1; + Idx = find(d <= eps); + while(isempty(Idx)) + eps = eps + 1; + Idx = find(d <= eps); + end + + idx = Idx(1); + prev_idx = max(idx-1, 1); + next_idx = min(idx+1, size(TestTrack.cline, 2)); + + bl_vec = [TestTrack.bl(1,[prev_idx,next_idx]);TestTrack.bl(2,[prev_idx,next_idx])]; + br_vec = [TestTrack.br(1,[prev_idx,next_idx]);TestTrack.br(2,[prev_idx,next_idx])]; + + g = ontrack(Pinit, bl_vec(:,1), bl_vec(:,2), br_vec(:,1), br_vec(:,2)); + + dgi_dzj = diff_g(pose, bl_prev, bl_next, br_prev, br_next); + dg(i,numState*i-numState+1) = dgi_dzj(1); + dg(i,numState*i-numState+2) = dgi_dzj(2); + +% if i==1 +% h(1:3) = z(1:3,:) ; +% dh(1:3,1:3)=eye(3); +% else +% h(3*i-2:3*i) = zx(3*i-2:3*i)-zx(3*i-5:3*i-3)-... +% dt*odefun(zx(3*i-5:3*i-3),zu(2*i-3:2*i-2)) ; +% dh(3*i-2:3*i,3*i-5:3*i) = [-eye(3)-dt*statepart(zx(3*i-5:3*i-3),zu(2*i-3:2*i-2)),eye(3)] ; +% dh(3*i-2:3*i,3*nsteps+2*i-3:3*nsteps+2*i-2) = -dt*inputpart(zx(3*i-5:3*i-3),zu(2*i-3:2*i-2)) ; +% end + end +end + + + + + + + + + + + + + + + + + + + diff --git a/SimPkg_F21(student_ver)/Main_Peter.m b/SimPkg_F21(student_ver)/Main_Peter.m deleted file mode 100644 index ddb63a2..0000000 --- a/SimPkg_F21(student_ver)/Main_Peter.m +++ /dev/null @@ -1,220 +0,0 @@ -%% ====================================================================== -% ROB 535 Control Project: Peerayos Pongsachai -% clear all;clc; close all; -load("TestTrack.mat"); - -% Objectives: -% - Come up with an inequality constraint function that keeps the -% center of mass inside the track limits for all timesteps [hard] -% - Compute gradient of road inequality constraints [medium] -X0= [287;5;-176;0;2;0]; - -% rng(0); -n = 25; -Pose = [randi([900,960],1,n);randi([440,520],1,n)]; - -xhat = 370; yhat = 140; Phat = [xhat;yhat]; -Pinit = [X0(1);X0(3)]; -Pend = [TestTrack.cline(1,end);TestTrack.cline(2,end)]; -[m,nPts] = size(TestTrack.cline); - -% Plot Track -figure;hold; -plot(TestTrack.bl(1,:),TestTrack.bl(2,:), 'k') -plot(TestTrack.cline(1,:),TestTrack.cline(2,:), '--k') -plot(TestTrack.br(1,:),TestTrack.br(2,:), 'k') -plot([TestTrack.bl(1,end),TestTrack.br(1,end)], ... - [TestTrack.bl(2,end),TestTrack.br(2,end)], 'r') -hold; - - -d = vecnorm(TestTrack.cline - Pinit); -eps = 1; -Idx = find(d <= eps); - -while(isempty(Idx)) - eps = eps + 1; - Idx = find(d <= eps); -end - -idx = Idx(1); -prev_idx = max(1-1, 1); -next_idx = idx+1; - -bl_vec = [TestTrack.bl(1,[prev_idx,next_idx]);TestTrack.bl(2,[prev_idx,next_idx])]; -br_vec = [TestTrack.br(1,[prev_idx,next_idx]);TestTrack.br(2,[prev_idx,next_idx])]; - -cp = ontrack(Pinit, bl_vec(:,1), bl_vec(:,2), br_vec(:,1), br_vec(:,2)); - -% fprintf('Pose (%.2f, %.2f) - nearest point (%.2f, %.2f): %i \n', ... -% Pose(1,i), Pose(2,i),TestTrack.cline(1,idx),TestTrack.cline(2,idx),cp) - -hold; -plot(Pinit(1),Pinit(2),'og') -plot(Pend(1),Pend(2),'or') -plot(TestTrack.cline(1,idx),TestTrack.cline(2,idx), 'o') -plot(bl_vec(1,:),bl_vec(2,:), 'ob') -plot(br_vec(1,:),br_vec(2,:), 'ob') -hold; - - -[LB, UB] = bounds(TestTrack, 10); -size(LB) - -[g,h,dg,dh]=nonlcon(z, TestTrack); - -function cp = ontrack(pose, bl_prev, bl_next, br_prev, br_next) - - l_vec = bl_next - bl_prev; % l = l_i+1 - l_i-1 - r_vec = br_next - br_prev; % r = r_i+1 - r_i-1 - - pl = pose - bl_prev; % p_l = p - l_i-1 - pr = pose - br_prev; % p_r = p - r_i-1 - - c1 = l_vec(1)*pl(2) - l_vec(2)*pl(1); - c2 = r_vec(1)*pr(2) - r_vec(2)*pr(1); - - cp = c1*c2; -end - -function dg = diff_g(pose, bl_prev, bl_next, br_prev, br_next) -% syms Lx Ly Rx Ry ly lx rx ry X Y; -% g = (Lx*(Y - ly)-Ly*(X-lx))*(Rx*(Y - ry)-Ry*(X-rx)); -% diff(g,X); -% diff(g,Y); - - dg = [0,0]; - l_vec = bl_next - bl_prev; % l = l_i+1 - l_i-1 - r_vec = br_next - br_prev; % r = r_i+1 - r_i-1 - - pl = pose - bl_prev; % p_l = p - l_i-1 - pr = pose - br_prev; % p_r = p - r_i-1 - - dg(1) = r_vec(2)*(l_vec(2)*pl(1) - l_vec(1)*pl(2)) + ... - l_vec(2)*(r_vec(2)*pr(1) - r_vec(1)*pr(2)); - dg(2) = - r_vec(1)*(l_vec(2)*pl(1) - l_vec(1)*pl(2)) - ... - l_vec(1)*(r_vec(2)*pr(1) - r_vec(1)*pr(2)); -end - -function [lb, ub] = bounds(TestTrack, StepsPerPoint) - - [m,nPts] = size(TestTrack.cline); -% numState = 6; -% numInput = 2; - nsteps = StepsPerPoint * nPts; - - lb_u = [-0.5;-5000]; - ub_u = [0.5;5000]; - - bound_X = [TestTrack.bl(1,1), TestTrack.bl(1,2), ... - TestTrack.br(1,1), TestTrack.br(1,2)]; - bound_Y = [TestTrack.bl(2,1), TestTrack.bl(2,2), ... - TestTrack.br(2,1), TestTrack.br(2,2)]; - phi_init = TestTrack.theta(1); - - lb = [min(bound_X); -Inf; min(bound_Y); -Inf; phi_init-(pi/2); -Inf]; - ub = [max(bound_X); Inf; max(bound_Y); Inf; phi_init+(pi/2); Inf]; - - - for i=1:nPts - prev_idx = max(i-1, 1); - next_idx = min(i+1, 246); - - bound_X = [TestTrack.bl(1,prev_idx), TestTrack.bl(1,next_idx), ... - TestTrack.br(1,prev_idx), TestTrack.br(1,next_idx)]; - bound_Y = [TestTrack.bl(2,prev_idx), TestTrack.bl(2,next_idx), ... - TestTrack.br(2,prev_idx), TestTrack.br(2,next_idx)]; - phi_init = TestTrack.theta(i); - - lb_x = [min(bound_X); -Inf; min(bound_Y); -Inf; phi_init-(pi/2); -Inf]; - ub_x = [max(bound_X); Inf; max(bound_Y); Inf; phi_init+(pi/2); Inf]; - - for num = 1:StepsPerPoint - lb=[lb;lb_x]; - ub=[ub;ub_x]; - end - end - - for i=1:nsteps - ub=[ub;ub_u]; - lb=[lb;lb_u]; - end -end - -function [g,h,dg,dh]=nonlcon(z, TestTrack) - if size(z,2)>size(z,1) - z = z' ; - end - numState = 6; - numInput = 2; - numXandU = 8; - nsteps = (size(z,1)+2)/numXandU; - - dt = 0.01; - - zx=z(1:nsteps*numState); - zu=z(nsteps*numState + 1:end); - - g = zeros(nsteps,1) ; - dg = zeros(nsteps,numXandU*nsteps-2) ; - - h = zeros(numState*nsteps,1) ; - dh = zeros(numState*nsteps,numXandU*nsteps-2); - - for i=1:nsteps - % At given position (Xi, Yi) at Zi, find nearest centerline - % Use the index of nearest centerline to calculate g function - -% pos = [Xi Yi]; - car_pos = [z(numState*i-numState+1); z(numState*i-numState+3)]; - d = vecnorm(TestTrack.cline - car_pos); - eps = 1; - Idx = find(d <= eps); - while(isempty(Idx)) - eps = eps + 1; - Idx = find(d <= eps); - end - - idx = Idx(1); - prev_idx = max(idx-1, 1); - next_idx = min(idx+1, size(TestTrack.cline, 2)); - - bl_vec = [TestTrack.bl(1,[prev_idx,next_idx]);TestTrack.bl(2,[prev_idx,next_idx])]; - br_vec = [TestTrack.br(1,[prev_idx,next_idx]);TestTrack.br(2,[prev_idx,next_idx])]; - - g = ontrack(Pinit, bl_vec(:,1), bl_vec(:,2), br_vec(:,1), br_vec(:,2)); - - dgi_dzj = diff_g(pose, bl_prev, bl_next, br_prev, br_next); - dg(i,numState*i-numState+1) = dgi_dzj(1); - dg(i,numState*i-numState+2) = dgi_dzj(2); - -% if i==1 -% h(1:3) = z(1:3,:) ; -% dh(1:3,1:3)=eye(3); -% else -% h(3*i-2:3*i) = zx(3*i-2:3*i)-zx(3*i-5:3*i-3)-... -% dt*odefun(zx(3*i-5:3*i-3),zu(2*i-3:2*i-2)) ; -% dh(3*i-2:3*i,3*i-5:3*i) = [-eye(3)-dt*statepart(zx(3*i-5:3*i-3),zu(2*i-3:2*i-2)),eye(3)] ; -% dh(3*i-2:3*i,3*nsteps+2*i-3:3*nsteps+2*i-2) = -dt*inputpart(zx(3*i-5:3*i-3),zu(2*i-3:2*i-2)) ; -% end - end -end - - - - - - - - - - - - - - - - - - - diff --git a/SimPkg_F21(student_ver)/ROB535_ControlProject_part1_Team3.mat b/SimPkg_F21(student_ver)/ROB535_ControlProject_part1_Team3.mat deleted file mode 100644 index ca3bb36a7d672ca2942e8dec8dc3f5a6eb57a329..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1206 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

BxITT5Y8AZ!p=MVnVZ#Z4X`K_WNEo~ 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

sqt*fB&%BrZ!#<>5C4&6{#~^E%(-CYe$Zyxs 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 diff --git a/SimPkg_F21(student_ver)/TestTrack.mat b/SimPkg_F21(student_ver)/TestTrack.mat deleted file mode 100644 index 7c4ba0f35e6bbefec1391f4ec9e484b44a114e34..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13451 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 -% Obstacles are randomly generated along the test track. Notice that the -% vehicle can only sense (observe) the obstacles within 150m, therefore -% the control input generation function is called repeatedly. In this -% script, we assume the control input generation function is called every -% 'dt' second (see line 32). -% -% OUTPUTS: -% Y an N-by-6 vector where each column is the trajectory of the -% state of the vehicle -% -% U an N-by-2 vector of inputs, where the first column is the -% steering input in radians, and the second column is the -% longitudinal force in Newtons -% -% t_total a scalar that records the total computational time -% -% t_update a M-by-1 vector of time that records the time consumption -% when the control input generation function is called -% -% Written by: Jinsun Liu -% Created: 31 Oct 2021 - - - load('TestTrack.mat') % load test track - - dt = 0.5; - TOTAL_TIME = 20*60; % second - - % initialization - t_total = 0; - t_update = zeros(TOTAL_TIME/dt+1,1); - Y = zeros(TOTAL_TIME/0.01+1,6); - U = zeros(TOTAL_TIME/0.01,2); - Y(1,:) = [287,5,-176,0,2,0]; - - % generate obstacles along the track - Xobs = generateRandomObstacles(9 + randi(16),TestTrack); - - iteration = 1; % a counter that counts how many times the control input - % generation function is called. - - TIMER = tic; % start the timer - - % you only have TOTAL_TIME seconds to sense the obstacles, update - % control inputs, and simulate forward vehicle dynamcis. - while t_total < TOTAL_TIME - curr_pos = Y( (iteration-1)*dt/0.01+1 , [1,3] ); % record current vehicle position - Xobs_seen = senseObstacles(curr_pos, Xobs); % sense the obstacles within 150m - curr_state = Y( (iteration-1)*dt/0.01+1 , : ); % record current vehicle states - - - - % compute control inputs, and record the time consumption - t_temp = toc(TIMER); - %%%%%%%%%%%%%%%% THIS IS WHERE YOUR FUNCTION IS CALLED (replace in your team number). %%%%%%%%%%%%%%%%%%%%%%%%%%% - [Utemp, FLAG_terminate] = ROB535_ControlProject_part2_Team(TestTrack,Xobs_seen,curr_state); %% - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% FLAG_terminate = randi(2)-1 % GSIs: This line is just for us to debug. Feel free to play with it if you want -% Utemp = rand(dt/0.01+1 + FLAG_terminate* (randi(10)-5),2); % GSIs: This line is just for us to debug. Feel free to play with it if you want - t_update(iteration) = toc(TIMER)-t_temp; - - - - % Utemp must contain control inputs for at least dt second, - % otherwise stop the whole computation. - if size(Utemp,1)

F_max - - F_x=F_max/F_total*F_x; - - F_yr=F_max/F_total*F_yr; -end - -%vehicle dynamics -dzdt= [x(2)*cos(x(5))-x(4)*sin(x(5));... - (-f*m*g+Nw*F_x-F_yf*sin(delta_f))/m+x(4)*x(6);... - x(2)*sin(x(5))+x(4)*cos(x(5));... - (F_yf*cos(delta_f)+F_yr)/m-x(2)*x(6);... - x(6);... - (F_yf*a*cos(delta_f)-F_yr*b)/Iz]; -end - diff --git a/SimPkg_F21(student_ver)/generateRandomObstacles.m b/SimPkg_F21(student_ver)/generateRandomObstacles.m deleted file mode 100644 index cd41ae5..0000000 --- a/SimPkg_F21(student_ver)/generateRandomObstacles.m +++ /dev/null @@ -1,101 +0,0 @@ -function Xobs = generateRandomObstacles(Nobs,TestTrack) -% Xobs = generateRandomObstacles(Nobs) -% -% Given a number of obstacles Nobs and a track, place obstacles at random -% orientations with one corner of each obstacle pinned to the center line -% of the track -% -% INPUTS: -% Nobs an integer defining the number of obstacles to output -% -% TestTrack a TestTrack object for which TestTrack.cline is the -% centerline -% -% OUTPUTS: -% Xobs a 1-by-Nobs cell array, where each cell contains a single -% rectangular obstacle defined as a 4-by-2 matrix where the -% first column is the x coordinates and the second column is -% the y coordinates -% -% Written by: Shreyas Kousik -% Created: 12 Nov 2017 -% Modified: 13 Nov 2017 - - if nargin < 2 - loaded_file = load('TestTrack.mat') ; - TestTrack = loaded_file.TestTrack ; - end - - if Nobs > 100 - warning(['Number of obstacles is greater than 100! This is likely to ',... - 'make the resulting course infeasible.']) - end - - % get the center line and boundaries, but exclude the parts of the - % track that are close to the beginning and end - c = TestTrack.cline(:,4:end-4) ; - h = TestTrack.theta(:,4:end-4) ; - - % get the cumulative and total distance along the centerline - dists_along_cline = cumsum([0, sqrt(diff(c(1,:)).^2 + diff(c(2,:)).^2)]) ; - total_dist_along_cline = dists_along_cline(end) ; - - % create a vector of random distances between obstacles - min_dist_btwn_obs = 10 ; % meters - max_dist_btwn_obs = total_dist_along_cline / Nobs ; % also meters - dists_btwn_obs = (max_dist_btwn_obs-min_dist_btwn_obs).*rand(1,Nobs) + min_dist_btwn_obs ; - obs_start_dists = cumsum(dists_btwn_obs) ; - - % scale up the distances between the obstacles to be along the whole length - % of the track (this means the min and max distanes between obstacles will - % increase, but this is a hack anyways, so hah) - end_pct = 0.1*rand(1) + 0.85 ; - obs_start_dists = obs_start_dists.*(end_pct*total_dist_along_cline./obs_start_dists(end)) ; - - % NOTE: The lines above are meant to encourage the track to be - % feasible, but there is never a 100% guarantee off feasibility - - % get the start point and orientation of each obstacle - obs_start_x = interp1(dists_along_cline,c(1,:),obs_start_dists) ; - obs_start_y = interp1(dists_along_cline,c(2,:),obs_start_dists) ; - obs_heading = interp1(dists_along_cline,h,obs_start_dists) ; - - % generate a random size and random side of the road for each obstacle; - % the parameters below work well for the COTA track segment that we are - % using in ROB 599 - obs_min_length = 1 ; - obs_max_length = 4 ; - obs_min_width = 3 ; - obs_max_width = 7 ; - obs_lengths = (obs_max_length - obs_min_length).*rand(1,Nobs) + obs_min_length ; - obs_widths = (obs_max_width - obs_min_width).*rand(1,Nobs) + obs_min_width ; - obs_sides = round(rand(1,Nobs)) ; % 0 is right, 1 is left - - % from each start point, create a CCW contour defining a box that is - % pinned to the centerline at one corner - Xobs = cell(1,Nobs) ; - for idx = 1:Nobs - % create box - lidx = obs_lengths(idx) ; - widx = obs_widths(idx) ; - obs_box = [0, 0, lidx, lidx ; - 0, -widx, -widx, 0] ; - - % if the box is on left side of track, shift it by +widx in its - % local y-direction - obs_box = obs_box + obs_sides(idx).*[zeros(1,4) ; widx.*ones(1,4)] ; - - % rotate box to track orientation - hidx = obs_heading(idx) ; - Ridx = [cos(hidx) -sin(hidx) ; sin(hidx) cos(hidx)] ; - obs_box = Ridx*obs_box ; - - % shift box to start point - xidx = obs_start_x(idx) ; - yidx = obs_start_y(idx) ; - obs_box = obs_box + repmat([xidx;yidx],1,4) ; - - % fill in Xobs - Xobs{idx} = obs_box' ; - end -end \ No newline at end of file diff --git a/SimPkg_F21(student_ver)/getTrajectoryInfo.m b/SimPkg_F21(student_ver)/getTrajectoryInfo.m deleted file mode 100644 index f81157e..0000000 --- a/SimPkg_F21(student_ver)/getTrajectoryInfo.m +++ /dev/null @@ -1,95 +0,0 @@ -function info = getTrajectoryInfo(Y,U,Xobs,t_update,TestTrack) -% info = getTrajectoryInfo(Y,U,Xobs) -% -% Given a trajectory, input, and a cell array of obstacles, return -% information about whether or not the trajectory left the track or crashed -% into any obstacles, and if the input limits were exceeded. -% -% NOTE: the trajectory is only for the vehicle's center of mass, so we -% are not checking if the "corners" of the vehicle leave the track or hit -% any obstacles. -% -% INPUTS: -% Y an N-by-2 trajectory in the x and y coordinates of the -% vehicle's states, where the first column is x and the -% second column is y OR an N-by-6 trajectory in the full -% state, where the first column is x and the third column is -% y -% -% U an N-by-2 vector of inputs, where the first column is the -% steering angle and the second column is the rear wheel -% driving force -% -% Xobs a 1-by-Nobs cell array where each cell contains a 4-by-2 -% obstacle definition, as would be generated by the -% generateRandomObstacles function (this is an optional -% argument, so leave it out if your trajectory doesn't avoid -% any obstacles) -% -% TestTrack a TestTrack object for which TestTrack.cline is the -% centerline (this is an optional argument; the function will -% by default try to load the provided TestTrack.mat file) -% -% t_update a M-by-1 vector of time that records the time consumption -% when the control input generation function is called -% -% OUTPUTS: -% info a struct containing the following catergories -% -% info.Y : The trajectory given as an input argument to the -% function. -% -% info.U : The inputs given as an input argument to the -% function. -% -% info.t_finished : Time in seconds when the finish line is -% crossed. An empty vector is returned if finish line is not -% crossed. -% -% info.t_end : Time in seconds at end of trajectory. -% -% info.left_track_position : 2-by-1 vector with x and y -% coordinates of location where vehicle first leaves the -% track. An empty vector is returned if vehicle never leaves -% the track. -% -% info.left_track_time : Time in seconds when vehicle first -% leaves the track. An empty vector is returned if vehicle -% never leaves the track. -% -% info.left_percent_of_track_completed : Percentage of the -% track completed before vehicle first leaves the track. An -% empty vector is returned if vehicle never leaves the track. -% -% info.crash_position : 2-by-1 vector with x and y -% coordinates of location where vehicle first hits an -% obstacle. An empty vector is returned if vehicle never hits -% an obstacle. -% -% info.crash_time : Time in seconds when vehicle first hits -% an obstacle. An empty vector is returned if vehicle never -% hits an obstacle. -% -% info.crash_percent_of_track_completed : Percentage of the -% track completed before vehicle first hits an obstacle. An -% empty vector is returned if vehicle never hits an obstacle. -% -% info.input_exceeded : 1-by-2 boolean with the first entry -% being true if constraints on input 1 are violated and entry -% 2 being true if constraints on input 2 are violated. -% -% info.percent_of_track_completed : Percentage of track -% complete prior to leaving the track, hitting an obstacle, -% or the control inputs end. -% -% info.t_score : Score of computational time as -% info.t_finished + M * max(num_exceed_time_limit,0), -% where M(=10) is some penalty value, num_exceed_time_limit -% is the number of elements in t_update that are longer than -% 0.5 second. An empty vector is returned if finish line is -% not crossed. -% -% Written by: Shreyas Kousik and Matthew Porter -% Created: 14 Dec 2017 -% Modified: 24 Oct 2018 -% Modified: 1 Nov 2021 (Jinsun Liu) diff --git a/SimPkg_F21(student_ver)/getTrajectoryInfo.p b/SimPkg_F21(student_ver)/getTrajectoryInfo.p deleted file mode 100644 index 9cd2f469443dcef1a377d7cbca113f5ee19c49d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1205 zcmV;m1WNmMFflGLFm^C7E-)|v0I(cY2cNM300mnB00fl)012&8%)Ae{c%*{<{qLVY zk2=E63CMPeJ0HLdCxKtZ*|{k+e`y>+Tfpw%VOi+h@dlrbl7#@EYWQ$gqPRi8N8e86 zZN(I*$^ru|T@%` z$1QJbxlz_sx+gH6phamg!Z2xB;SGG7q}XaaC6K7j`&Ta42FI^-g1Y_W!4(sIg=lMD z{W3h)rOt~l#`R3aI2Q^bo6l?YCn0yFCt@58d8m|ss3j{4oorjbzw3BFy@qc=Qv0dp z!)6yY=Oi`W;iD1n@hL?HwQ_%PJ8MuJZrM5~pc=(_Bj4#Lgu-JnUeA;0c?N%rF|eNd+}% zKzEW|JsYHhcM)Oid_Gi?f+`XaQ1rrh1bgwJQZi#s>TWrnVv9Xy2`(pu>#X^ z-~QYDMYG`(o%k(3G(_dm;`VQoCB*C0wRcZ2T*W?DOSK#698^+fo41Z#DDx@g{ous@ ze@^3X1OV(zn=TaGddZ0cji114nd0lD-Ag7G%XvlUWpot{5%?*hud17&WXX-pmF%TJ z&voftiK>x_e2b&Ps_THqc!&Y98OcHWdk~s}VeYi0op;f4 z!VUgzYryxmOv8G70c3jGPSG?^h)@$QUDaC(dBe(2_DFu_8 zHmAmhhqixQD@NeYzpYR4ZdOn?3bqOzi8qjGKwU?W
  • Rn^Hd$YV~P=d)Kk-rnV#6 z>9#R=Q{xfQ=gLcs&T6A!g&DZiVfLN1JfctCFo z>-_IW_bgh_#M8^j{_w=M=_2-DP0irlRhvE!PI9H~Xk%OQQRC+6f`uH-n6yU)8^u0w zkg9GAKiG~}A#};_nutv|huw&jImU?TQNZRxTWaancm&K7U1Px?jZ3`u{X`JJ4zSO_ zwH#9_?>JHt^c^t?0E@r73e|a83;{kGI?x6Xov7}=deYR~clI=F+N7W%NB59Sc0eO6 zkkHK%MC`9qJZ#mE|buony$&XAV z?oqYrp74J%3`;BKX^sau*toIgEAu1J*ccV=lXdBL{AaTvth(6XFNY=&2zej>BnDDXS7Sts2Kgj9Dlmo&*WN T!h-<(12 diff --git a/SimPkg_F21(student_ver)/part1_generate_trajectory.m b/SimPkg_F21(student_ver)/part1_generate_trajectory.m deleted file mode 100644 index e330ecd..0000000 --- a/SimPkg_F21(student_ver)/part1_generate_trajectory.m +++ /dev/null @@ -1,221 +0,0 @@ -%% ROB 535 Team 3 Control Project -close all; -clear; -clc; - -%% Model Parameters -% Vehicle Parameters -delta_lim = [-0.5, 0.5]; -F_x_lim = [-5000, 5000]; -m = 1400; -N_w = 2; -f = 0.01; -I_z = 2667; -a = 1.35; -b = 1.45; -B_y = 0.27; -C_y = 1.2; -D_y = 0.7; -E_y = -1.6; -S_hy = 0; -S_vy = 0; -g = 9.806; -% Note: The Pacejka parameters are for the slip angle in degrees - -% Initial Conditions -x_0 = 287; % meters -u_0 = 5; % meters/second -y_0 = -176; % meters -v_0 = 0; % meters/second -psi_0 = 2; % radians -r_0 = 0; % radians/second -state_0 = [x_0, u_0, y_0, v_0, psi_0, r_0]; - -load('TestTrack.mat') - -%% Trajectory Synthesis -% Segment 1 -segment_num = 1; -num_pts(segment_num) = 6e2; -delta_vals(segment_num) = -0.004; -F_x_vals(segment_num) = 3900; - -% Segment 2 -segment_num = 2; -num_pts(segment_num) = 4e2; -delta_vals(segment_num) = -0.3; -F_x_vals(segment_num) = -2000; - -% Segment 3 -segment_num = 3; -num_pts(segment_num) = 1e2; -delta_vals(segment_num) = -0.05; -F_x_vals(segment_num) = 0; - -% Segment 4 -segment_num = 4; -num_pts(segment_num) = 7.5e2; -delta_vals(segment_num) = 0.0; -F_x_vals(segment_num) = 1000; - -% Segment 5 -segment_num = 5; -num_pts(segment_num) = 3e2; -delta_vals(segment_num) = 0.3; -F_x_vals(segment_num) = -500; - -% Segment 6 -segment_num = 6; -num_pts(segment_num) = 3.5e2; -delta_vals(segment_num) = -0.03; -F_x_vals(segment_num) = 1000; - -% Segment 7 -segment_num = 7; -num_pts(segment_num) = 1e2; -delta_vals(segment_num) = -0.005; -F_x_vals(segment_num) = -1000; - -% Segment 8 -segment_num = 8; -num_pts(segment_num) = 2e2; -delta_vals(segment_num) = 0.0275; -F_x_vals(segment_num) = -750; - -% Segment 9 -segment_num = 9; -num_pts(segment_num) = 2.4e2; -delta_vals(segment_num) = 0.5; -F_x_vals(segment_num) = -500; - -% Segment 10 -segment_num = 10; -num_pts(segment_num) = 5e2; -delta_vals(segment_num) = -0.02; -F_x_vals(segment_num) = 0; - -% Segment 11 -segment_num = 11; -num_pts(segment_num) = 2.5e2; -delta_vals(segment_num) = -0.05; -F_x_vals(segment_num) = 500; - -% Segment 12 -segment_num = 12; -num_pts(segment_num) = 2e2; -delta_vals(segment_num) = -0.01; -F_x_vals(segment_num) = 5000; - -% Segment 13 -segment_num = 13; -num_pts(segment_num) = 2e2; -delta_vals(segment_num) = -0.1; -F_x_vals(segment_num) = -2000; - -% Segment 14 -segment_num = 14; -num_pts(segment_num) = 3e2; -delta_vals(segment_num) = 0.175; -F_x_vals(segment_num) = -2000; - -% Segment 15 -segment_num = 15; -num_pts(segment_num) = 4.75e2; -delta_vals(segment_num) = 0.0025; -F_x_vals(segment_num) = 1000; - -% Segment 16 -segment_num = 16; -num_pts(segment_num) = 4.5e2; -delta_vals(segment_num) = 0.05; -F_x_vals(segment_num) = 0; - -% Segment 17 -segment_num = 17; -num_pts(segment_num) = 5e2; -delta_vals(segment_num) = 0.0; -F_x_vals(segment_num) = 500; - -% Segment 18 -segment_num = 18; -num_pts(segment_num) = 8e2; -delta_vals(segment_num) = -0.05; -F_x_vals(segment_num) = -500; - -% Segment 19 -segment_num = 19; -num_pts(segment_num) = 5.8e2; -delta_vals(segment_num) = 0.065; -F_x_vals(segment_num) = 0; - -% Segment 20 -segment_num = 20; -num_pts(segment_num) = 7.5e2; -delta_vals(segment_num) = 0; -F_x_vals(segment_num) = 2000; - -% Segment 21 -segment_num = 21; -num_pts(segment_num) = 2.25e2; -delta_vals(segment_num) = 0.5; -F_x_vals(segment_num) = -4400; - -% Segment 22 -segment_num = 22; -num_pts(segment_num) = 9e2; -delta_vals(segment_num) = 0.0; -F_x_vals(segment_num) = 5000; - -%% Load Inputs from File -load('ROB535_ControlProject_part1_Team3.mat'); - -%% Simulate Trajectory -for i = 1:length(num_pts) - [start_idx, end_idx] = get_indices(i, num_pts); - - delta = delta_vals(i); - F_x = F_x_vals(i); - U(start_idx:end_idx,:) = [delta * ones(num_pts(i),1), F_x * ones(num_pts(i),1)]; -end - -[Y, T] = forwardIntegrateControlInput(U, state_0); -info = getTrajectoryInfo(Y,U) - -[Y_submission, T_submission] = forwardIntegrateControlInput(ROB535_ControlProject_part1_input, state_0); -info = getTrajectoryInfo(Y_submission,ROB535_ControlProject_part1_input) - -%% Figures -% Plot segmented trajectory for debugging purposes -figure(1) -hold on; -grid on; - -for i = 1:length(num_pts) - [start_idx, end_idx] = get_indices(i, num_pts); - plot(Y(start_idx:end_idx,1), Y(start_idx:end_idx,3), '-'); -end - -plot(TestTrack.bl(1,:), TestTrack.bl(2,:), '--r'); -plot(TestTrack.br(1,:), TestTrack.br(2,:), '--r'); -plot(TestTrack.cline(1,:), TestTrack.cline(2,:), '-.g'); - -% Plot final trajectory from submission inputs -figure(2) -hold on; -grid on; - -plot(Y_submission(:,1), Y_submission(:,3), '-b'); -plot(TestTrack.bl(1,:), TestTrack.bl(2,:), '-r'); -plot(TestTrack.br(1,:), TestTrack.br(2,:), '-r'); -plot(TestTrack.cline(1,:), TestTrack.cline(2,:), '--g'); - -%% Functions -function [start_idx, end_idx] = get_indices(segment_num, num_pts) - if segment_num == 1 - start_idx = 1; - end_idx = num_pts(segment_num); - else - start_idx = sum(num_pts(1:segment_num-1)) + 1; - end_idx = sum(num_pts(1:segment_num)); - end -end \ No newline at end of file diff --git a/SimPkg_F21(student_ver)/senseObstacles.m b/SimPkg_F21(student_ver)/senseObstacles.m deleted file mode 100644 index 8b3dfb7..0000000 --- a/SimPkg_F21(student_ver)/senseObstacles.m +++ /dev/null @@ -1,27 +0,0 @@ -function Xobs_seen = senseObstacles(curr_pos, Xobs) -% Xobs_seen = senseObstacles(curr_pos, Xobs) -% -% Given the current vehicle position, sense the obstacles within 150m. -% -% INPUTS: -% curr_pos a 2-by-1 vector where the 1st and 2nd elements represent the -% x and y coordinates of the current vehicle position -% -% Xobs a cell array generated by generateRandomObstacles.m -% -% OUTPUTS: -% Xobs_seen a cell array which contains all obstacles that are no -% greater than 150m from the vehicle. Each cell has the same -% structure as the cells in Xobs. -% -% Written by: Jinsun Liu -% Created: 31 Oct 2021 - - - - - Xobs_mat = cell2mat(Xobs'); - dist = (Xobs_mat(:,1) - curr_pos(1)).^2 + (Xobs_mat(:,2) - curr_pos(2)).^2; - idx = unique(ceil(find(dist<=150^2)/4)); - Xobs_seen = {Xobs{idx}}; -end \ No newline at end of file diff --git a/SimPkg_F21(student_ver)/xenia_final_project.asv b/SimPkg_F21(student_ver)/xenia_final_project.asv deleted file mode 100644 index 2e44e66..0000000 --- a/SimPkg_F21(student_ver)/xenia_final_project.asv +++ /dev/null @@ -1,204 +0,0 @@ -%Vehicle Parameterrs -Nw=2; -f=0.01; -Iz=2667; -a=1.35; -b=1.45; -By=0.27; -Cy=1.2; -Dy=0.7; -Ey=-1.6; -Shy=0; -Svy=0; -m=1400; -g=9.806; - - -%note constraints on input -%delta [-0.5, 0.5] -%Fx [-5000, 5000] - -init = [287, 5, -176, 0, 2, 0]; -curr_xy = [287, -176]; -U_try = [0.4, 5000]; - -for i = 1:12 - U_try = [U_try; U_try]; -end -U_final = []; -U_try = [0.4, 5000; 0.4, 5000]; -[Y, T] = forwardIntegrateControlInput(U_try); -traj_inf = getTrajectoryInfo(Y, U_try); -%traj_inf.t_finished - -init = [287, 5, -176, 0, 2, 0]; -U_try = [0.25, 2500; 0.25, 2500; 0.25, 2500]; -noise = [randn*0.01, randn*10]; -U_try = U_try + noise; -[Y, T] = forwardIntegrateControlInput(U_try); -traj_inf = getTrajectoryInfo(Y, U_try); -U_final = U_try; - -max_percent = 0; -num_iter = 0; -subt = 0; -randomize = 0; -percent_comp = 0; -avgcount = []; -while (size(traj_inf.t_finished) == 0) -%for i = 1:100 - noise = [randn*0.01, randn*10]; - U_try = U_try + noise; - [Y_temp, T] = forwardIntegrateControlInput(U_try, Y(end,:)); - traj_inf = getTrajectoryInfo([Y;Y_temp], [U_final; U_try]); - - - if mod(num_iter+1, 11) == 0 | traj_inf.percent_of_track_completed < (percent_comp - 0.0001) - randomize = 1; - end - %if crashes, redo, if not add on and keep going - %also will allow it to change inputs once in a while for randomization - - %next thing to onsider trying is the intersectLineSegment thing and - %following centerline - count = 1; - factor = 3; - while size(traj_inf.left_track_position) ~= 0 | randomize == 1 - if subt == 0 - U_og = U_try; - U_try = U_try + [0.011, 250]; - if (U_try(1,1) > 0.49 && U_try(1,2) > 4900) - subt = 1; - end - if U_try(1,1) > 0.45 - U_try = U_try - [0.05, 0]; - end - if U_try(1,2) > 4500 - U_try = U_try - [0, 660]; - end - noise = [randn*0.01, randn*10]; - U_try = U_try + noise; - end - - if factor > (size(Y,1)/3) || (abs(U_try(1,1)) > 0.45 && abs(U_try(1,2)) > 4700) - subt = 1; - [Y_comp1, T] = forwardIntegrateControlInput(U_try, Y(end,:)); - U_try = U_og; - end - - - if subt == 1 - if (U_try(1,1) < -0.49 && U_try(1,2) < -4900) - subt = 0; - end - U_try = U_try - [0.011, 250]; - if U_try(1,1) < -0.45 - U_try = U_try + [0.05, 0]; - end - if U_try(1,2) < -4500 - U_try = U_try + [0, 660]; - end - noise = [randn*0.01, randn*10]; - U_try = U_try + noise; - end - - if factor > (size(Y,1)/3) || (abs(U_try(1,1)) > 0.45 && abs(U_try(1,2)) > 4700) - [Y_comp2, T] = forwardIntegrateControlInput(U_try, Y(end,:)); - - - for i = 1:(246/3) - dist1 = norm([Y_comp1(:,1)'; Y_comp1(:,3)'] - TestTrack.cline(:,i:i+2)); - dist2 = norm([Y_comp2(:,1)'; Y_comp2(:,3)'] - TestTrack.cline(:,i:i+2)); - - diff1 = min(dist1); - diff2 = min(dist2); - - if diff1 < 20 | diff2 < 20 - break - end - end - - if diff1 > diff2 - subt = 0; - end - if diff2 > diff1 - subt = 1; - end - - U_try = U_og; - if subt == 0 - U_try = U_try + [0.011, 250]; -% if (U_try(1,1) > 0.49 && U_try(1,2) > 4900) -% subt = 1; -% end - if U_try(1,1) > 0.5 - U_try = U_try - [0.05, 0]; - end - if U_try(1,2) > 4000 - U_try = U_try - [0, 760]; - end - end - - - if subt == 1 -% if (U_try(1,1) < -0.49 && U_try(1,2) < -4900) -% subt = 0; -% end - U_try = U_try - [0.011, 250]; - if U_try(1,1) < -0.5 - U_try = U_try + [0.05, 0]; - end - if U_try(1,2) < -4000 - U_try = U_try + [0, 760]; - end - - end - end - - %instead we'll go back one step and so we'll send 6 commands and - %check - - if mod(count,14) == 0 - factor = factor + 3; - end - - if factor > size(Y,1) - Y = []; - U_try = [rand*0.5, rand*100; rand*0.5, rand*100; rand*0.5, rand*100; - - U_try(:,1) = min(max(U_try(:,1), -0.5), 0.5); - U_try(:,2) = min(max(U_try(:,2), -5000), 5000); - U_try2 = U_try; - - for j = 1:(factor/3) - U_try2 = [U_try2; U_try]; - end - - [Y_temp, T] = forwardIntegrateControlInput(U_try2, Y(end-factor,:)); - traj_inf = getTrajectoryInfo([Y(1:end-factor,:);Y_temp], [U_final(1:end-factor,:); U_try2]); - - if size(traj_inf.left_track_position) == 0 - U_final = U_final(1:end-factor,:); - Y = Y(1:end-factor,:); - end - count = count + 1; - randomize = 0; - end - - if count ~= 1 - avgcount = [avgcount ; count]; - end - - if (traj_inf.percent_of_track_completed > percent_comp) - percent_comp = traj_inf.percent_of_track_completed; - end - - U_final = [U_final; U_try]; - Y = [Y; Y_temp(1:3,:)]; - num_iter = num_iter + count -end - - - - - diff --git a/SimPkg_F21(student_ver)/xenia_nonlinearopt.asv b/SimPkg_F21(student_ver)/xenia_nonlinearopt.asv deleted file mode 100644 index e2af018..0000000 --- a/SimPkg_F21(student_ver)/xenia_nonlinearopt.asv +++ /dev/null @@ -1,281 +0,0 @@ -%Vehicle Parameterrs -Nw=2; -f=0.01; -Iz=2667; -a=1.35; -b=1.45; -By=0.27; -Cy=1.2; -Dy=0.7; -Ey=-1.6; -Shy=0; -Svy=0; -m=1400; -g=9.806; - -%note constraints on input -%delta [-0.5, 0.5] -%Fx [-5000, 5000] - -load("TestTrack.mat"); - -init = [287, 5, -176, 0, 2, 0]; -curr_pos = [init(1);init(3)]; - -%generate bounds, will need to index these appropriately for obstacle -%avoidance -[LB, UB] = bounds(10); - -Nobs = 25; -Xobs = generateRandomObstacles(Nobs); - -%state_size = tbd; -z = [init, init, -0.004, 3900, -0.004, 3900]; %for testing purposes - -[g,h,dg,dh]=nonlcon(z, Xobs); - -function [lb, ub] = bounds(StepsPerPoint) - load('TestTrack.mat'); - - [m,nPts] = size(TestTrack.cline); -% numState = 6; -% numInput = 2; - nsteps = StepsPerPoint * nPts; - - lb_u = [-0.5;-5000]; - ub_u = [0.5;5000]; - - bound_X = [TestTrack.bl(1,1), TestTrack.bl(1,2), ... - TestTrack.br(1,1), TestTrack.br(1,2)]; - bound_Y = [TestTrack.bl(2,1), TestTrack.bl(2,2), ... - TestTrack.br(2,1), TestTrack.br(2,2)]; - phi_init = TestTrack.theta(1); - - %phi restricted to just [-pi/2 pi/2] - lb = [min(bound_X); -Inf; min(bound_Y); -Inf; -(pi/2); -Inf]; - ub = [max(bound_X); Inf; max(bound_Y); Inf; +(pi/2); Inf]; - - - for i=1:nPts - prev_idx = max(i-1, 1); - next_idx = min(i+1, 246); - - bound_X = [TestTrack.bl(1,prev_idx), TestTrack.bl(1,next_idx), ... - TestTrack.br(1,prev_idx), TestTrack.br(1,next_idx)]; - bound_Y = [TestTrack.bl(2,prev_idx), TestTrack.bl(2,next_idx), ... - TestTrack.br(2,prev_idx), TestTrack.br(2,next_idx)]; - phi_init = TestTrack.theta(i); - - lb_x = [min(bound_X); -Inf; min(bound_Y); -Inf; -(pi/2); -Inf]; - ub_x = [max(bound_X); Inf; max(bound_Y); Inf; +(pi/2); Inf]; - - for num = 1:StepsPerPoint - lb=[lb;lb_x]; - ub=[ub;ub_x]; - end - end - - for i=1:nsteps - ub=[ub;ub_u]; - lb=[lb;lb_u]; - end -end - - -function [g, h, dg, dh] = nonlcon(z, Xobs) - - nsteps = (size(z,2)/8); - curr_pos = [z(1); z(3)]; - - Xobs_seen = senseObstacles(curr_pos, Xobs); - centroids = []; - for i = 1:size(Xobs_seen,2) - centroids = [centroids; mean(Xobs_seen{1, i})]; - end - - dt = 0.01; - g = []; dg = []; - - %radius size - r = 3; - - for i = 1:nsteps - zInd_x = 6*(i-1) + 1; - zInd_y = 6*(i-1) + 3; - curr_xy = [z(zInd_x), z(zInd_y)]; - - %g based on if there's obstacles around - %initialize to zero - g_curr = 0; - zeroRow = zeros(1,size(z,2)); - dg(i,:) = zeroRow; - if (~isempty(centroids)) - dist2Obst = []; - for j = 1:size(Xobs_seen,2) - dist = norm(curr_xy(1) - centroids(j,1)) + norm(curr_xy(2) - centroids(j,2)); - dist2Obst = [dist2Obst; dist]; - end - - %closest obstacle used for constraint - [minDist, indMin] = min(dist2Obst); - - %g - g_curr = r^2 - (curr_xy(1) - centroids(indMin, 1))^2 - (curr_xy(2) - centroids(indMin, 2))^2; - - %dg - dg(i,zInd_x) = curr_xy(1)*(-2) - centroids(indMin, 1)*2; - dg(i,zInd_y) = curr_xy(2)*(-2) - centroids(indMin, 2)*2; - end - g = [g; g_curr]; - end - dg = transpose(dg); - - h = z(1:6); - for i = 2:nsteps - zInd_x = 6*(i-1) + 1; - zInd_x_prev = 6*(i-2) + 1; - - stateCurr = z(zInd_x:zInd_x+5); - statePrev = z(zInd_x_prev:zInd_x_prev+5); - - %get previous input - uInd_prev = 2*(i-1) + nsteps*6 - 1; - uPrev = [z(uInd_prev), z(uInd_prev + 1)]; - - derPrev= dt*bike(statePrev, uPrev); - - currH = stateCurr - statePrev - derPrev; - h(6*(i-1)+1) = currH(1); - h(6*(i-1)+2) = currH(2); - h(6*(i-1)+3) = currH(3); - h(6*(i-1)+4) = currH(4); - h(6*(i-1)+5) = currH(5); - h(6*(i-1)+6) = currH(6); - end - - dh = zeros(size(z,2), nsteps*6); - dh(1:6, 1:6) = eye(6); - for i = 1:nsteps-1 - - -end - -function dzdt=bike(x,U) -%constants -Nw=2; -f=0.01; -Iz=2667; -a=1.35; -b=1.45; -By=0.27; -Cy=1.2; -Dy=0.7; -Ey=-1.6; -Shy=0; -Svy=0; -m=1400; -g=9.806; - - -%generate input functions -delta_f= U(1); -F_x= U(2); - -%slip angle functions in degrees -a_f=rad2deg(delta_f-atan2(x(4)+a*x(6),x(2))); -a_r=rad2deg(-atan2((x(4)-b*x(6)),x(2))); - -%Nonlinear Tire Dynamics -phi_yf=(1-Ey)*(a_f+Shy)+(Ey/By)*atan(By*(a_f+Shy)); -phi_yr=(1-Ey)*(a_r+Shy)+(Ey/By)*atan(By*(a_r+Shy)); - -F_zf=b/(a+b)*m*g; -F_yf=F_zf*Dy*sin(Cy*atan(By*phi_yf))+Svy; - -F_zr=a/(a+b)*m*g; -F_yr=F_zr*Dy*sin(Cy*atan(By*phi_yr))+Svy; - -F_total=sqrt((Nw*F_x)^2+(F_yr^2)); -F_max=0.7*m*g; - -if F_total>F_max - - F_x=F_max/F_total*F_x; - - F_yr=F_max/F_total*F_yr; -end - -%vehicle dynamics -dzdt= [x(2)*cos(x(5))-x(4)*sin(x(5));... - (-f*m*g+Nw*F_x-F_yf*sin(delta_f))/m+x(4)*x(6);... - x(2)*sin(x(5))+x(4)*cos(x(5));... - (F_yf*cos(delta_f)+F_yr)/m-x(2)*x(6);... - x(6);... - (F_yf*a*cos(delta_f)-F_yr*b)/Iz]; -end - -function [A, B] =bikeLinearize(x,U) -%constants -Nw=2; -f=0.01; -Iz=2667; -a=1.35; -b=1.45; -By=0.27; -Cy=1.2; -Dy=0.7; -Ey=-1.6; -Shy=0; -Svy=0; -m=1400; -g=9.806; - - -%generate input functions -delta_f= U(1); -F_x= U(2); - -%slip angle functions in degrees -a_f=rad2deg(delta_f-atan2(x(4)+a*x(6),x(2))); -a_r=rad2deg(-atan2((x(4)-b*x(6)),x(2))); - -%Nonlinear Tire Dynamics -phi_yf=(1-Ey)*(a_f+Shy)+(Ey/By)*atan(By*(a_f+Shy)); -phi_yr=(1-Ey)*(a_r+Shy)+(Ey/By)*atan(By*(a_r+Shy)); - -F_zf=b/(a+b)*m*g; -F_yf=F_zf*Dy*sin(Cy*atan(By*phi_yf))+Svy; - -F_zr=a/(a+b)*m*g; -F_yr=F_zr*Dy*sin(Cy*atan(By*phi_yr))+Svy; - -F_total=sqrt((Nw*F_x)^2+(F_yr^2)); -F_max=0.7*m*g; - -if F_total>F_max - - F_x=F_max/F_total*F_x; - - F_yr=F_max/F_total*F_yr; -end - - - -%we are just going to use cornering stiffness to make linear so this derivative -%easier, the vehicle parameter's are close enough to problem 1 hw 2 -B=10; -C=1.3; -D=1; -Ca_r= Fz_r*B*C*D; -Ca_f= Fz_f*B*C*D; - -A = @(t)[0, cos(x(5)), 0, -sin(x(5)), x(2)*sin(x(5))-x(4)*cos(x(5)), 0; - 0, (-1/m)*Ca_f*x(2)^-2, 0, -Ca_f/m + 1, 0, Ca_f*(-a/m) + 1; - 0, sin(x(5)), 0, cos(x(5)), -x(4)*sin(x(5))+x(2)*cos(x(5)), 0; - 0, (1/m)*(-Ca_f*x(2)^-2 - Ca_r*x(2)^-2) - 1, 0, Ca_r/m*(-1/x(2)) + Ca_f/m*(-1/x(2)), 0, Ca_r/m*(b/x(2)) + Ca_f/m*(-a/x(2)) - u(2); - 0, 0, 0, 0, 0, 1 - 0, (1/Iz)*(-Ca_f*a*x(2)^-2 - b*Ca_r*x(2)^-2), 0, -b*Ca_r/Iz*(-1/x(2)) + a*Ca_f/Iz*(-1/x(2)), 0, -b*Ca_r/Iz*(b/(x2)) + a*Ca_f/Iz*(-a/x(2))]; - -B = [0; -Ca_f/(x(2)*m); 0; Ca_f/m; 0; a*Ca_f/Iz; - 0; Nw/m; 0; 0; 0; 0]; -end \ No newline at end of file diff --git a/SimPkg_F21(student_ver)/reftrack_info.mat b/reftrack_info.mat similarity index 100% rename from SimPkg_F21(student_ver)/reftrack_info.mat rename to reftrack_info.mat diff --git a/SimPkg_F21(student_ver)/segments_info.mat b/segments_info.mat similarity index 100% rename from SimPkg_F21(student_ver)/segments_info.mat rename to segments_info.mat diff --git a/SimPkg_F21(student_ver)/xenia_final_project.m b/xenia_final_project.m similarity index 100% rename from SimPkg_F21(student_ver)/xenia_final_project.m rename to xenia_final_project.m diff --git a/SimPkg_F21(student_ver)/xenia_nonlinearopt.m b/xenia_nonlinearopt.m similarity index 100% rename from SimPkg_F21(student_ver)/xenia_nonlinearopt.m rename to xenia_nonlinearopt.m