From 1965e156951103ac8e0b2c5014b86ab4b31d5b80 Mon Sep 17 00:00:00 2001 From: Somrita Banerjee Date: Fri, 3 Jan 2025 00:42:17 -0800 Subject: [PATCH] Adding an example model, Training and comparing different models --- mobility/planner_scp_gusto/src/optim.cc | 69 +++++++++++++++++- .../trained_model_27_2025-01-03_00-34-39.pt | Bin 0 -> 55699 bytes 2 files changed, 65 insertions(+), 4 deletions(-) create mode 100644 saved_NN_models/trained_model_27_2025-01-03_00-34-39.pt diff --git a/mobility/planner_scp_gusto/src/optim.cc b/mobility/planner_scp_gusto/src/optim.cc index e9e8695add..3d9b954bb6 100644 --- a/mobility/planner_scp_gusto/src/optim.cc +++ b/mobility/planner_scp_gusto/src/optim.cc @@ -3135,15 +3135,16 @@ int main() { scp::TOP top(20., 801); top.is_granite = false; // Get the first train_set_size files in output_trajs_for_NN - int train_set_size = 5; + int train_set_size = 27; + int num_epochs = 50000; std::vector files; for (int i = 1; i <= train_set_size; i++) { files.push_back("output_trajs_for_NN/iss_optim_trajectory_" + std::to_string(i) + ".txt"); } - top.TrainModel(files, 50); + top.TrainModel(files, num_epochs); std::string timestamp = getCurrentTimestamp(); - std::string filename = "trained_model_" + std::to_string(train_set_size) + "_" + timestamp + ".pt"; + std::string filename = "saved_NN_models/trained_model_" + std::to_string(train_set_size) + "_" + timestamp + ".pt"; top.SaveModel(filename); } @@ -3169,7 +3170,67 @@ int main() { std::cout << "Uprev final: " << Uprev[Uprev.size() - 1].transpose() << std::endl; // Load model - std::string fname = "trained_model_5_2025-01-03_00-03-15.pt"; + std::string fname = "saved_NN_models/trained_model_5_2025-01-03_00-03-15.pt"; + std::cout << "Using " << fname << " model" << std::endl; + top.LoadModel(fname); + + x0.setZero(); + xg.setZero(); + Xprev.clear(); + Uprev.clear(); + x0 << 10.28, -9.81, 4.30, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0; + xg << 10.48, -9.81, 4.30, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0; + std::cout << "x0: " << x0.transpose() << std::endl; + std::cout << "xg: " << xg.transpose() << std::endl; + std::tie(Xprev, Uprev) = top.WarmStartFromNN(x0, xg); + std::cout << "Warm start from neural network:" << std::endl; + std::cout << "Xprev initial: " << Xprev[0].transpose() << std::endl; + std::cout << "Xprev final: " << Xprev[Xprev.size() - 1].transpose() << std::endl; + std::cout << "Uprev initial: " << Uprev[0].transpose() << std::endl; + std::cout << "Uprev final: " << Uprev[Uprev.size() - 1].transpose() << std::endl; + + // Load model + fname = "saved_NN_models/trained_model_27_2025-01-03_00-19-49.pt"; + std::cout << "Using " << fname << " model" << std::endl; + top.LoadModel(fname); + + x0.setZero(); + xg.setZero(); + Xprev.clear(); + Uprev.clear(); + x0 << 10.28, -9.81, 4.30, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0; + xg << 10.48, -9.81, 4.30, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0; + std::cout << "x0: " << x0.transpose() << std::endl; + std::cout << "xg: " << xg.transpose() << std::endl; + std::tie(Xprev, Uprev) = top.WarmStartFromNN(x0, xg); + std::cout << "Warm start from neural network:" << std::endl; + std::cout << "Xprev initial: " << Xprev[0].transpose() << std::endl; + std::cout << "Xprev final: " << Xprev[Xprev.size() - 1].transpose() << std::endl; + std::cout << "Uprev initial: " << Uprev[0].transpose() << std::endl; + std::cout << "Uprev final: " << Uprev[Uprev.size() - 1].transpose() << std::endl; + + // Load model + fname = "saved_NN_models/trained_model_27_2025-01-03_00-27-55.pt"; + std::cout << "Using " << fname << " model" << std::endl; + top.LoadModel(fname); + + x0.setZero(); + xg.setZero(); + Xprev.clear(); + Uprev.clear(); + x0 << 10.28, -9.81, 4.30, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0; + xg << 10.48, -9.81, 4.30, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0; + std::cout << "x0: " << x0.transpose() << std::endl; + std::cout << "xg: " << xg.transpose() << std::endl; + std::tie(Xprev, Uprev) = top.WarmStartFromNN(x0, xg); + std::cout << "Warm start from neural network:" << std::endl; + std::cout << "Xprev initial: " << Xprev[0].transpose() << std::endl; + std::cout << "Xprev final: " << Xprev[Xprev.size() - 1].transpose() << std::endl; + std::cout << "Uprev initial: " << Uprev[0].transpose() << std::endl; + std::cout << "Uprev final: " << Uprev[Uprev.size() - 1].transpose() << std::endl; + + // Load model + fname = "saved_NN_models/trained_model_27_2025-01-03_00-34-39.pt"; std::cout << "Using " << fname << " model" << std::endl; top.LoadModel(fname); diff --git a/saved_NN_models/trained_model_27_2025-01-03_00-34-39.pt b/saved_NN_models/trained_model_27_2025-01-03_00-34-39.pt new file mode 100644 index 0000000000000000000000000000000000000000..858575d6a3d65d9aa8e6f56ce60e9730203f5f21 GIT binary patch literal 55699 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 TCKTY!3RWe^Ajkkx4^ayM>91GP literal 0 HcmV?d00001