From e5fa2fa827309021fb391603ef37992b1981eb37 Mon Sep 17 00:00:00 2001 From: Kevin D Date: Wed, 11 Mar 2026 12:30:36 -0700 Subject: [PATCH] small testbed convenience fixes --- aerpaw/config/scenario_2uavs.csv | 2 ++ aerpaw/controller.coderprj | 2 +- aerpaw/impl/controller_main.cpp | 15 ++++++++++----- aerpaw/results/resultsAnalysis.m | 4 ++-- aerpaw/run_uav.sh | 4 ++-- aerpaw/scripts/startVehicle.sh | 2 +- .../mvGRiPTuORJmVPdRh4fiJMWoTJAd.xml | 2 ++ .../mvGRiPTuORJmVPdRh4fiJMWoTJAp.xml | 2 ++ .../erFP4mR9aK32bO4kZAlU-FeDikAd.xml | 2 ++ .../erFP4mR9aK32bO4kZAlU-FeDikAp.xml | 2 ++ .../s1FGL5Sd2djlHMPxH7Uz8GEn55cd.xml | 2 ++ .../s1FGL5Sd2djlHMPxH7Uz8GEn55cp.xml | 2 ++ 12 files changed, 30 insertions(+), 11 deletions(-) create mode 100644 aerpaw/config/scenario_2uavs.csv create mode 100644 resources/project/erFP4mR9aK32bO4kZAlU-FeDikA/mvGRiPTuORJmVPdRh4fiJMWoTJAd.xml create mode 100644 resources/project/erFP4mR9aK32bO4kZAlU-FeDikA/mvGRiPTuORJmVPdRh4fiJMWoTJAp.xml create mode 100644 resources/project/q138eJA8Ym4eSfM3RFMVvg63QtU/erFP4mR9aK32bO4kZAlU-FeDikAd.xml create mode 100644 resources/project/q138eJA8Ym4eSfM3RFMVvg63QtU/erFP4mR9aK32bO4kZAlU-FeDikAp.xml create mode 100644 resources/project/vmVRNnXTZxyEiUtNp09z8POG4ww/s1FGL5Sd2djlHMPxH7Uz8GEn55cd.xml create mode 100644 resources/project/vmVRNnXTZxyEiUtNp09z8POG4ww/s1FGL5Sd2djlHMPxH7Uz8GEn55cp.xml diff --git a/aerpaw/config/scenario_2uavs.csv b/aerpaw/config/scenario_2uavs.csv new file mode 100644 index 0000000..c4e2592 --- /dev/null +++ b/aerpaw/config/scenario_2uavs.csv @@ -0,0 +1,2 @@ +timestep, maxIter, minAlt, discretizationStep, protectedRange, initialStepSize, barrierGain, barrierExponent, collisionRadius, comRange, alphaDist, betaDist, alphaTilt, betaTilt, domainMin, domainMax, objectivePos, objectiveVar, sensorPerformanceMinimum, initialPositions, numObstacles, obstacleMin, obstacleMax +5, 100, 30.0, 0.1, 2.0, 3.0, 100, 3, "6.0, 6.0", "20.0, 20.0", "80.0, 80.0", "0.25, 0.25", "5.0, 5.0", "0.1, 0.1", "0.0, 0.0", "80.0, 80.0", "55.0, 55.0", "40, 25, 25, 40", 0.15, "15.0, 10.0, 40.0, 5.0, 10.0, 45.0", 1, "1.0, 25.0, 0.0", "30.0, 30.0, 50.0" \ No newline at end of file diff --git a/aerpaw/controller.coderprj b/aerpaw/controller.coderprj index 862af73..6e4b8e3 100644 --- a/aerpaw/controller.coderprj +++ b/aerpaw/controller.coderprj @@ -1099,7 +1099,7 @@ true - 2026-03-11T11:45:17 + 2026-03-11T12:22:00 diff --git a/aerpaw/impl/controller_main.cpp b/aerpaw/impl/controller_main.cpp index 8a8120e..6d66467 100644 --- a/aerpaw/impl/controller_main.cpp +++ b/aerpaw/impl/controller_main.cpp @@ -1,12 +1,17 @@ #include -#include "controller.h" +#include "controller.h" #include "controller_impl.h" // TCP implementation header int main() { - // Number of clients to handle - int numClients = 2; // for now - - std::cout << "Initializing TCP server...\n"; + // Derive numClients from initialPositions in scenario.csv + double targets[MAX_CLIENTS_PER_PARAM * 3]; + int numClients = loadInitialPositions("config/scenario.csv", + targets, MAX_CLIENTS_PER_PARAM); + if (numClients < 1) { + std::cerr << "Failed to parse numClients from scenario.csv\n"; + return 1; + } + std::cout << "Parsed " << numClients << " UAV(s) from scenario.csv\n"; // Call MATLAB-generated server function controller(numClients); diff --git a/aerpaw/results/resultsAnalysis.m b/aerpaw/results/resultsAnalysis.m index b6f004e..e5d29b0 100644 --- a/aerpaw/results/resultsAnalysis.m +++ b/aerpaw/results/resultsAnalysis.m @@ -1,5 +1,5 @@ %% Plot AERPAW logs (trajectory, radio) -resultsPath = fullfile(matlab.project.rootProject().RootFolder, "sandbox", "t2"); % Define path to results copied from AERPAW platform +resultsPath = fullfile(matlab.project.rootProject().RootFolder, "sandbox", "three_around_wall_2uavs"); % Define path to results copied from AERPAW platform % Plot GPS logged data and scenario information (domain, objective, obstacles) seaToGroundLevel = 110; % measured approximately from USGS national map viewer @@ -10,7 +10,7 @@ seaToGroundLevel = 110; % measured approximately from USGS national map viewer %% Run simulation % Run miSim using same AERPAW scenario definition CSV -csvPath = fullfile(matlab.project.rootProject().RootFolder, "aerpaw", "config", "scenario.csv"); +csvPath = fullfile(matlab.project.rootProject().RootFolder, "aerpaw", "config", "scenario_2uavs.csv"); params = readScenarioCsv(csvPath); % Visualization settings diff --git a/aerpaw/run_uav.sh b/aerpaw/run_uav.sh index ee7ef20..91b9a91 100755 --- a/aerpaw/run_uav.sh +++ b/aerpaw/run_uav.sh @@ -32,8 +32,8 @@ else exit 1 fi -# Client config file (optional 2nd argument) -CONFIG_FILE="${2:-config/client.yaml}" +# Client config file: 2nd argument > AERPAW_CLIENT_CONFIG env var > default +CONFIG_FILE="${2:-${AERPAW_CLIENT_CONFIG:-config/client.yaml}}" if [ ! -f "$CONFIG_FILE" ]; then echo "Error: Config file not found: $CONFIG_FILE" exit 1 diff --git a/aerpaw/scripts/startVehicle.sh b/aerpaw/scripts/startVehicle.sh index b95cdc1..8477538 100755 --- a/aerpaw/scripts/startVehicle.sh +++ b/aerpaw/scripts/startVehicle.sh @@ -23,7 +23,7 @@ cd /root/miSim/aerpaw # Use screen/ts/tee aerpawism from sample script screen -S vehicle -dm \ - bash -c "stdbuf -oL -eL ./run_uav.sh testbed /root/miSim/aerpaw/config/client1.yaml \ + bash -c "stdbuf -oL -eL ./run_uav.sh testbed \ | ts $TS_FORMAT \ | tee $RESULTS_DIR/$LOG_PREFIX\_vehicle_log.txt" diff --git a/resources/project/erFP4mR9aK32bO4kZAlU-FeDikA/mvGRiPTuORJmVPdRh4fiJMWoTJAd.xml b/resources/project/erFP4mR9aK32bO4kZAlU-FeDikA/mvGRiPTuORJmVPdRh4fiJMWoTJAd.xml new file mode 100644 index 0000000..4356a6a --- /dev/null +++ b/resources/project/erFP4mR9aK32bO4kZAlU-FeDikA/mvGRiPTuORJmVPdRh4fiJMWoTJAd.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/resources/project/erFP4mR9aK32bO4kZAlU-FeDikA/mvGRiPTuORJmVPdRh4fiJMWoTJAp.xml b/resources/project/erFP4mR9aK32bO4kZAlU-FeDikA/mvGRiPTuORJmVPdRh4fiJMWoTJAp.xml new file mode 100644 index 0000000..01cb34e --- /dev/null +++ b/resources/project/erFP4mR9aK32bO4kZAlU-FeDikA/mvGRiPTuORJmVPdRh4fiJMWoTJAp.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/resources/project/q138eJA8Ym4eSfM3RFMVvg63QtU/erFP4mR9aK32bO4kZAlU-FeDikAd.xml b/resources/project/q138eJA8Ym4eSfM3RFMVvg63QtU/erFP4mR9aK32bO4kZAlU-FeDikAd.xml new file mode 100644 index 0000000..4356a6a --- /dev/null +++ b/resources/project/q138eJA8Ym4eSfM3RFMVvg63QtU/erFP4mR9aK32bO4kZAlU-FeDikAd.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/resources/project/q138eJA8Ym4eSfM3RFMVvg63QtU/erFP4mR9aK32bO4kZAlU-FeDikAp.xml b/resources/project/q138eJA8Ym4eSfM3RFMVvg63QtU/erFP4mR9aK32bO4kZAlU-FeDikAp.xml new file mode 100644 index 0000000..ea15762 --- /dev/null +++ b/resources/project/q138eJA8Ym4eSfM3RFMVvg63QtU/erFP4mR9aK32bO4kZAlU-FeDikAp.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/resources/project/vmVRNnXTZxyEiUtNp09z8POG4ww/s1FGL5Sd2djlHMPxH7Uz8GEn55cd.xml b/resources/project/vmVRNnXTZxyEiUtNp09z8POG4ww/s1FGL5Sd2djlHMPxH7Uz8GEn55cd.xml new file mode 100644 index 0000000..4356a6a --- /dev/null +++ b/resources/project/vmVRNnXTZxyEiUtNp09z8POG4ww/s1FGL5Sd2djlHMPxH7Uz8GEn55cd.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/resources/project/vmVRNnXTZxyEiUtNp09z8POG4ww/s1FGL5Sd2djlHMPxH7Uz8GEn55cp.xml b/resources/project/vmVRNnXTZxyEiUtNp09z8POG4ww/s1FGL5Sd2djlHMPxH7Uz8GEn55cp.xml new file mode 100644 index 0000000..83fd7dc --- /dev/null +++ b/resources/project/vmVRNnXTZxyEiUtNp09z8POG4ww/s1FGL5Sd2djlHMPxH7Uz8GEn55cp.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file