summaryrefslogtreecommitdiffstats
path: root/Submission files/traj_constraints.m
diff options
context:
space:
mode:
authorYanzhenXiang <54230111+YanzhenXiangRobotics@users.noreply.github.com>2023-11-06 16:49:26 +0100
committerGitHub <noreply@github.com>2023-11-06 16:49:26 +0100
commitd6b96c55ebb89ebd6e2d990ec89122799c68a230 (patch)
tree7a837438da9e07a5e77658c6d882577fff8bcae1 /Submission files/traj_constraints.m
parentUpdate 23 (diff)
parentupdate the new submission zip generated from npross branch (diff)
downloadmpc_pe-master.tar.gz
mpc_pe-master.zip
Merge pull request #1 from YanzhenXiangRobotics/submissionHEADmaster
Submission
Diffstat (limited to '')
-rw-r--r--Submission files/traj_constraints.m40
1 files changed, 40 insertions, 0 deletions
diff --git a/Submission files/traj_constraints.m b/Submission files/traj_constraints.m
new file mode 100644
index 0000000..69d19d3
--- /dev/null
+++ b/Submission files/traj_constraints.m
@@ -0,0 +1,40 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Copyright (c) 2023, Amon Lahr, Simon Muntwiler, Antoine Leeman & Fabian Flürenbrock Institute for Dynamic Systems and Control, ETH Zurich.
+%
+% All rights reserved.
+%
+% Please see the LICENSE file that has been included as part of this package.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+function [s_max, y_max, u_max, J_u, df_max, vf_max, traj_feas] = traj_constraints(x,u,params)
+ % YOUR CODE HERE
+
+ s_max = max(max(abs(x([1,3],:))));
+ y_max = max(abs(x(2,:)));
+ u_max = max(max(abs(u)));
+
+ J_u = 0;
+ for k=1:size(u,2)
+ J_u = J_u + u(:,k)' * u(:,k);
+ end
+
+ df_max = sqrt(sum(x(1:3,end).^2));
+ vf_max = sqrt(sum(x(4:6,end).^2));
+
+ constr = [
+ s_max <= params.constraints.MaxAbsPositionXZ, ...
+ y_max <= params.constraints.MaxAbsPositionY, ...
+ u_max <= params.constraints.MaxAbsThrust, ...
+ df_max <= params.constraints.MaxFinalPosDiff, ...
+ vf_max <= params.constraints.MaxFinalVelDiff
+ ];
+
+ % disp([s_max, y_max, df_max, vf_max])
+ % disp([params.constraints.MaxAbsPositionXZ, ...
+ % params.constraints.MaxAbsPositionY, ...
+ % params.constraints.MaxFinalPosDiff, ...
+ % params.constraints.MaxFinalVelDiff])
+ % disp(constr')
+ traj_feas = all(constr);
+end
+