diff --git a/@miSim/miSim.m b/@miSim/miSim.m index 5ca5056..627ae4e 100644 --- a/@miSim/miSim.m +++ b/@miSim/miSim.m @@ -69,7 +69,7 @@ classdef miSim obj.obstacles = {rectangularPrism}; obj.agents = {agent}; 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] = initializeFromInits(obj, initsPath); [obj] = plotFromSimHist(obj, initsPath, histPath); diff --git a/aerpaw/controller.coderprj b/aerpaw/controller.coderprj index c822aab..b057661 100644 --- a/aerpaw/controller.coderprj +++ b/aerpaw/controller.coderprj @@ -158,6 +158,11 @@ + + int32 + + + @@ -411,749 +416,761 @@ - /home/kdee/Desktop/miSim/aerpaw/codegen/controller.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/constrainMotion.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/controller.h + /home/kdee/Desktop/miSim/aerpaw/codegen/constrainMotion.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/controller_data.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/controller.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/controller_data.h + /home/kdee/Desktop/miSim/aerpaw/codegen/controller.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/controller_initialize.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/controller_data.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/controller_initialize.h + /home/kdee/Desktop/miSim/aerpaw/codegen/controller_data.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/controller_internal_types.h + /home/kdee/Desktop/miSim/aerpaw/codegen/controller_initialize.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/controller_terminate.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/controller_initialize.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/controller_terminate.h + /home/kdee/Desktop/miSim/aerpaw/codegen/controller_internal_types.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/controller_types.h + /home/kdee/Desktop/miSim/aerpaw/codegen/controller_terminate.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/countsort.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/controller_terminate.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/countsort.h + /home/kdee/Desktop/miSim/aerpaw/codegen/controller_types.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/deleteColMoveEnd.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/countsort.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/deleteColMoveEnd.h + /home/kdee/Desktop/miSim/aerpaw/codegen/countsort.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/dot.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/deleteColMoveEnd.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/dot.h + /home/kdee/Desktop/miSim/aerpaw/codegen/deleteColMoveEnd.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/driver.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/dot.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/driver.h + /home/kdee/Desktop/miSim/aerpaw/codegen/dot.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/exp.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/driver.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/exp.h + /home/kdee/Desktop/miSim/aerpaw/codegen/driver.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/eye.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/exp.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/eye.h + /home/kdee/Desktop/miSim/aerpaw/codegen/exp.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/factorQR.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/eye.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/factorQR.h + /home/kdee/Desktop/miSim/aerpaw/codegen/eye.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/feasibleX0ForWorkingSet.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/factorQR.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/feasibleX0ForWorkingSet.h + /home/kdee/Desktop/miSim/aerpaw/codegen/factorQR.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/feasibleratiotest.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/feasibleX0ForWorkingSet.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/feasibleratiotest.h + /home/kdee/Desktop/miSim/aerpaw/codegen/feasibleX0ForWorkingSet.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/find.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/feasibleratiotest.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/find.h + /home/kdee/Desktop/miSim/aerpaw/codegen/feasibleratiotest.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/fullColLDL2_.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/find.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/fullColLDL2_.h + /home/kdee/Desktop/miSim/aerpaw/codegen/find.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/guidance_step.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/fullColLDL2_.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/guidance_step.h + /home/kdee/Desktop/miSim/aerpaw/codegen/fullColLDL2_.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/iterate.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/guidance_step.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/iterate.h + /home/kdee/Desktop/miSim/aerpaw/codegen/guidance_step.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/ixamax.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/iterate.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/ixamax.h + /home/kdee/Desktop/miSim/aerpaw/codegen/iterate.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/ixfun.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/ixamax.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/ixfun.h + /home/kdee/Desktop/miSim/aerpaw/codegen/ixamax.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/lesserNeighbor.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/ixfun.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/lesserNeighbor.h + /home/kdee/Desktop/miSim/aerpaw/codegen/ixfun.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/linearForm_.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/lesserNeighbor.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/linearForm_.h + /home/kdee/Desktop/miSim/aerpaw/codegen/lesserNeighbor.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/maxConstraintViolation.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/linearForm_.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/maxConstraintViolation.h + /home/kdee/Desktop/miSim/aerpaw/codegen/linearForm_.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/meshgrid.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/maxConstraintViolation.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/meshgrid.h + /home/kdee/Desktop/miSim/aerpaw/codegen/maxConstraintViolation.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/miSim.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/meshgrid.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/miSim.h + /home/kdee/Desktop/miSim/aerpaw/codegen/meshgrid.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/minOrMax.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/miSim.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/minOrMax.h + /home/kdee/Desktop/miSim/aerpaw/codegen/miSim.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/mpower.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/minOrMax.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/mpower.h + /home/kdee/Desktop/miSim/aerpaw/codegen/minOrMax.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/nchoosek.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/mpower.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/nchoosek.h + /home/kdee/Desktop/miSim/aerpaw/codegen/mpower.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/norm.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/nchoosek.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/norm.h + /home/kdee/Desktop/miSim/aerpaw/codegen/nchoosek.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/partition.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/norm.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/partition.h + /home/kdee/Desktop/miSim/aerpaw/codegen/norm.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/phaseone.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/partition.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/phaseone.h + /home/kdee/Desktop/miSim/aerpaw/codegen/partition.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/quadprog.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/phaseone.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/quadprog.h + /home/kdee/Desktop/miSim/aerpaw/codegen/phaseone.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/ratiotest.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/quadprog.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/ratiotest.h + /home/kdee/Desktop/miSim/aerpaw/codegen/quadprog.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/rectangularPrism.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/ratiotest.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/rectangularPrism.h + /home/kdee/Desktop/miSim/aerpaw/codegen/ratiotest.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/removeConstr.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/rectangularPrism.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/removeConstr.h + /home/kdee/Desktop/miSim/aerpaw/codegen/rectangularPrism.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/repmat.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/removeConstr.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/repmat.h + /home/kdee/Desktop/miSim/aerpaw/codegen/removeConstr.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/rtGetInf.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/repmat.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/rtGetInf.h + /home/kdee/Desktop/miSim/aerpaw/codegen/repmat.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/rtGetNaN.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/rtGetInf.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/rtGetNaN.h + /home/kdee/Desktop/miSim/aerpaw/codegen/rtGetInf.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/rt_defines.h + /home/kdee/Desktop/miSim/aerpaw/codegen/rtGetNaN.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/rt_nonfinite.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/rtGetNaN.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/rt_nonfinite.h + /home/kdee/Desktop/miSim/aerpaw/codegen/rt_defines.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/rtwtypes.h + /home/kdee/Desktop/miSim/aerpaw/codegen/rt_nonfinite.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/run.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/rt_nonfinite.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/run.h + /home/kdee/Desktop/miSim/aerpaw/codegen/rtwtypes.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/sensingObjective.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/run.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/sensingObjective.h + /home/kdee/Desktop/miSim/aerpaw/codegen/run.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/sensorPerformance.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/sensingObjective.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/sensorPerformance.h + /home/kdee/Desktop/miSim/aerpaw/codegen/sensingObjective.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/setProblemType.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/sensorPerformance.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/setProblemType.h + /home/kdee/Desktop/miSim/aerpaw/codegen/sensorPerformance.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/sigmoidSensor.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/setProblemType.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/sigmoidSensor.h + /home/kdee/Desktop/miSim/aerpaw/codegen/setProblemType.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/sort.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/sigmoidSensor.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/sort.h + /home/kdee/Desktop/miSim/aerpaw/codegen/sigmoidSensor.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/spherical.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/sort.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/spherical.h + /home/kdee/Desktop/miSim/aerpaw/codegen/sort.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/sprintf.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/spherical.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/sprintf.h + /home/kdee/Desktop/miSim/aerpaw/codegen/spherical.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/squareQ_appendCol.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/sprintf.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/squareQ_appendCol.h + /home/kdee/Desktop/miSim/aerpaw/codegen/sprintf.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/string1.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/squareQ_appendCol.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/string1.h + /home/kdee/Desktop/miSim/aerpaw/codegen/squareQ_appendCol.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/sum.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/string1.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/sum.h + /home/kdee/Desktop/miSim/aerpaw/codegen/string1.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/triu.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/sum.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/triu.h + /home/kdee/Desktop/miSim/aerpaw/codegen/sum.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/unique.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/triu.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/unique.h + /home/kdee/Desktop/miSim/aerpaw/codegen/triu.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/vecnorm.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/unique.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/vecnorm.h + /home/kdee/Desktop/miSim/aerpaw/codegen/unique.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/xgemv.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/vecnorm.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/xgemv.h + /home/kdee/Desktop/miSim/aerpaw/codegen/vecnorm.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/xgeqp3.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/xgemv.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/xgeqp3.h + /home/kdee/Desktop/miSim/aerpaw/codegen/xgemv.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/xnrm2.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/xgeqp3.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/xnrm2.h + /home/kdee/Desktop/miSim/aerpaw/codegen/xgeqp3.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/xrotg.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/xnrm2.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/xrotg.h + /home/kdee/Desktop/miSim/aerpaw/codegen/xnrm2.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/xzgeqp3.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/xrotg.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/xzgeqp3.h + /home/kdee/Desktop/miSim/aerpaw/codegen/xrotg.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/xzlarf.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/xzgeqp3.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/xzlarf.h + /home/kdee/Desktop/miSim/aerpaw/codegen/xzgeqp3.h GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/xzlarfg.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/xzlarf.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/xzlarfg.h + /home/kdee/Desktop/miSim/aerpaw/codegen/xzlarf.h GENERATED_SOURCE - /home/kdee/matlab/R2025a/extern/include/tmwtypes.h + /home/kdee/Desktop/miSim/aerpaw/codegen/xzlarfg.cpp GENERATED_SOURCE - /home/kdee/Desktop/miSim/aerpaw/codegen/examples/main.cpp + /home/kdee/Desktop/miSim/aerpaw/codegen/xzlarfg.h GENERATED_SOURCE + + /home/kdee/matlab/R2025a/extern/include/tmwtypes.h + + GENERATED_SOURCE + + + + /home/kdee/Desktop/miSim/aerpaw/codegen/examples/main.cpp + + GENERATED_SOURCE + + /home/kdee/Desktop/miSim/aerpaw/codegen/examples/main.h @@ -1161,7 +1178,7 @@ true - 2026-04-05T13:43:54 + 2026-04-05T14:48:49 diff --git a/aerpaw/controller.m b/aerpaw/controller.m index fba8fab..d759205 100644 --- a/aerpaw/controller.m +++ b/aerpaw/controller.m @@ -57,7 +57,7 @@ if ~coder.target('MATLAB') end % Load guidance scenario from CSV (parameters for guidance_step) -NUM_SCENARIO_PARAMS = 45; +NUM_SCENARIO_PARAMS = 48; MAX_OBSTACLES_CTRL = int32(8); scenarioParams = zeros(1, NUM_SCENARIO_PARAMS); obstacleMin = zeros(MAX_OBSTACLES_CTRL, 3); diff --git a/aerpaw/guidance_step.m b/aerpaw/guidance_step.m index bd8df89..25f34df 100644 --- a/aerpaw/guidance_step.m +++ b/aerpaw/guidance_step.m @@ -29,6 +29,9 @@ function nextPositions = guidance_step(currentPositions, isInit, ... % 39-40 objectivePos % 41-44 objectiveVar (2x2, col-major) % 45 sensorPerformanceMinimum +% 46 useDoubleIntegrator +% 47 dampingCoeff +% 48 useFixedTopology % obstacleMin (MAX_OBSTACLES × 3) double column-major obstacle corners (compiled path) % obstacleMax (MAX_OBSTACLES × 3) double % numObstacles (1,1) int32 actual obstacle count @@ -94,6 +97,9 @@ if isInit OBJECTIVE_GROUND_POS = scenarioParams(39:40); OBJECTIVE_VAR = reshape(scenarioParams(41:44), 2, 2); SENSOR_PERFORMANCE_MINIMUM = scenarioParams(45); + USE_DOUBLE_INTEGRATOR = logical(scenarioParams(46)); + DAMPING_COEFF = scenarioParams(47); + USE_FIXED_TOPOLOGY = logical(scenarioParams(48)); % --- Build domain geometry --- dom = rectangularPrism; @@ -146,7 +152,8 @@ if isInit % --- Initialise simulation (plots and video disabled) --- sim = miSim; 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 % On the init call return current positions unchanged @@ -176,7 +183,9 @@ else sim.timestepIndex = sim.timestepIndex + 1; % 3. Update communications topology (Lesser Neighbour Assignment) - sim = sim.lesserNeighbor(); + if ~sim.useFixedTopology + sim = sim.lesserNeighbor(); + end % 4. Compute Voronoi partitioning sim.partitioning = sim.agents{1}.partition(sim.agents, sim.domain.objective); @@ -184,7 +193,8 @@ else % 5. Unconstrained gradient-ascent step for each agent for ii = 1:size(sim.agents, 1) 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 % 6. Apply CBF safety filter (collision / comms / domain constraints via QP) diff --git a/aerpaw/impl/controller_impl.cpp b/aerpaw/impl/controller_impl.cpp index 91c627f..e8992fa 100644 --- a/aerpaw/impl/controller_impl.cpp +++ b/aerpaw/impl/controller_impl.cpp @@ -186,7 +186,10 @@ static int readScenarioDataRow(const char* filename, char* line, int lineSize) { // 35-37: domainMax (east, north, up) // 38-39: objectivePos (east, north) // 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. int loadScenario(const char* filename, double* params) { char line[4096]; @@ -198,8 +201,8 @@ int loadScenario(const char* filename, double* params) { char* fields[32]; int nf = splitCSVRow(copy, fields, 32); - if (nf < 19) { - fprintf(stderr, "loadScenario: expected >=19 columns, got %d\n", nf); + if (nf < 26) { + fprintf(stderr, "loadScenario: expected >=26 columns, got %d\n", nf); return 0; } @@ -290,6 +293,24 @@ int loadScenario(const char* filename, double* params) { 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", params[32], params[33], params[34], params[35], params[36], params[37]); return 1; diff --git a/aerpaw/impl/controller_impl.h b/aerpaw/impl/controller_impl.h index 948ea20..a43f0fd 100644 --- a/aerpaw/impl/controller_impl.h +++ b/aerpaw/impl/controller_impl.h @@ -30,7 +30,10 @@ int loadTargets(const char* filename, double* targets, int maxClients); // 38-39 objectivePos // 40-43 objectiveVar (2x2 col-major) // 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 // Maximum number of obstacles (upper bound for pre-allocated arrays). #define MAX_OBSTACLES 8 diff --git a/aerpaw/results/resultsAnalysis.m b/aerpaw/results/resultsAnalysis.m index ec58317..0d425d2 100644 --- a/aerpaw/results/resultsAnalysis.m +++ b/aerpaw/results/resultsAnalysis.m @@ -4,7 +4,7 @@ resultsPath = fullfile(matlab.project.rootProject().RootFolder, "sandbox", "two_ % Plot GPS logged data and scenario information (domain, objective, obstacles) 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) -% [fGlobe, G] = plotGpsLogs(resultsPath, seaToGroundLevel, true); +[fGlobe, G] = plotGpsLogs(resultsPath, seaToGroundLevel, true); % Plot radio statistics [fRadio, R] = plotRadioLogs(resultsPath);