├── .gitignore ├── .gitignore.txt ├── Figures ├── EDMD_evalutation_1.fig ├── EDMD_evalutation_1.png ├── EDMD_evalutation_2.fig ├── EDMD_evalutation_2.png ├── MPC_control_1.fig ├── MPC_control_1.png ├── MPC_control_2.fig ├── MPC_control_2.png ├── MPC_states_1.png ├── MPC_states_2.png ├── MPC_time_1.fig ├── MPC_time_2.fig ├── MPC_tracking_1.fig ├── MPC_tracking_2.fig ├── MPC_tracking_2.png ├── MPC_traj_1.png ├── MPC_traj_2.png ├── eigvals_A.fig ├── eigvals_A.png ├── schematic.png └── schematic.pptx ├── LICENSE ├── README.md ├── RequiredCodeChanges.txt ├── compare_dynamics.m ├── dynamics ├── dynamics_SRB.m ├── get_params.m └── linearize_SRB.m ├── edmd ├── eval_EDMD_pid.m ├── eval_EDMD_random.m ├── get_EDMD.m └── get_basis.m ├── main.m ├── mpc ├── casadi_MPC.m ├── get_QP.m └── sim_MPC.m ├── training ├── get_pid_trajectories.asv ├── get_pid_trajectories.m ├── get_rnd_trajectories.m └── nominal_pid │ ├── controller.m │ ├── evaluate.p │ ├── helix.mat │ ├── init_state_edmd.m │ ├── line.mat │ ├── runsim.m │ ├── simulation_3d.m │ ├── source for reference.txt │ ├── submit.m │ ├── traj_gen.mat │ ├── traj_generator.m │ ├── traj_helix.p │ ├── traj_line.p │ └── utils │ ├── QuadPlot.m │ ├── QuatToRot.m │ ├── RPYtoRot_ZXY.m │ ├── RotToQuat.m │ ├── RotToRPY_ZXY.m │ ├── init_state.m │ ├── parse_edmd_pid.m │ ├── plot_state.m │ ├── quadEOM.m │ ├── quadEOM_readonly.m │ ├── quad_pos.m │ ├── stateToQd.m │ ├── sys_params.m │ ├── terminate_check.m │ └── traj_gen.m └── utils ├── control_plots.m ├── hat_map.m ├── rmse.m ├── state_plots.m ├── vectorize.m └── vee_map.m /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/.gitignore -------------------------------------------------------------------------------- /.gitignore.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/.gitignore.txt -------------------------------------------------------------------------------- /Figures/EDMD_evalutation_1.fig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/EDMD_evalutation_1.fig -------------------------------------------------------------------------------- /Figures/EDMD_evalutation_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/EDMD_evalutation_1.png -------------------------------------------------------------------------------- /Figures/EDMD_evalutation_2.fig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/EDMD_evalutation_2.fig -------------------------------------------------------------------------------- /Figures/EDMD_evalutation_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/EDMD_evalutation_2.png -------------------------------------------------------------------------------- /Figures/MPC_control_1.fig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/MPC_control_1.fig -------------------------------------------------------------------------------- /Figures/MPC_control_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/MPC_control_1.png -------------------------------------------------------------------------------- /Figures/MPC_control_2.fig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/MPC_control_2.fig -------------------------------------------------------------------------------- /Figures/MPC_control_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/MPC_control_2.png -------------------------------------------------------------------------------- /Figures/MPC_states_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/MPC_states_1.png -------------------------------------------------------------------------------- /Figures/MPC_states_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/MPC_states_2.png -------------------------------------------------------------------------------- /Figures/MPC_time_1.fig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/MPC_time_1.fig -------------------------------------------------------------------------------- /Figures/MPC_time_2.fig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/MPC_time_2.fig -------------------------------------------------------------------------------- /Figures/MPC_tracking_1.fig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/MPC_tracking_1.fig -------------------------------------------------------------------------------- /Figures/MPC_tracking_2.fig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/MPC_tracking_2.fig -------------------------------------------------------------------------------- /Figures/MPC_tracking_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/MPC_tracking_2.png -------------------------------------------------------------------------------- /Figures/MPC_traj_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/MPC_traj_1.png -------------------------------------------------------------------------------- /Figures/MPC_traj_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/MPC_traj_2.png -------------------------------------------------------------------------------- /Figures/eigvals_A.fig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/eigvals_A.fig -------------------------------------------------------------------------------- /Figures/eigvals_A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/eigvals_A.png -------------------------------------------------------------------------------- /Figures/schematic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/schematic.png -------------------------------------------------------------------------------- /Figures/schematic.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/Figures/schematic.pptx -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/README.md -------------------------------------------------------------------------------- /RequiredCodeChanges.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/RequiredCodeChanges.txt -------------------------------------------------------------------------------- /compare_dynamics.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/compare_dynamics.m -------------------------------------------------------------------------------- /dynamics/dynamics_SRB.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/dynamics/dynamics_SRB.m -------------------------------------------------------------------------------- /dynamics/get_params.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/dynamics/get_params.m -------------------------------------------------------------------------------- /dynamics/linearize_SRB.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/dynamics/linearize_SRB.m -------------------------------------------------------------------------------- /edmd/eval_EDMD_pid.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/edmd/eval_EDMD_pid.m -------------------------------------------------------------------------------- /edmd/eval_EDMD_random.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/edmd/eval_EDMD_random.m -------------------------------------------------------------------------------- /edmd/get_EDMD.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/edmd/get_EDMD.m -------------------------------------------------------------------------------- /edmd/get_basis.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/edmd/get_basis.m -------------------------------------------------------------------------------- /main.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/main.m -------------------------------------------------------------------------------- /mpc/casadi_MPC.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/mpc/casadi_MPC.m -------------------------------------------------------------------------------- /mpc/get_QP.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/mpc/get_QP.m -------------------------------------------------------------------------------- /mpc/sim_MPC.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/mpc/sim_MPC.m -------------------------------------------------------------------------------- /training/get_pid_trajectories.asv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/get_pid_trajectories.asv -------------------------------------------------------------------------------- /training/get_pid_trajectories.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/get_pid_trajectories.m -------------------------------------------------------------------------------- /training/get_rnd_trajectories.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/get_rnd_trajectories.m -------------------------------------------------------------------------------- /training/nominal_pid/controller.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/controller.m -------------------------------------------------------------------------------- /training/nominal_pid/evaluate.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/evaluate.p -------------------------------------------------------------------------------- /training/nominal_pid/helix.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/helix.mat -------------------------------------------------------------------------------- /training/nominal_pid/init_state_edmd.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/init_state_edmd.m -------------------------------------------------------------------------------- /training/nominal_pid/line.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/line.mat -------------------------------------------------------------------------------- /training/nominal_pid/runsim.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/runsim.m -------------------------------------------------------------------------------- /training/nominal_pid/simulation_3d.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/simulation_3d.m -------------------------------------------------------------------------------- /training/nominal_pid/source for reference.txt: -------------------------------------------------------------------------------- 1 | source code from: Upenn Aerial Robotics course -------------------------------------------------------------------------------- /training/nominal_pid/submit.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/submit.m -------------------------------------------------------------------------------- /training/nominal_pid/traj_gen.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/traj_gen.mat -------------------------------------------------------------------------------- /training/nominal_pid/traj_generator.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/traj_generator.m -------------------------------------------------------------------------------- /training/nominal_pid/traj_helix.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/traj_helix.p -------------------------------------------------------------------------------- /training/nominal_pid/traj_line.p: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/traj_line.p -------------------------------------------------------------------------------- /training/nominal_pid/utils/QuadPlot.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/utils/QuadPlot.m -------------------------------------------------------------------------------- /training/nominal_pid/utils/QuatToRot.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/utils/QuatToRot.m -------------------------------------------------------------------------------- /training/nominal_pid/utils/RPYtoRot_ZXY.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/utils/RPYtoRot_ZXY.m -------------------------------------------------------------------------------- /training/nominal_pid/utils/RotToQuat.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/utils/RotToQuat.m -------------------------------------------------------------------------------- /training/nominal_pid/utils/RotToRPY_ZXY.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/utils/RotToRPY_ZXY.m -------------------------------------------------------------------------------- /training/nominal_pid/utils/init_state.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/utils/init_state.m -------------------------------------------------------------------------------- /training/nominal_pid/utils/parse_edmd_pid.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/utils/parse_edmd_pid.m -------------------------------------------------------------------------------- /training/nominal_pid/utils/plot_state.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/utils/plot_state.m -------------------------------------------------------------------------------- /training/nominal_pid/utils/quadEOM.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/utils/quadEOM.m -------------------------------------------------------------------------------- /training/nominal_pid/utils/quadEOM_readonly.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/utils/quadEOM_readonly.m -------------------------------------------------------------------------------- /training/nominal_pid/utils/quad_pos.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/utils/quad_pos.m -------------------------------------------------------------------------------- /training/nominal_pid/utils/stateToQd.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/utils/stateToQd.m -------------------------------------------------------------------------------- /training/nominal_pid/utils/sys_params.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/utils/sys_params.m -------------------------------------------------------------------------------- /training/nominal_pid/utils/terminate_check.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/utils/terminate_check.m -------------------------------------------------------------------------------- /training/nominal_pid/utils/traj_gen.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/training/nominal_pid/utils/traj_gen.m -------------------------------------------------------------------------------- /utils/control_plots.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/utils/control_plots.m -------------------------------------------------------------------------------- /utils/hat_map.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/utils/hat_map.m -------------------------------------------------------------------------------- /utils/rmse.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/utils/rmse.m -------------------------------------------------------------------------------- /utils/state_plots.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/utils/state_plots.m -------------------------------------------------------------------------------- /utils/vectorize.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/utils/vectorize.m -------------------------------------------------------------------------------- /utils/vee_map.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sriram-2502/KoopmanMPC_Quadrotor/HEAD/utils/vee_map.m --------------------------------------------------------------------------------