mirror of
https://gitlab.com/lander-team/lander-cpp.git
synced 2025-07-25 23:51:35 +00:00
Initial Pass, still lots of bugs to fix
This commit is contained in:
82
src/main.cpp
82
src/main.cpp
@@ -3,9 +3,9 @@
|
||||
#include <cmath>
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <stdexcept> // std::runtime_error
|
||||
#include <stdio.h>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include "Vehicle.h"
|
||||
@@ -27,59 +27,67 @@ int main() {
|
||||
std::vector<double> varValueVec = std::vector<double>(17, 0.0);
|
||||
std::string varName, varValue, varUnits;
|
||||
|
||||
for (int i; i < 17; i++) {
|
||||
for (int i; i < 20; i++) {
|
||||
std::getline(inFile, varName, ',');
|
||||
std::getline(inFile, varValue, ',');
|
||||
varValueVec[i] = stod(varValue);
|
||||
std::getline(inFile, varUnits);
|
||||
}
|
||||
}
|
||||
|
||||
// Initial Velocity
|
||||
State.vx = varValueVec[0]; // [m/s]
|
||||
State.vy = varValueVec[1]; // [m/s]
|
||||
State.vz = varValueVec[2]; // [m/s]
|
||||
State.vx = varValueVec[0]; // [m/s]
|
||||
State.vy = varValueVec[1]; // [m/s]
|
||||
State.vz = varValueVec[2]; // [m/s]
|
||||
|
||||
// Initial YPR
|
||||
State.yaw = varValueVec[3] * M_PI / 180; // [rad]
|
||||
State.pitch = varValueVec[4] * M_PI / 180; // [rad]
|
||||
State.roll = varValueVec[5] * M_PI / 180; // [rad]
|
||||
// Initial YPR
|
||||
State.yaw = varValueVec[3] * M_PI / 180; // [rad]
|
||||
State.pitch = varValueVec[4] * M_PI / 180; // [rad]
|
||||
State.roll = varValueVec[5] * M_PI / 180; // [rad]
|
||||
|
||||
// Initial YPRdot
|
||||
State.yawdot = varValueVec[6] * M_PI / 180; // [rad/s]
|
||||
State.pitchdot = varValueVec[7] * M_PI / 180; // [rad/s]
|
||||
State.rolldot = varValueVec[8] * M_PI / 180; // [rad/s]
|
||||
// Initial YPRdot
|
||||
State.yawdot = varValueVec[6] * M_PI / 180; // [rad/s]
|
||||
State.pitchdot = varValueVec[7] * M_PI / 180; // [rad/s]
|
||||
State.rolldot = varValueVec[8] * M_PI / 180; // [rad/s]
|
||||
|
||||
// Servo Limitation
|
||||
State.maxServo = varValueVec[9]; // [degs]
|
||||
// Servo Limitation
|
||||
State.maxServo = varValueVec[9]; // [degs]
|
||||
|
||||
// Vehicle Properties
|
||||
State.massInitial = varValueVec[10]; // [kg]
|
||||
State.vehicleHeight = varValueVec[13]; // [m]
|
||||
State.vehicleRadius = varValueVec[14]; // [m]
|
||||
State.momentArm = varValueVec[15]; // [m]
|
||||
// Vehicle Properties
|
||||
State.massInitial = varValueVec[10]; // [kg]
|
||||
State.vehicleHeight = varValueVec[13]; // [m]
|
||||
State.vehicleRadius = varValueVec[14]; // [m]
|
||||
State.momentArm = varValueVec[15]; // [m]
|
||||
|
||||
// Sim Step Size
|
||||
State.stepSize = varValueVec[16]; // [ms]
|
||||
// Sim Step Size
|
||||
State.stepSize = varValueVec[16]; // [ms]
|
||||
|
||||
// Other Properties
|
||||
State.burntime = varValueVec[12]; // [s]
|
||||
State.massPropellant = varValueVec[11]; // [kg]
|
||||
State.massBurnout = State.massInitial - State.massPropellant; // [kg]
|
||||
State.mdot = State.massPropellant / State.burntime; // [kg/s]
|
||||
State.mass = State.massInitial; // [kg]
|
||||
State.burnElapsed = 2000; // [s]
|
||||
PrevState.thrust = 0; // [N]
|
||||
// PID Gains
|
||||
State.Kp = varValueVec[17];
|
||||
State.Ki = varValueVec[18];
|
||||
State.Kd = -1;
|
||||
|
||||
bool outcome = sim(State, PrevState);
|
||||
std::cout << State.Kd << "\n";
|
||||
|
||||
std::cout << "Finished"
|
||||
<< "\n";
|
||||
// Other Properties
|
||||
State.burntime = varValueVec[12]; // [s]
|
||||
State.massPropellant = varValueVec[11]; // [kg]
|
||||
State.massBurnout = State.massInitial - State.massPropellant; // [kg]
|
||||
State.mdot = State.massPropellant / State.burntime; // [kg/s]
|
||||
State.mass = State.massInitial; // [kg]
|
||||
State.burnElapsed = 2000; // [s]
|
||||
PrevState.thrust = 0; // [N]
|
||||
|
||||
if (outcome == 1) {
|
||||
std::cout << "Sim Result = Success!";
|
||||
return 0;
|
||||
bool outcome = sim(State, PrevState);
|
||||
|
||||
std::cout << "Finished"
|
||||
<< "\n";
|
||||
|
||||
if (outcome == 1) {
|
||||
std::cout << "Sim Result = Success!";
|
||||
return 0;
|
||||
} else if (outcome == 0) {
|
||||
std::cout << "Sim Result = Failed!";
|
||||
|
||||
// return 1; Until I figure out how to make CI/CD continue even when run
|
||||
// fails.
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user