Compare commits
10 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a30dfe6be7 | |||
| 9c65bf7880 | |||
| fbcaa32abd | |||
| 09a10abfd5 | |||
| 87060ca123 | |||
| f7902ee220 | |||
| 5c90219322 | |||
| d3bdc80e64 | |||
| f3f9ec3db2 | |||
| 9564a5707f |
@@ -4,6 +4,7 @@
|
|||||||
*.autosave
|
*.autosave
|
||||||
*.slx.r*
|
*.slx.r*
|
||||||
*.mdl.r*
|
*.mdl.r*
|
||||||
|
*.bak
|
||||||
|
|
||||||
# Derived content-obscured files
|
# Derived content-obscured files
|
||||||
*.p
|
*.p
|
||||||
|
|||||||
+1
-1
@@ -69,7 +69,7 @@ classdef miSim
|
|||||||
obj.obstacles = {rectangularPrism};
|
obj.obstacles = {rectangularPrism};
|
||||||
obj.agents = {agent};
|
obj.agents = {agent};
|
||||||
end
|
end
|
||||||
[obj] = initialize(obj, domain, agents, barrierGain, barrierExponent, minAlt, timestep, maxIter, obstacles, makePlots, makeVideo);
|
[obj] = initialize(obj, domain, agents, barrierGain, barrierExponent, minAlt, timestep, maxIter, obstacles, makePlots, makeVideo, useDoubleIntegrator, dampingCoeff, useFixedTopology);
|
||||||
[obj] = initializeFromCsv(obj, csvPath);
|
[obj] = initializeFromCsv(obj, csvPath);
|
||||||
[obj] = initializeFromInits(obj, initsPath);
|
[obj] = initializeFromInits(obj, initsPath);
|
||||||
[obj] = plotFromSimHist(obj, initsPath, histPath);
|
[obj] = plotFromSimHist(obj, initsPath, histPath);
|
||||||
|
|||||||
@@ -11,6 +11,10 @@ function [obj] = run(obj)
|
|||||||
if obj.makeVideo
|
if obj.makeVideo
|
||||||
v = obj.setupVideoWriter();
|
v = obj.setupVideoWriter();
|
||||||
v.open();
|
v.open();
|
||||||
|
|
||||||
|
% Write initialization state frame in to video
|
||||||
|
I = getframe(obj.f);
|
||||||
|
v.writeVideo(I);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +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, useDoubleIntegrator, dampingCoeff, useFixedTopology
|
timestep, maxIter, minAlt, discretizationStep, protectedRange, initialStepSize, barrierGain, barrierExponent, collisionRadius, comRange, alphaDist, betaDist, alphaTilt, betaTilt, domainMin, domainMax, objectivePos, objectiveVar, sensorPerformanceMinimum, initialPositions, numObstacles, obstacleMin, obstacleMax, useDoubleIntegrator, dampingCoeff, useFixedTopology
|
||||||
1, 100, 30.0, 0.1, 2.0, 5, 1, 1, "6.0, 6.0", "25.0, 25.0", "80.0, 80.0", "0.25, 0.25", "5.0, 5.0", "0.1, 0.1", "0.0, 0.0, 0.0", "80.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", 1, 2.0, 1
|
1, 50, 35.0, 0.1, 2.0, 6, 1, 1, "8.0, 8.0", "35.0, 35.0", "80.0, 50.0", "0.25, 1.0", "8.0, 25.0", "0.1, 0.02", "0.0, 0.0, 0.0", "100.0, 100.0, 100.0", "60.0, 80.0, 45.0, 70.0", "70, 15, 15, 20, 20, 15, 15, 70", 0.15, "10.0, 10.0, 50.0, 40.0, 15.0, 45.0", 8, "0.0, 30.0, 0.0, 42.0, 30.0, 0.0, 84.0, 30.0, 0.0, 13.0, 60.0, 0.0, 55.0, 60.0, 0.0, 0.0, 90, 0.0, 42.0, 90.0, 0.0, 84.0, 90.0, 0.0", "16.0, 40.0, 100.0, 58.0, 40.0, 100.0, 100.0, 40.0, 100.0, 29.0, 70.0, 100.0, 71.0, 70.0, 100.0, 16.0, 100.0, 100.0, 58.0, 100.0, 100.0, 100.0, 100.0, 100.0", 0, 2.0, 1
|
||||||
|
@@ -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, useDoubleIntegrator, dampingCoeff, useFixedTopology
|
||||||
|
1, 80, 35.0, 0.1, 2.0, 6, 1, 1, "8.0, 8.0", "35.0, 35.0", "80.0, 50.0", "0.25, 1.0", "8.0, 25.0", "0.1, 0.02", "0.0, 0.0, 0.0", "100.0, 100.0, 100.0", "60.0, 80.0, 45.0, 70.0", "70, 15, 15, 20, 20, 15, 15, 70", 0.15, "15.0, 15.0, 50.0, 40.0, 10.0, 45.0", 8, "0.0, 30.0, 0.0, 42.0, 30.0, 0.0, 84.0, 30.0, 0.0, 13.0, 60.0, 0.0, 55.0, 60.0, 0.0, 0.0, 90, 0.0, 42.0, 90.0, 0.0, 84.0, 90.0, 0.0", "16.0, 40.0, 100.0, 58.0, 40.0, 100.0, 100.0, 40.0, 100.0, 29.0, 70.0, 100.0, 71.0, 70.0, 100.0, 16.0, 100.0, 100.0, 58.0, 100.0, 100.0, 100.0, 100.0, 100.0", 0, 2.0, 1
|
||||||
|
@@ -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, useDoubleIntegrator, dampingCoeff, useFixedTopology
|
||||||
|
1, 125, 35.0, 0.1, 2.0, 6, 1, 1, "8.0, 8.0", "35.0, 35.0", "80.0, 50.0", "0.25, 1.0", "8.0, 25.0", "0.1, 0.02", "0.0, 0.0, 0.0", "100.0, 100.0, 100.0", "30.0, 80.0", "60, 20, 20, 30", 0.15, "65.0, 15.0, 65.0, 65.0, 15.0, 45.0", 3, "0.0, 25.0, 55.0, 40.0, 10.0, 0.0, 40.0, 45.0, 60.0", "100.0, 70.0, 60.0, 45.0, 80.0, 55.0, 100.0, 50.0, 100.0", 0, 2.0, 1
|
||||||
|
@@ -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, useDoubleIntegrator, dampingCoeff, useFixedTopology
|
||||||
|
1, 100, 35.0, 0.1, 2.0, 6, 1, 1, "8.0, 8.0", "35.0, 35.0", "80.0, 80.0", "0.25, 0.25", "8.0, 8.0", "0.1, 0.1", "0.0, 0.0, 0.0", "100.0, 100.0, 100.0", "66.6, 66.6", "55, 35, 35, 55", 0.15, "15.0, 15.0, 50.0, 40.0, 15.0, 50.0", 1, "0.0, 35.0, 0.0", "50, 40.0, 60", 1, 2.0, 1
|
||||||
|
@@ -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, useDoubleIntegrator, dampingCoeff, useFixedTopology
|
||||||
|
1, 125, 35.0, 0.1, 2.0, 6, 1, 1, "8.0, 8.0", "35.0, 35.0", "80.0, 50.0", "0.25, 1.0", "8.0, 25.0", "0.1, 0.02", "0.0, 0.0, 0.0", "100.0, 100.0, 100.0", "30.0, 80.0", "60, 20, 20, 30", 0.15, "90.0, 10.0, 50.0, 65.0, 15.0, 45.0", 4, "0.0, 30.0, 0.0, 70.0, 30.0, 0.0, 0.0, 60.0, 0.0, 55.0, 60.0, 0.0", "50.0, 40.0, 100.0, 100.0, 40.0, 100.0, 35.0, 70.0, 100.0, 100.0, 70.0, 100.0", 0, 2.0, 1
|
||||||
|
+152
-125
@@ -158,6 +158,21 @@
|
|||||||
<Size type="coderapp.internal.codertype.Dimension"/>
|
<Size type="coderapp.internal.codertype.Dimension"/>
|
||||||
<Size type="coderapp.internal.codertype.Dimension"/>
|
<Size type="coderapp.internal.codertype.Dimension"/>
|
||||||
</Types>
|
</Types>
|
||||||
|
<Types id="32" type="coderapp.internal.codertype.PrimitiveType">
|
||||||
|
<ClassName>int32</ClassName>
|
||||||
|
<Size type="coderapp.internal.codertype.Dimension"/>
|
||||||
|
<Size type="coderapp.internal.codertype.Dimension"/>
|
||||||
|
</Types>
|
||||||
|
<Types id="33" type="coderapp.internal.codertype.PrimitiveType">
|
||||||
|
<ClassName>int32</ClassName>
|
||||||
|
<Size type="coderapp.internal.codertype.Dimension"/>
|
||||||
|
<Size type="coderapp.internal.codertype.Dimension"/>
|
||||||
|
</Types>
|
||||||
|
<Types id="34" type="coderapp.internal.codertype.PrimitiveType">
|
||||||
|
<ClassName>int32</ClassName>
|
||||||
|
<Size type="coderapp.internal.codertype.Dimension"/>
|
||||||
|
<Size type="coderapp.internal.codertype.Dimension"/>
|
||||||
|
</Types>
|
||||||
</Types>
|
</Types>
|
||||||
</coderapp.internal.interface.project.Interface>
|
</coderapp.internal.interface.project.Interface>
|
||||||
</MF0>
|
</MF0>
|
||||||
@@ -411,749 +426,761 @@
|
|||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="42" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="42" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/constrainMotion.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="43" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="43" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/constrainMotion.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="44" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="44" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller_data.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="45" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="45" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller_data.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="46" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="46" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller_initialize.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller_data.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="47" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="47" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller_initialize.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller_data.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="48" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="48" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller_internal_types.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller_initialize.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="49" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="49" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller_terminate.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller_initialize.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="50" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="50" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller_terminate.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller_internal_types.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="51" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="51" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller_types.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller_terminate.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="52" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="52" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/countsort.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller_terminate.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="53" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="53" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/countsort.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/controller_types.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="54" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="54" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/deleteColMoveEnd.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/countsort.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="55" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="55" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/deleteColMoveEnd.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/countsort.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="56" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="56" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/dot.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/deleteColMoveEnd.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="57" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="57" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/dot.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/deleteColMoveEnd.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="58" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="58" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/driver.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/dot.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="59" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="59" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/driver.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/dot.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="60" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="60" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/exp.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/driver.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="61" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="61" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/exp.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/driver.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="62" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="62" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/eye.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/exp.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="63" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="63" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/eye.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/exp.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="64" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="64" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/factorQR.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/eye.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="65" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="65" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/factorQR.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/eye.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="66" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="66" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/feasibleX0ForWorkingSet.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/factorQR.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="67" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="67" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/feasibleX0ForWorkingSet.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/factorQR.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="68" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="68" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/feasibleratiotest.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/feasibleX0ForWorkingSet.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="69" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="69" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/feasibleratiotest.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/feasibleX0ForWorkingSet.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="70" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="70" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/find.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/feasibleratiotest.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="71" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="71" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/find.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/feasibleratiotest.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="72" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="72" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/fullColLDL2_.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/find.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="73" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="73" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/fullColLDL2_.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/find.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="74" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="74" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/guidance_step.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/fullColLDL2_.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="75" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="75" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/guidance_step.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/fullColLDL2_.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="76" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="76" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/iterate.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/guidance_step.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="77" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="77" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/iterate.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/guidance_step.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="78" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="78" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/ixamax.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/iterate.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="79" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="79" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/ixamax.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/iterate.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="80" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="80" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/ixfun.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/ixamax.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="81" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="81" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/ixfun.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/ixamax.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="82" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="82" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/lesserNeighbor.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/ixfun.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="83" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="83" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/lesserNeighbor.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/ixfun.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="84" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="84" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/linearForm_.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/lesserNeighbor.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="85" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="85" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/linearForm_.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/lesserNeighbor.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="86" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="86" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/maxConstraintViolation.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/linearForm_.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="87" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="87" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/maxConstraintViolation.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/linearForm_.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="88" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="88" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/meshgrid.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/maxConstraintViolation.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="89" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="89" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/meshgrid.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/maxConstraintViolation.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="90" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="90" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/miSim.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/meshgrid.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="91" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="91" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/miSim.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/meshgrid.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="92" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="92" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/minOrMax.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/miSim.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="93" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="93" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/minOrMax.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/miSim.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="94" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="94" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/mpower.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/minOrMax.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="95" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="95" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/mpower.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/minOrMax.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="96" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="96" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/nchoosek.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/mpower.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="97" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="97" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/nchoosek.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/mpower.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="98" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="98" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/norm.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/nchoosek.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="99" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="99" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/norm.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/nchoosek.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="100" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="100" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/partition.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/norm.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="101" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="101" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/partition.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/norm.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="102" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="102" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/phaseone.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/partition.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="103" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="103" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/phaseone.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/partition.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="104" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="104" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/quadprog.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/phaseone.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="105" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="105" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/quadprog.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/phaseone.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="106" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="106" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/ratiotest.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/quadprog.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="107" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="107" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/ratiotest.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/quadprog.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="108" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="108" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rectangularPrism.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/ratiotest.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="109" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="109" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rectangularPrism.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/ratiotest.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="110" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="110" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/removeConstr.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rectangularPrism.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="111" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="111" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/removeConstr.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rectangularPrism.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="112" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="112" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/repmat.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/removeConstr.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="113" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="113" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/repmat.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/removeConstr.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="114" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="114" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rtGetInf.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/repmat.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="115" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="115" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rtGetInf.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/repmat.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="116" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="116" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rtGetNaN.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rtGetInf.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="117" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="117" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rtGetNaN.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rtGetInf.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="118" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="118" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rt_defines.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rtGetNaN.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="119" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="119" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rt_nonfinite.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rtGetNaN.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="120" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="120" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rt_nonfinite.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rt_defines.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="121" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="121" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rtwtypes.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rt_nonfinite.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="122" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="122" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/run.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rt_nonfinite.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="123" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="123" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/run.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/rtwtypes.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="124" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="124" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sensingObjective.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/run.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="125" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="125" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sensingObjective.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/run.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="126" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="126" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sensorPerformance.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sensingObjective.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="127" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="127" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sensorPerformance.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sensingObjective.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="128" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="128" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/setProblemType.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sensorPerformance.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="129" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="129" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/setProblemType.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sensorPerformance.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="130" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="130" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sigmoidSensor.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/setProblemType.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="131" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="131" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sigmoidSensor.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/setProblemType.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="132" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="132" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sort.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sigmoidSensor.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="133" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="133" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sort.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sigmoidSensor.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="134" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="134" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/spherical.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sort.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="135" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="135" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/spherical.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sort.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="136" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="136" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sprintf.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/spherical.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="137" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="137" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sprintf.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/spherical.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="138" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="138" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/squareQ_appendCol.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sprintf.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="139" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="139" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/squareQ_appendCol.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sprintf.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="140" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="140" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/string1.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/squareQ_appendCol.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="141" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="141" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/string1.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/squareQ_appendCol.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="142" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="142" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sum.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/string1.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="143" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="143" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sum.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/string1.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="144" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="144" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/triu.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sum.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="145" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="145" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/triu.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/sum.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="146" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="146" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/unique.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/triu.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="147" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="147" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/unique.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/triu.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="148" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="148" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/vecnorm.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/unique.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="149" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="149" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/vecnorm.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/unique.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="150" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="150" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xgemv.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/vecnorm.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="151" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="151" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xgemv.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/vecnorm.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="152" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="152" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xgeqp3.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xgemv.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="153" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="153" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xgeqp3.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xgemv.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="154" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="154" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xnrm2.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xgeqp3.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="155" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="155" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xnrm2.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xgeqp3.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="156" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="156" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xrotg.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xnrm2.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="157" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="157" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xrotg.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xnrm2.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="158" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="158" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xzgeqp3.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xrotg.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="159" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="159" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xzgeqp3.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xrotg.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="160" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="160" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xzlarf.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xzgeqp3.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="161" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="161" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xzlarf.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xzgeqp3.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="162" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="162" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xzlarfg.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xzlarf.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="163" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="163" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xzlarfg.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xzlarf.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="164" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="164" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/matlab/R2025a/extern/include/tmwtypes.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xzlarfg.cpp</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="165" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="165" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/examples/main.cpp</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/xzlarfg.h</Path>
|
||||||
</File>
|
</File>
|
||||||
<Type>GENERATED_SOURCE</Type>
|
<Type>GENERATED_SOURCE</Type>
|
||||||
</Artifacts>
|
</Artifacts>
|
||||||
<Artifacts id="166" type="coderapp.internal.build.mfz.CodegenArtifact">
|
<Artifacts id="166" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
|
<Path>/home/kdee/matlab/R2025a/extern/include/tmwtypes.h</Path>
|
||||||
|
</File>
|
||||||
|
<Type>GENERATED_SOURCE</Type>
|
||||||
|
</Artifacts>
|
||||||
|
<Artifacts id="167" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/examples/main.cpp</Path>
|
||||||
|
</File>
|
||||||
|
<Type>GENERATED_SOURCE</Type>
|
||||||
|
</Artifacts>
|
||||||
|
<Artifacts id="168" type="coderapp.internal.build.mfz.CodegenArtifact">
|
||||||
<File type="coderapp.internal.util.mfz.FileSpec">
|
<File type="coderapp.internal.util.mfz.FileSpec">
|
||||||
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/examples/main.h</Path>
|
<Path>/home/kdee/Desktop/miSim/aerpaw/codegen/examples/main.h</Path>
|
||||||
</File>
|
</File>
|
||||||
@@ -1161,7 +1188,7 @@
|
|||||||
</Artifacts>
|
</Artifacts>
|
||||||
<BuildFolder type="coderapp.internal.util.mfz.FileSpec"/>
|
<BuildFolder type="coderapp.internal.util.mfz.FileSpec"/>
|
||||||
<Success>true</Success>
|
<Success>true</Success>
|
||||||
<Timestamp>2026-04-05T13:43:54</Timestamp>
|
<Timestamp>2026-04-07T22:43:01</Timestamp>
|
||||||
</MainBuildResult>
|
</MainBuildResult>
|
||||||
</coderapp.internal.mlc.mfz.MatlabCoderProjectState>
|
</coderapp.internal.mlc.mfz.MatlabCoderProjectState>
|
||||||
</MF0>
|
</MF0>
|
||||||
|
|||||||
+118
-34
@@ -7,57 +7,47 @@ coder.extrinsic('disp', 'readScenarioCsv');
|
|||||||
|
|
||||||
% Maximum clients supported (one initial position per UAV)
|
% Maximum clients supported (one initial position per UAV)
|
||||||
MAX_CLIENTS = 4;
|
MAX_CLIENTS = 4;
|
||||||
% Two waypoints per UAV: altitude-staggered transit + final position
|
% Three waypoints per UAV: one axis-aligned move per dimension (taxicab flyout/flyback)
|
||||||
MAX_TARGETS = MAX_CLIENTS * 2;
|
MAX_TARGETS = MAX_CLIENTS * 3;
|
||||||
|
|
||||||
|
% Taxicab flyout/flyback only supports exactly 2 UAVs
|
||||||
|
if numClients ~= int32(2)
|
||||||
|
error('Taxicab flyout/flyback requires exactly 2 UAVs');
|
||||||
|
end
|
||||||
|
|
||||||
% Allocate targets array (MAX_TARGETS x 3)
|
% Allocate targets array (MAX_TARGETS x 3)
|
||||||
targets = zeros(MAX_TARGETS, 3);
|
targets = zeros(MAX_TARGETS, 3);
|
||||||
numWaypoints = int32(0);
|
numWaypoints = int32(0);
|
||||||
totalLoaded = int32(0); % pre-declare type for coder.ceval %#ok<NASGU>
|
totalLoaded = int32(0); % pre-declare type for coder.ceval %#ok<NASGU>
|
||||||
|
|
||||||
% Load initial UAV positions from scenario CSV
|
% Experiment start positions from scenario CSV (N x 3)
|
||||||
|
scenarioPositions = zeros(MAX_CLIENTS, 3);
|
||||||
|
|
||||||
|
% Load experiment start positions from scenario CSV
|
||||||
if coder.target('MATLAB')
|
if coder.target('MATLAB')
|
||||||
disp('Loading initial positions from scenario.csv (simulation)...');
|
disp('Loading initial positions from scenario.csv (simulation)...');
|
||||||
tmpSim = miSim;
|
tmpSim = miSim;
|
||||||
sc = tmpSim.readScenarioCsv('aerpaw/config/scenario.csv');
|
sc = tmpSim.readScenarioCsv('aerpaw/config/scenario.csv');
|
||||||
flatPos = double(sc.initialPositions); % 1×(3*N) flat vector
|
flatPos = double(sc.initialPositions); % 1×(3*N) flat vector
|
||||||
posMatrix = reshape(flatPos, 3, [])'; % N×3, same layout as initializeFromCsv
|
posMatrix = reshape(flatPos, 3, [])'; % N×3
|
||||||
totalLoaded = int32(size(posMatrix, 1));
|
totalLoaded = int32(size(posMatrix, 1));
|
||||||
|
scenarioPositions(1:totalLoaded, :) = posMatrix;
|
||||||
|
% MATLAB path: send directly to scenario positions in one waypoint
|
||||||
targets(1:totalLoaded, :) = posMatrix;
|
targets(1:totalLoaded, :) = posMatrix;
|
||||||
numWaypoints = int32(1);
|
numWaypoints = int32(1);
|
||||||
disp(['Loaded ', num2str(double(totalLoaded)), ' initial positions']);
|
disp(['Loaded ', num2str(double(totalLoaded)), ' initial positions']);
|
||||||
else
|
else
|
||||||
coder.cinclude('controller_impl.h');
|
coder.cinclude('controller_impl.h');
|
||||||
filename = ['config/scenario.csv', char(0)];
|
filename = ['config/scenario.csv', char(0)];
|
||||||
|
% Load into targets temporarily; copy to scenarioPositions below
|
||||||
totalLoaded = coder.ceval('loadInitialPositions', coder.ref(filename), ...
|
totalLoaded = coder.ceval('loadInitialPositions', coder.ref(filename), ...
|
||||||
coder.ref(targets), int32(MAX_TARGETS));
|
coder.ref(targets), int32(MAX_TARGETS));
|
||||||
numWaypoints = totalLoaded / int32(numClients);
|
scenarioPositions(1:totalLoaded, :) = targets(1:totalLoaded, :);
|
||||||
end
|
numWaypoints = int32(3);
|
||||||
|
|
||||||
% In the compiled path, inject altitude-staggered transit waypoints so UAVs
|
|
||||||
% are vertically separated while flying horizontally to their start positions.
|
|
||||||
% ArduPilot reaches target altitude before horizontal movement, so UAV i is at
|
|
||||||
% altitude (TRANSIT_ALT_BASE + (i-1)*TRANSIT_ALT_STEP) throughout its transit,
|
|
||||||
% preventing collisions regardless of horizontal path geometry.
|
|
||||||
% TRANSIT_ALT_STEP must exceed 2 * max(collisionRadius).
|
|
||||||
% Waypoint 1: each UAV flies to (finalX, finalY) at its unique transit altitude.
|
|
||||||
% Waypoint 2: each UAV adjusts to its actual target altitude.
|
|
||||||
if ~coder.target('MATLAB')
|
|
||||||
TRANSIT_ALT_BASE = 25.0; % must match drone.takeoff() altitude in uav_runner.py
|
|
||||||
TRANSIT_ALT_STEP = 12.1; % vertical separation per UAV (m); must exceed 2*collisionRadius
|
|
||||||
for ii = double(totalLoaded):-1:1
|
|
||||||
transitRow = (ii - 1) * 2 + 1;
|
|
||||||
finalRow = (ii - 1) * 2 + 2;
|
|
||||||
finalPos = targets(ii, :);
|
|
||||||
transitAlt = TRANSIT_ALT_BASE + (ii - 1) * TRANSIT_ALT_STEP;
|
|
||||||
targets(finalRow, :) = finalPos;
|
|
||||||
targets(transitRow, :) = [finalPos(1), finalPos(2), transitAlt];
|
|
||||||
end
|
|
||||||
numWaypoints = int32(2);
|
|
||||||
end
|
end
|
||||||
|
|
||||||
% Load guidance scenario from CSV (parameters for guidance_step)
|
% Load guidance scenario from CSV (parameters for guidance_step)
|
||||||
NUM_SCENARIO_PARAMS = 45;
|
NUM_SCENARIO_PARAMS = 48;
|
||||||
MAX_OBSTACLES_CTRL = int32(8);
|
MAX_OBSTACLES_CTRL = int32(8);
|
||||||
scenarioParams = zeros(1, NUM_SCENARIO_PARAMS);
|
scenarioParams = zeros(1, NUM_SCENARIO_PARAMS);
|
||||||
obstacleMin = zeros(MAX_OBSTACLES_CTRL, 3);
|
obstacleMin = zeros(MAX_OBSTACLES_CTRL, 3);
|
||||||
@@ -91,6 +81,46 @@ for i = 1:numClients
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
% Query takeoff-pad GPS positions before sending any waypoints.
|
||||||
|
% These are also the flyback targets so each UAV lands where it took off.
|
||||||
|
initialPositions = zeros(MAX_CLIENTS, 3);
|
||||||
|
if ~coder.target('MATLAB')
|
||||||
|
coder.ceval('sendRequestPositions', int32(numClients));
|
||||||
|
coder.ceval('recvPositions', int32(numClients), coder.ref(initialPositions), int32(MAX_CLIENTS));
|
||||||
|
else
|
||||||
|
% Simulation: treat scenario positions as the takeoff locations
|
||||||
|
initialPositions(1:totalLoaded, :) = scenarioPositions(1:totalLoaded, :);
|
||||||
|
end
|
||||||
|
|
||||||
|
% ---- Build taxicab flyout waypoints ------------------------------------------
|
||||||
|
% Determine which UAV has the higher final altitude; it moves Z first so it
|
||||||
|
% clears vertical separation before the lower UAV converges on the same X/Y.
|
||||||
|
% Higher UAV order: Z → Y → X
|
||||||
|
% Lower UAV order: X → Y → Z
|
||||||
|
if ~coder.target('MATLAB')
|
||||||
|
if scenarioPositions(1, 3) >= scenarioPositions(2, 3)
|
||||||
|
higherIdx = int32(1);
|
||||||
|
lowerIdx = int32(2);
|
||||||
|
else
|
||||||
|
higherIdx = int32(2);
|
||||||
|
lowerIdx = int32(1);
|
||||||
|
end
|
||||||
|
|
||||||
|
hBase = double(higherIdx - 1) * double(numWaypoints);
|
||||||
|
lBase = double(lowerIdx - 1) * double(numWaypoints);
|
||||||
|
|
||||||
|
% Higher UAV: Z first
|
||||||
|
targets(hBase + 1, :) = [initialPositions(higherIdx,1), initialPositions(higherIdx,2), scenarioPositions(higherIdx,3)];
|
||||||
|
targets(hBase + 2, :) = [initialPositions(higherIdx,1), scenarioPositions(higherIdx,2), scenarioPositions(higherIdx,3)];
|
||||||
|
targets(hBase + 3, :) = scenarioPositions(higherIdx, :);
|
||||||
|
|
||||||
|
% Lower UAV: X first
|
||||||
|
targets(lBase + 1, :) = [scenarioPositions(lowerIdx,1), initialPositions(lowerIdx,2), initialPositions(lowerIdx,3)];
|
||||||
|
targets(lBase + 2, :) = [scenarioPositions(lowerIdx,1), scenarioPositions(lowerIdx,2), initialPositions(lowerIdx,3)];
|
||||||
|
targets(lBase + 3, :) = scenarioPositions(lowerIdx, :);
|
||||||
|
end
|
||||||
|
% ------------------------------------------------------------------------------
|
||||||
|
|
||||||
% Waypoint loop: send each waypoint to all clients, wait for all to arrive
|
% Waypoint loop: send each waypoint to all clients, wait for all to arrive
|
||||||
for w = 1:numWaypoints
|
for w = 1:numWaypoints
|
||||||
% Send TARGET for waypoint w to each client
|
% Send TARGET for waypoint w to each client
|
||||||
@@ -101,7 +131,7 @@ for w = 1:numWaypoints
|
|||||||
target = targets(targetIdx, :);
|
target = targets(targetIdx, :);
|
||||||
|
|
||||||
if coder.target('MATLAB')
|
if coder.target('MATLAB')
|
||||||
disp([datestr(now, 'HH:MM:SS'), ' Sending TARGET to client ', num2str(i), ' (waypoint ', num2str(w), '): ', ...
|
disp(['Sending TARGET to client ', num2str(i), ' (waypoint ', num2str(w), '): ', ...
|
||||||
num2str(target(1)), ',', num2str(target(2)), ',', num2str(target(3))]);
|
num2str(target(1)), ',', num2str(target(2)), ',', num2str(target(3))]);
|
||||||
else
|
else
|
||||||
coder.ceval('sendTarget', int32(i), coder.ref(target));
|
coder.ceval('sendTarget', int32(i), coder.ref(target));
|
||||||
@@ -126,8 +156,13 @@ for w = 1:numWaypoints
|
|||||||
end
|
end
|
||||||
|
|
||||||
% ---- Phase 2: miSim guidance loop ----------------------------------------
|
% ---- Phase 2: miSim guidance loop ----------------------------------------
|
||||||
% Guidance parameters (adjust here and recompile as needed)
|
% Number of guidance steps comes from maxIter in scenario.csv (scenarioParams(2))
|
||||||
MAX_GUIDANCE_STEPS = int32(100); % number of guidance iterations
|
% so the controller and the agent step-decay schedule stay in sync.
|
||||||
|
if coder.target('MATLAB')
|
||||||
|
MAX_GUIDANCE_STEPS = int32(sc.maxIter);
|
||||||
|
else
|
||||||
|
MAX_GUIDANCE_STEPS = int32(scenarioParams(2));
|
||||||
|
end
|
||||||
|
|
||||||
% Enter guidance mode on all clients
|
% Enter guidance mode on all clients
|
||||||
if ~coder.target('MATLAB')
|
if ~coder.target('MATLAB')
|
||||||
@@ -140,14 +175,18 @@ if ~coder.target('MATLAB')
|
|||||||
coder.ceval('sendRequestPositions', int32(numClients));
|
coder.ceval('sendRequestPositions', int32(numClients));
|
||||||
coder.ceval('recvPositions', int32(numClients), coder.ref(positions), int32(MAX_CLIENTS));
|
coder.ceval('recvPositions', int32(numClients), coder.ref(positions), int32(MAX_CLIENTS));
|
||||||
else
|
else
|
||||||
% Simulation: seed positions from CSV waypoints so agents don't start at origin
|
% Simulation: seed positions from scenario positions so agents don't start at origin
|
||||||
positions(1:totalLoaded, :) = targets(1:totalLoaded, :);
|
positions(1:totalLoaded, :) = scenarioPositions(1:totalLoaded, :);
|
||||||
end
|
end
|
||||||
guidance_step(positions(1:numClients, :), true, ...
|
guidance_step(positions(1:numClients, :), true, ...
|
||||||
scenarioParams, obstacleMin, obstacleMax, numObstacles);
|
scenarioParams, obstacleMin, obstacleMax, numObstacles);
|
||||||
|
|
||||||
% Main guidance loop (event-triggered)
|
% Main guidance loop (event-triggered)
|
||||||
for step = 1:MAX_GUIDANCE_STEPS
|
for step = 1:MAX_GUIDANCE_STEPS
|
||||||
|
if ~coder.target('MATLAB')
|
||||||
|
coder.ceval('setGuidanceStep', int32(step), int32(MAX_GUIDANCE_STEPS));
|
||||||
|
end
|
||||||
|
|
||||||
% Run one guidance step: feed current GPS positions in, get targets out
|
% Run one guidance step: feed current GPS positions in, get targets out
|
||||||
nextPositions = guidance_step(positions(1:numClients, :), false, ...
|
nextPositions = guidance_step(positions(1:numClients, :), false, ...
|
||||||
scenarioParams, obstacleMin, obstacleMax, numObstacles);
|
scenarioParams, obstacleMin, obstacleMax, numObstacles);
|
||||||
@@ -158,7 +197,7 @@ for step = 1:MAX_GUIDANCE_STEPS
|
|||||||
if ~coder.target('MATLAB')
|
if ~coder.target('MATLAB')
|
||||||
coder.ceval('sendTarget', int32(i), coder.ref(target));
|
coder.ceval('sendTarget', int32(i), coder.ref(target));
|
||||||
else
|
else
|
||||||
disp([datestr(now, 'HH:MM:SS'), ' [guidance] target UAV ', num2str(i), ': ', num2str(target)]);
|
disp(['[step ', num2str(step), '] target UAV ', num2str(i), ': ', num2str(target)]);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -187,6 +226,51 @@ if ~coder.target('MATLAB')
|
|||||||
% last guidance navigation and is back in sequential (ACK/READY) mode.
|
% last guidance navigation and is back in sequential (ACK/READY) mode.
|
||||||
coder.ceval('waitForAllMessageType', int32(numClients), ...
|
coder.ceval('waitForAllMessageType', int32(numClients), ...
|
||||||
int32(MESSAGE_TYPE.ACK));
|
int32(MESSAGE_TYPE.ACK));
|
||||||
|
% Reset step counter so post-guidance logging carries no step prefix.
|
||||||
|
coder.ceval('setGuidanceStep', int32(0), int32(MAX_GUIDANCE_STEPS));
|
||||||
|
end
|
||||||
|
% --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
% ---- Taxicab flyback: return each UAV to its takeoff-pad position ---------
|
||||||
|
% The UAV that ended guidance at the higher altitude moves Z last (X → Y → Z)
|
||||||
|
% so it stays high while the lower UAV descends first, maintaining separation
|
||||||
|
% as both converge back on their respective home X/Y positions.
|
||||||
|
NUM_RETURN_WP = int32(3);
|
||||||
|
returnTargets = zeros(MAX_TARGETS, 3);
|
||||||
|
|
||||||
|
if ~coder.target('MATLAB')
|
||||||
|
if positions(1, 3) >= positions(2, 3)
|
||||||
|
higherRetIdx = int32(1);
|
||||||
|
lowerRetIdx = int32(2);
|
||||||
|
else
|
||||||
|
higherRetIdx = int32(2);
|
||||||
|
lowerRetIdx = int32(1);
|
||||||
|
end
|
||||||
|
|
||||||
|
hRetBase = double(higherRetIdx - 1) * double(NUM_RETURN_WP);
|
||||||
|
lRetBase = double(lowerRetIdx - 1) * double(NUM_RETURN_WP);
|
||||||
|
|
||||||
|
% Higher post-guidance UAV: X → Y → Z (descend last)
|
||||||
|
returnTargets(hRetBase + 1, :) = [initialPositions(higherRetIdx,1), positions(higherRetIdx,2), positions(higherRetIdx,3)];
|
||||||
|
returnTargets(hRetBase + 2, :) = [initialPositions(higherRetIdx,1), initialPositions(higherRetIdx,2), positions(higherRetIdx,3)];
|
||||||
|
returnTargets(hRetBase + 3, :) = initialPositions(higherRetIdx, :);
|
||||||
|
|
||||||
|
% Lower post-guidance UAV: Z → Y → X (descend first)
|
||||||
|
returnTargets(lRetBase + 1, :) = [positions(lowerRetIdx,1), positions(lowerRetIdx,2), initialPositions(lowerRetIdx,3)];
|
||||||
|
returnTargets(lRetBase + 2, :) = [positions(lowerRetIdx,1), initialPositions(lowerRetIdx,2), initialPositions(lowerRetIdx,3)];
|
||||||
|
returnTargets(lRetBase + 3, :) = initialPositions(lowerRetIdx, :);
|
||||||
|
|
||||||
|
for w = 1:NUM_RETURN_WP
|
||||||
|
for i = 1:numClients
|
||||||
|
retIdx = double(i - 1) * double(NUM_RETURN_WP) + w;
|
||||||
|
retTarget = returnTargets(retIdx, :);
|
||||||
|
coder.ceval('sendTarget', int32(i), coder.ref(retTarget));
|
||||||
|
end
|
||||||
|
coder.ceval('waitForAllMessageType', int32(numClients), int32(MESSAGE_TYPE.ACK));
|
||||||
|
coder.ceval('waitForAllMessageType', int32(numClients), int32(MESSAGE_TYPE.READY));
|
||||||
|
end
|
||||||
|
else
|
||||||
|
disp('Taxicab return (simulation): UAVs commanded back to takeoff positions.');
|
||||||
end
|
end
|
||||||
% --------------------------------------------------------------------------
|
% --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
+13
-3
@@ -29,6 +29,9 @@ function nextPositions = guidance_step(currentPositions, isInit, ...
|
|||||||
% 39-40 objectivePos
|
% 39-40 objectivePos
|
||||||
% 41-44 objectiveVar (2x2, col-major)
|
% 41-44 objectiveVar (2x2, col-major)
|
||||||
% 45 sensorPerformanceMinimum
|
% 45 sensorPerformanceMinimum
|
||||||
|
% 46 useDoubleIntegrator
|
||||||
|
% 47 dampingCoeff
|
||||||
|
% 48 useFixedTopology
|
||||||
% obstacleMin (MAX_OBSTACLES × 3) double column-major obstacle corners (compiled path)
|
% obstacleMin (MAX_OBSTACLES × 3) double column-major obstacle corners (compiled path)
|
||||||
% obstacleMax (MAX_OBSTACLES × 3) double
|
% obstacleMax (MAX_OBSTACLES × 3) double
|
||||||
% numObstacles (1,1) int32 actual obstacle count
|
% numObstacles (1,1) int32 actual obstacle count
|
||||||
@@ -94,6 +97,9 @@ if isInit
|
|||||||
OBJECTIVE_GROUND_POS = scenarioParams(39:40);
|
OBJECTIVE_GROUND_POS = scenarioParams(39:40);
|
||||||
OBJECTIVE_VAR = reshape(scenarioParams(41:44), 2, 2);
|
OBJECTIVE_VAR = reshape(scenarioParams(41:44), 2, 2);
|
||||||
SENSOR_PERFORMANCE_MINIMUM = scenarioParams(45);
|
SENSOR_PERFORMANCE_MINIMUM = scenarioParams(45);
|
||||||
|
USE_DOUBLE_INTEGRATOR = logical(scenarioParams(46));
|
||||||
|
DAMPING_COEFF = scenarioParams(47);
|
||||||
|
USE_FIXED_TOPOLOGY = logical(scenarioParams(48));
|
||||||
|
|
||||||
% --- Build domain geometry ---
|
% --- Build domain geometry ---
|
||||||
dom = rectangularPrism;
|
dom = rectangularPrism;
|
||||||
@@ -146,7 +152,8 @@ if isInit
|
|||||||
% --- Initialise simulation (plots and video disabled) ---
|
% --- Initialise simulation (plots and video disabled) ---
|
||||||
sim = miSim;
|
sim = miSim;
|
||||||
sim = sim.initialize(dom, agentList, BARRIER_GAIN, BARRIER_EXPONENT, ...
|
sim = sim.initialize(dom, agentList, BARRIER_GAIN, BARRIER_EXPONENT, ...
|
||||||
MIN_ALT, TIMESTEP, MAX_ITER, obstacleList, false, false);
|
MIN_ALT, TIMESTEP, MAX_ITER, obstacleList, false, false, ...
|
||||||
|
USE_DOUBLE_INTEGRATOR, DAMPING_COEFF, USE_FIXED_TOPOLOGY);
|
||||||
end
|
end
|
||||||
|
|
||||||
% On the init call return current positions unchanged
|
% On the init call return current positions unchanged
|
||||||
@@ -176,7 +183,9 @@ else
|
|||||||
sim.timestepIndex = sim.timestepIndex + 1;
|
sim.timestepIndex = sim.timestepIndex + 1;
|
||||||
|
|
||||||
% 3. Update communications topology (Lesser Neighbour Assignment)
|
% 3. Update communications topology (Lesser Neighbour Assignment)
|
||||||
sim = sim.lesserNeighbor();
|
if ~sim.useFixedTopology
|
||||||
|
sim = sim.lesserNeighbor();
|
||||||
|
end
|
||||||
|
|
||||||
% 4. Compute Voronoi partitioning
|
% 4. Compute Voronoi partitioning
|
||||||
sim.partitioning = sim.agents{1}.partition(sim.agents, sim.domain.objective);
|
sim.partitioning = sim.agents{1}.partition(sim.agents, sim.domain.objective);
|
||||||
@@ -184,7 +193,8 @@ else
|
|||||||
% 5. Unconstrained gradient-ascent step for each agent
|
% 5. Unconstrained gradient-ascent step for each agent
|
||||||
for ii = 1:size(sim.agents, 1)
|
for ii = 1:size(sim.agents, 1)
|
||||||
sim.agents{ii} = sim.agents{ii}.run(sim.domain, sim.partitioning, ...
|
sim.agents{ii} = sim.agents{ii}.run(sim.domain, sim.partitioning, ...
|
||||||
sim.timestepIndex, ii, sim.agents);
|
sim.timestepIndex, ii, sim.agents, ...
|
||||||
|
sim.useDoubleIntegrator, sim.dampingCoeff, sim.timestep);
|
||||||
end
|
end
|
||||||
|
|
||||||
% 6. Apply CBF safety filter (collision / comms / domain constraints via QP)
|
% 6. Apply CBF safety filter (collision / comms / domain constraints via QP)
|
||||||
|
|||||||
@@ -16,6 +16,44 @@
|
|||||||
|
|
||||||
static int serverSocket = -1;
|
static int serverSocket = -1;
|
||||||
static std::vector<int> clientSockets;
|
static std::vector<int> clientSockets;
|
||||||
|
static int guidanceStep = 0;
|
||||||
|
static int guidanceTotalSteps = 0;
|
||||||
|
static struct timespec lastStepTime = {0, 0};
|
||||||
|
|
||||||
|
// During guidance returns "(%d/%d) "; outside guidance returns "HH:MM:SS ".
|
||||||
|
static std::string logPrefix() {
|
||||||
|
if (guidanceStep > 0) {
|
||||||
|
char buf[32];
|
||||||
|
snprintf(buf, sizeof(buf), "(%d/%d) ", guidanceStep, guidanceTotalSteps);
|
||||||
|
return std::string(buf);
|
||||||
|
}
|
||||||
|
time_t now = time(nullptr);
|
||||||
|
struct tm* lt = localtime(&now);
|
||||||
|
char ts[16];
|
||||||
|
strftime(ts, sizeof(ts), "%H:%M:%S", lt);
|
||||||
|
return std::string(ts) + " ";
|
||||||
|
}
|
||||||
|
|
||||||
|
void setGuidanceStep(int step, int totalSteps) {
|
||||||
|
struct timespec now;
|
||||||
|
clock_gettime(CLOCK_MONOTONIC, &now);
|
||||||
|
|
||||||
|
// From step 2 onward, elapsed = setGuidanceStep(N-1) → setGuidanceStep(N),
|
||||||
|
// which spans the full prior iteration: guidance computation + target send
|
||||||
|
// + flight + position request/receive.
|
||||||
|
if (step > 1 && lastStepTime.tv_sec != 0) {
|
||||||
|
double elapsed = (now.tv_sec - lastStepTime.tv_sec)
|
||||||
|
+ (now.tv_nsec - lastStepTime.tv_nsec) * 1e-9;
|
||||||
|
guidanceStep = step;
|
||||||
|
guidanceTotalSteps = totalSteps;
|
||||||
|
std::cout << logPrefix() << "Iteration duration: " << elapsed << " s\n";
|
||||||
|
} else {
|
||||||
|
guidanceStep = step;
|
||||||
|
guidanceTotalSteps = totalSteps;
|
||||||
|
}
|
||||||
|
|
||||||
|
lastStepTime = now;
|
||||||
|
}
|
||||||
|
|
||||||
void initSockets() {}
|
void initSockets() {}
|
||||||
void cleanupSockets() {}
|
void cleanupSockets() {}
|
||||||
@@ -186,7 +224,10 @@ static int readScenarioDataRow(const char* filename, char* line, int lineSize) {
|
|||||||
// 35-37: domainMax (east, north, up)
|
// 35-37: domainMax (east, north, up)
|
||||||
// 38-39: objectivePos (east, north)
|
// 38-39: objectivePos (east, north)
|
||||||
// 40-43: objectiveVar (2x2 col-major: v11, v12, v21, v22)
|
// 40-43: objectiveVar (2x2 col-major: v11, v12, v21, v22)
|
||||||
// 44 : sensorPerformanceMinimum
|
// 44 : sensorPerformanceMinimum (CSV column 18)
|
||||||
|
// 45 : useDoubleIntegrator (CSV column 23; 0=single-integrator, 1=double-integrator)
|
||||||
|
// 46 : dampingCoeff (CSV column 24)
|
||||||
|
// 47 : useFixedTopology (CSV column 25; 0=dynamic lesser-neighbor, 1=fixed)
|
||||||
// Returns 1 on success, 0 on failure.
|
// Returns 1 on success, 0 on failure.
|
||||||
int loadScenario(const char* filename, double* params) {
|
int loadScenario(const char* filename, double* params) {
|
||||||
char line[4096];
|
char line[4096];
|
||||||
@@ -198,8 +239,8 @@ int loadScenario(const char* filename, double* params) {
|
|||||||
|
|
||||||
char* fields[32];
|
char* fields[32];
|
||||||
int nf = splitCSVRow(copy, fields, 32);
|
int nf = splitCSVRow(copy, fields, 32);
|
||||||
if (nf < 19) {
|
if (nf < 26) {
|
||||||
fprintf(stderr, "loadScenario: expected >=19 columns, got %d\n", nf);
|
fprintf(stderr, "loadScenario: expected >=26 columns, got %d\n", nf);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -290,6 +331,24 @@ int loadScenario(const char* filename, double* params) {
|
|||||||
params[44] = atof(trimField(tmp));
|
params[44] = atof(trimField(tmp));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// useDoubleIntegrator: column 23
|
||||||
|
{
|
||||||
|
char tmp[64]; strncpy(tmp, fields[23], sizeof(tmp) - 1); tmp[sizeof(tmp)-1] = '\0';
|
||||||
|
params[45] = atof(trimField(tmp));
|
||||||
|
}
|
||||||
|
|
||||||
|
// dampingCoeff: column 24
|
||||||
|
{
|
||||||
|
char tmp[64]; strncpy(tmp, fields[24], sizeof(tmp) - 1); tmp[sizeof(tmp)-1] = '\0';
|
||||||
|
params[46] = atof(trimField(tmp));
|
||||||
|
}
|
||||||
|
|
||||||
|
// useFixedTopology: column 25
|
||||||
|
{
|
||||||
|
char tmp[64]; strncpy(tmp, fields[25], sizeof(tmp) - 1); tmp[sizeof(tmp)-1] = '\0';
|
||||||
|
params[47] = atof(trimField(tmp));
|
||||||
|
}
|
||||||
|
|
||||||
printf("Loaded scenario: domain [%g,%g,%g] to [%g,%g,%g]\n",
|
printf("Loaded scenario: domain [%g,%g,%g] to [%g,%g,%g]\n",
|
||||||
params[32], params[33], params[34], params[35], params[36], params[37]);
|
params[32], params[33], params[34], params[35], params[36], params[37]);
|
||||||
return 1;
|
return 1;
|
||||||
@@ -430,18 +489,22 @@ static const char* messageTypeName(uint8_t msgType) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send a single-byte message type to a client
|
// Send a single-byte message type to a client (no logging)
|
||||||
int sendMessageType(int clientId, int msgType) {
|
static int sendMessageTypeRaw(int clientId, int msgType) {
|
||||||
if (clientId <= 0 || clientId > (int)clientSockets.size()) return 0;
|
if (clientId <= 0 || clientId > (int)clientSockets.size()) return 0;
|
||||||
|
|
||||||
uint8_t msg = (uint8_t)msgType;
|
uint8_t msg = (uint8_t)msgType;
|
||||||
ssize_t sent = send(clientSockets[clientId - 1], &msg, 1, 0);
|
ssize_t sent = send(clientSockets[clientId - 1], &msg, 1, 0);
|
||||||
if (sent != 1) {
|
if (sent != 1) {
|
||||||
std::cerr << "Send failed for client " << clientId << "\n";
|
std::cerr << "Send failed for client " << clientId << "\n";
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
std::cout << "Sent " << messageTypeName(msg) << " to client " << clientId << "\n";
|
// Send a single-byte message type to a client
|
||||||
|
int sendMessageType(int clientId, int msgType) {
|
||||||
|
if (!sendMessageTypeRaw(clientId, msgType)) return 0;
|
||||||
|
std::cout << logPrefix() << "Sent " << messageTypeName((uint8_t)msgType) << " to client " << clientId << "\n";
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -460,13 +523,7 @@ int sendTarget(int clientId, const double* coords) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Timestamp
|
std::cout << logPrefix() << "Sent TARGET to client " << clientId << ": "
|
||||||
time_t now = time(nullptr);
|
|
||||||
struct tm* lt = localtime(&now);
|
|
||||||
char ts[16];
|
|
||||||
strftime(ts, sizeof(ts), "%H:%M:%S", lt);
|
|
||||||
|
|
||||||
std::cout << ts << " Sent TARGET to client " << clientId << ": "
|
|
||||||
<< coords[0] << "," << coords[1] << "," << coords[2] << "\n";
|
<< coords[0] << "," << coords[1] << "," << coords[2] << "\n";
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -514,31 +571,36 @@ int waitForAllMessageType(int numClients, int expectedType) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
std::cout << "Received " << messageTypeName(msgType) << " from client " << (i + 1) << "\n";
|
|
||||||
|
|
||||||
if (msgType == expected) {
|
if (msgType == expected) {
|
||||||
completed[i] = true;
|
completed[i] = true;
|
||||||
completedCount++;
|
completedCount++;
|
||||||
|
} else {
|
||||||
|
std::cerr << logPrefix() << "Unexpected " << messageTypeName(msgType)
|
||||||
|
<< " from client " << (i + 1)
|
||||||
|
<< " (expected " << messageTypeName(expected) << ")\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::cout << logPrefix() << "Received " << messageTypeName(expected) << " from all clients\n";
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Broadcast GUIDANCE_TOGGLE to all clients
|
// Broadcast GUIDANCE_TOGGLE to all clients
|
||||||
void sendGuidanceToggle(int numClients) {
|
void sendGuidanceToggle(int numClients) {
|
||||||
for (int i = 1; i <= numClients; i++) {
|
for (int i = 1; i <= numClients; i++) {
|
||||||
sendMessageType(i, 6); // GUIDANCE_TOGGLE = 6
|
sendMessageTypeRaw(i, 6); // GUIDANCE_TOGGLE = 6
|
||||||
}
|
}
|
||||||
|
std::cout << logPrefix() << "Sent GUIDANCE_TOGGLE to clients\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send REQUEST_POSITION to all clients
|
// Send REQUEST_POSITION to all clients
|
||||||
int sendRequestPositions(int numClients) {
|
int sendRequestPositions(int numClients) {
|
||||||
for (int i = 1; i <= numClients; i++) {
|
for (int i = 1; i <= numClients; i++) {
|
||||||
if (!sendMessageType(i, 7)) return 0; // REQUEST_POSITION = 7
|
if (!sendMessageTypeRaw(i, 7)) return 0; // REQUEST_POSITION = 7
|
||||||
}
|
}
|
||||||
|
std::cout << logPrefix() << "Sent REQUEST_POSITION to clients\n";
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -573,7 +635,7 @@ int recvPositions(int numClients, double* positions, int maxClients) {
|
|||||||
positions[i + 1 * maxClients] = coords[1]; // north (y)
|
positions[i + 1 * maxClients] = coords[1]; // north (y)
|
||||||
positions[i + 2 * maxClients] = coords[2]; // up (z)
|
positions[i + 2 * maxClients] = coords[2]; // up (z)
|
||||||
|
|
||||||
std::cout << "Position from client " << (i + 1) << ": "
|
std::cout << logPrefix() << "Position from client " << (i + 1) << ": "
|
||||||
<< coords[0] << "," << coords[1] << "," << coords[2] << "\n";
|
<< coords[0] << "," << coords[1] << "," << coords[2] << "\n";
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
|
|||||||
@@ -30,7 +30,10 @@ int loadTargets(const char* filename, double* targets, int maxClients);
|
|||||||
// 38-39 objectivePos
|
// 38-39 objectivePos
|
||||||
// 40-43 objectiveVar (2x2 col-major)
|
// 40-43 objectiveVar (2x2 col-major)
|
||||||
// 44 sensorPerformanceMinimum
|
// 44 sensorPerformanceMinimum
|
||||||
#define NUM_SCENARIO_PARAMS 45
|
// 45 useDoubleIntegrator (0=single-integrator, 1=double-integrator)
|
||||||
|
// 46 dampingCoeff
|
||||||
|
// 47 useFixedTopology (0=dynamic lesser-neighbor, 1=fixed)
|
||||||
|
#define NUM_SCENARIO_PARAMS 48
|
||||||
#define MAX_CLIENTS_PER_PARAM 4
|
#define MAX_CLIENTS_PER_PARAM 4
|
||||||
// Maximum number of obstacles (upper bound for pre-allocated arrays).
|
// Maximum number of obstacles (upper bound for pre-allocated arrays).
|
||||||
#define MAX_OBSTACLES 8
|
#define MAX_OBSTACLES 8
|
||||||
@@ -59,6 +62,7 @@ int sendTarget(int clientId, const double* coords);
|
|||||||
int waitForAllMessageType(int numClients, int expectedType);
|
int waitForAllMessageType(int numClients, int expectedType);
|
||||||
|
|
||||||
// Guidance loop operations
|
// Guidance loop operations
|
||||||
|
void setGuidanceStep(int step, int totalSteps); // call at the top of each guidance iteration
|
||||||
void sendGuidanceToggle(int numClients);
|
void sendGuidanceToggle(int numClients);
|
||||||
int sendRequestPositions(int numClients);
|
int sendRequestPositions(int numClients);
|
||||||
int recvPositions(int numClients, double* positions, int maxClients); // column-major maxClients x 3
|
int recvPositions(int numClients, double* positions, int maxClients); // column-major maxClients x 3
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ function [f, G] = plotGpsLogs(logDirs, seaToGroundLevel, plotWholeFlight)
|
|||||||
logDirs = dir(logDirs);
|
logDirs = dir(logDirs);
|
||||||
logDirs = logDirs(3:end);
|
logDirs = logDirs(3:end);
|
||||||
logDirs = logDirs([logDirs.isdir] == 1);
|
logDirs = logDirs([logDirs.isdir] == 1);
|
||||||
|
logDirs = logDirs(~startsWith({logDirs.name}, "controller_"));
|
||||||
|
|
||||||
G = cell(size(logDirs));
|
G = cell(size(logDirs));
|
||||||
for ii = 1:size(logDirs, 1)
|
for ii = 1:size(logDirs, 1)
|
||||||
@@ -60,6 +61,27 @@ function [f, G] = plotGpsLogs(logDirs, seaToGroundLevel, plotWholeFlight)
|
|||||||
enu(startIdx:stopIdx, :) = lla2enu([G{ii}.Latitude(startIdx:stopIdx), G{ii}.Longitude(startIdx:stopIdx), G{ii}.Altitude(startIdx:stopIdx)], lla0, "flat");
|
enu(startIdx:stopIdx, :) = lla2enu([G{ii}.Latitude(startIdx:stopIdx), G{ii}.Longitude(startIdx:stopIdx), G{ii}.Altitude(startIdx:stopIdx)], lla0, "flat");
|
||||||
enu = array2table(enu, 'VariableNames', ["East", "North", "Up"]);
|
enu = array2table(enu, 'VariableNames', ["East", "North", "Up"]);
|
||||||
G{ii} = [G{ii}, enu];
|
G{ii} = [G{ii}, enu];
|
||||||
|
|
||||||
|
% Do crude comparison of pairwise distances between this UAV and
|
||||||
|
% all previous UAVs
|
||||||
|
for jj = 1:(ii - 1)
|
||||||
|
Ai = G{ii}(:, [1, end-2:end]);
|
||||||
|
Aj = G{jj}(:, [1, end-2:end]);
|
||||||
|
|
||||||
|
% Trim data to match sizes
|
||||||
|
idx = min([size(Ai, 1), size(Aj, 1)]);
|
||||||
|
Ai = Ai(1:idx, :); Aj = Aj(1:idx, :);
|
||||||
|
|
||||||
|
pos_i = [Ai.East, Ai.North, Ai.Up];
|
||||||
|
pos_j = [Aj.East, Aj.North, Aj.Up];
|
||||||
|
d = vecnorm(pos_i - pos_j, 2, 2);
|
||||||
|
d = d(~isnan(d));
|
||||||
|
|
||||||
|
fprintf("Minimum distance between agents %d and %d is %2.3f\n", ii, jj, min(d));
|
||||||
|
if min(d) < 6
|
||||||
|
warning("Minimum distance between agents %d and %d of %2.3f is questionable for AERPAW", ii, jj, min(d));
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
% Plot recorded trajectory over specified range of indices
|
% Plot recorded trajectory over specified range of indices
|
||||||
geoplot3(gf, G{ii}.Latitude(startIdx:stopIdx), G{ii}.Longitude(startIdx:stopIdx), G{ii}.Altitude(startIdx:stopIdx) + seaToGroundLevel, c(mod(ii, length(c))), 'LineWidth', 2, "MarkerSize", 5);
|
geoplot3(gf, G{ii}.Latitude(startIdx:stopIdx), G{ii}.Longitude(startIdx:stopIdx), G{ii}.Altitude(startIdx:stopIdx) + seaToGroundLevel, c(mod(ii, length(c))), 'LineWidth', 2, "MarkerSize", 5);
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
function T2 = readControllerLogs(filepath)
|
||||||
|
arguments (Input)
|
||||||
|
filepath (1, 1) string;
|
||||||
|
end
|
||||||
|
arguments (Output)
|
||||||
|
T2 table;
|
||||||
|
end
|
||||||
|
assert(isfile(filepath), "File not found at %s", filepath);
|
||||||
|
|
||||||
|
T = readtable(filepath, 'VariableNamingRule', 'preserve');
|
||||||
|
s = split(T.(T.Properties.VariableNames{1}), ']');
|
||||||
|
s2 = strip(s(startsWith(s(:, 2), " ("), 1), 'left', '[');
|
||||||
|
d = datetime(s2, "InputFormat", "yyyy-MM-dd HH:mm:ss.SSSSSS")';
|
||||||
|
it = s(startsWith(s(:, 2), " ("), 2);
|
||||||
|
it = str2double(strip(strip(it, 'left'), 'left', '('));
|
||||||
|
T.Var3 = strip(append(T.Var3, " ", T.Var4, " ", T.Var5, " ", T.Var6, " ", T.Var7));
|
||||||
|
T.Var4 = []; T.Var5 = []; T.Var6 = []; T.Var7 = [];
|
||||||
|
msg = T.(T.Properties.VariableNames{2});
|
||||||
|
msg = msg(startsWith(s(:, 2), " ("), :);
|
||||||
|
s3 = split(msg, ') ');
|
||||||
|
s3 = s3(:, 2);
|
||||||
|
msg = append(s3, T.Var3(startsWith(s(:, 2), " (")));
|
||||||
|
T2 = table(it, d', msg, 'VariableNames', ["iteration", "timestamp", "message"]);
|
||||||
|
% T.Var1 = datetime(strip(strip(append(T.Var1, " ", T.Var2), 'left', '['), 'right', ']'), "InputFormat", "yyyy-MM-dd HH:mm:ss.SSSSSS");
|
||||||
|
% T.Var2 = [];
|
||||||
|
% T.Var3 = strip(append(T.Var3, " ", T.Var4, " ", T.Var5, " ", T.Var6, " ", string(T.Var7), " ", T.Var8, " ", T.Var9));
|
||||||
|
% T.Var4 = []; T.Var5 = []; T.Var6 = []; T.Var7 = []; T.Var8 = []; T.Var9 = [];
|
||||||
|
% T.Properties.VariableNames{1} = 'timestamp';
|
||||||
|
% T.Properties.VariableNames{2} = 'message';
|
||||||
|
|
||||||
|
% T(ismissing(T.message), :) = [];
|
||||||
|
end
|
||||||
@@ -2,7 +2,6 @@ function R = readRadioLogs(logPath)
|
|||||||
arguments (Input)
|
arguments (Input)
|
||||||
logPath (1, 1) string {isfolder(logPath)};
|
logPath (1, 1) string {isfolder(logPath)};
|
||||||
end
|
end
|
||||||
|
|
||||||
arguments (Output)
|
arguments (Output)
|
||||||
R (:, 8) table;
|
R (:, 8) table;
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,10 +1,30 @@
|
|||||||
%% Plot AERPAW logs (trajectory, radio)
|
%% Plot AERPAW logs (trajectory, radio)
|
||||||
resultsPath = fullfile(matlab.project.rootProject().RootFolder, "sandbox", "two_around_wall"); % Define path to results copied from AERPAW platform
|
resultsPath = fullfile(matlab.project.rootProject().RootFolder, "sandbox", "two_around_wall"); % Define path to results copied from AERPAW platform
|
||||||
|
|
||||||
|
% Measure intervals between issuing commands from the controller
|
||||||
|
% (make sure this is ~4-5 seconds at minimum to avoid overwhelming the UAV autopilot)
|
||||||
|
r = dir(resultsPath);
|
||||||
|
controllerPath = fullfile(r(startsWith({r.name}, 'controller_')).folder, r(startsWith({r.name}, 'controller_')).name);
|
||||||
|
controllerPath = dir(controllerPath);
|
||||||
|
controllerPath = fullfile(controllerPath(endsWith({controllerPath.name}, '_controller_log.txt')).folder, controllerPath(endsWith({controllerPath.name}, '_controller_log.txt')).name);
|
||||||
|
controller = readControllerLogs(controllerPath);
|
||||||
|
rpIdx = startsWith(controller.message, "Iteration duration: ");
|
||||||
|
s = split(controller.message(rpIdx), "Iteration duration: ");
|
||||||
|
s = split(s(:, 2), ' s');
|
||||||
|
s = duration(strcat("00:", s(:, 1)), "InputFormat", "mm:ss.SSS");
|
||||||
|
s.Format = "mm:ss.SSS";
|
||||||
|
fprintf("Minimum command spacing: %2.3f seconds\n", seconds(min(s)));
|
||||||
|
fprintf("Maximum command spacing: %2.3f seconds\n", seconds(max(s)));
|
||||||
|
fprintf("Mean command spacing: %2.3f seconds\n", seconds(mean(s)));
|
||||||
|
fprintf("Median command spacing: %2.3f seconds\n", seconds(median(s)));
|
||||||
|
if seconds(min(s)) < 4
|
||||||
|
warning("Minimum command spacing %2.3f questionably short for AERPAW", seconds(min(s)));
|
||||||
|
end
|
||||||
|
|
||||||
% Plot GPS logged data and scenario information (domain, objective, obstacles)
|
% Plot GPS logged data and scenario information (domain, objective, obstacles)
|
||||||
seaToGroundLevel = 110; % measured approximately from USGS national map viewer
|
seaToGroundLevel = 110; % measured approximately from USGS national map viewer
|
||||||
plotWholeFlight = true; % do not attempt to automatically trim initial and final positioning and landing from flight plot (buggy)
|
plotWholeFlight = true; % do not attempt to automatically trim initial and final positioning and landing from flight plot (buggy)
|
||||||
% [fGlobe, G] = plotGpsLogs(resultsPath, seaToGroundLevel, true);
|
[fGlobe, G] = plotGpsLogs(resultsPath, seaToGroundLevel, true);
|
||||||
|
|
||||||
% Plot radio statistics
|
% Plot radio statistics
|
||||||
[fRadio, R] = plotRadioLogs(resultsPath);
|
[fRadio, R] = plotRadioLogs(resultsPath);
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Info>
|
||||||
|
<Category UUID="FileClassCategory">
|
||||||
|
<Label UUID="design"/>
|
||||||
|
</Category>
|
||||||
|
</Info>
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Info location="readControllerLogs.m" type="File"/>
|
||||||
@@ -34,9 +34,15 @@ classdef parametricTestSuite < matlab.unittest.TestCase
|
|||||||
|
|
||||||
% Define scenario according to CSV specification
|
% Define scenario according to CSV specification
|
||||||
tc.domain = tc.domain.initialize([params.domainMin; params.domainMax], REGION_TYPE.DOMAIN, "Domain");
|
tc.domain = tc.domain.initialize([params.domainMin; params.domainMax], REGION_TYPE.DOMAIN, "Domain");
|
||||||
objectiveSigma = reshape(params.objectiveVar, [1 2 2]);
|
if length(params.objectiveVar) > 4 && length(params.objectivePos) > 2
|
||||||
tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper(params.objectivePos, objectiveSigma), tc.domain, params.discretizationStep, params.protectedRange, params.sensorPerformanceMinimum, params.objectivePos, objectiveSigma);
|
objectiveSigma = permute(reshape(params.objectiveVar, [length(params.objectiveVar)/4 2 2]), [3 1 2]);
|
||||||
|
objectivePos = reshape(params.objectivePos, [length(params.objectivePos)/2, 2])';
|
||||||
|
else
|
||||||
|
objectiveSigma = reshape(params.objectiveVar, [1, 2, 2]);
|
||||||
|
objectivePos = params.objectivePos;
|
||||||
|
end
|
||||||
|
tc.domain.objective = tc.domain.objective.initialize(objectiveFunctionWrapper(objectivePos, objectiveSigma), tc.domain, params.discretizationStep, params.protectedRange, params.sensorPerformanceMinimum, objectivePos, objectiveSigma);
|
||||||
|
|
||||||
agents = cell(size(params.initialPositions, 2) / 3, 1);
|
agents = cell(size(params.initialPositions, 2) / 3, 1);
|
||||||
for ii = 1:size(agents, 1)
|
for ii = 1:size(agents, 1)
|
||||||
agents{ii} = agent;
|
agents{ii} = agent;
|
||||||
|
|||||||
@@ -4,12 +4,16 @@ function f = objectiveFunctionWrapper(center, sigma)
|
|||||||
% composite objectives in particular
|
% composite objectives in particular
|
||||||
arguments (Input)
|
arguments (Input)
|
||||||
center (:, 2) double;
|
center (:, 2) double;
|
||||||
sigma (:, 2, 2) double = eye(2);
|
sigma (:, 2, 2) double = reshape(eye(2), 1, 2, 2);
|
||||||
end
|
end
|
||||||
arguments (Output)
|
arguments (Output)
|
||||||
f (1, 1) {mustBeA(f, "function_handle")};
|
f (1, 1) {mustBeA(f, "function_handle")};
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if size(sigma, 1) == 1 && size(center, 1) > 1
|
||||||
|
sigma = repmat(sigma, size(center, 1), 1, 1);
|
||||||
|
end
|
||||||
|
|
||||||
assert(size(center, 1) == size(sigma, 1));
|
assert(size(center, 1) == size(sigma, 1));
|
||||||
f = @(x,y) sum(cell2mat(arrayfun(@(i) mvnpdf([x(:), y(:)], center(i,:), squeeze(sigma(i, :, :))), 1:size(center,1), "UniformOutput", false)), 2);
|
f = @(x,y) sum(cell2mat(arrayfun(@(i) mvnpdf([x(:), y(:)], center(i,:), squeeze(sigma(i, :, :))), 1:size(center,1), "UniformOutput", false)), 2);
|
||||||
end
|
end
|
||||||
Reference in New Issue
Block a user