robot
A copp.Robot object containing sampled path data, limits, and constraints.
obj = copp.solver.copp3_socp.Problem(robot, objectives, a_linearization)obj = copp.solver.copp3_socp.Problem(robot, objectives, a_linearization, idx_s_start=idx_s_start, a_boundary=a_boundary, b_boundary=b_boundary, num_stationary_max=num_stationary_max, a_linearization_floor=a_linearization_floor)obj = copp.solver.copp3_socp.Problem(robot, objectives, a_linearization)
obj = copp.solver.copp3_socp.Problem(robot, objectives, a_linearization, idx_s_start=idx_s_start, a_boundary=a_boundary, b_boundary=b_boundary, num_stationary_max=num_stationary_max, a_linearization_floor=a_linearization_floor)
This extends the shared TOPP3 descriptor with MATLAB-owned objective descriptors. Construction does not mutate native caches; solve() performs third-order linearization lazily.
Shape convention: a_linearization is stored as an s_len-by-1 column by the base TOPP3 descriptor. Linear objective alpha and beta are stored as columns and both must have length s_len for COPP3. Torque objective normalize vectors must have length robot.dim and are stored as \(\mathrm{dim} \times 1\) columns.
robotA copp.Robot object containing sampled path data, limits, and constraints.
objectivesObjective descriptor or cell array of descriptors created by copp.objective functions.
a_linearizationSeed a(s) profile used to linearize third-order constraints.
idx_s_start1-based start station for third-order problems. The covered interval runs from this station through the stored profile length. Default: 1
a_boundaryEndpoint squared-speed values [a_start, a_final] for the selected station interval. Default: [0, 0]
b_boundaryEndpoint path-acceleration values [b_start, b_final] for third-order profiles. Default: [0, 0]
num_stationary_maxMaximum number of stationary nodes allowed by the third-order profile descriptor. Default: 1
a_linearization_floorPositive floor applied to a_linearization when forming third-order linearization data. Default: 1.0e-10
objectivesCell array of MATLAB objective descriptor structs.
objective_countNumber of objective descriptors.
ProblemConstruct and validate a COPP3-SOCP problem descriptor.
Problemobj = copp.solver.copp3_socp.Problem(robot, objectives, a_linearization)obj = copp.solver.copp3_socp.Problem(robot, objectives, a_linearization, idx_s_start=idx_s_start, a_boundary=a_boundary, b_boundary=b_boundary, num_stationary_max=num_stationary_max, a_linearization_floor=a_linearization_floor)obj = copp.solver.copp3_socp.Problem(robot, objectives, a_linearization)
obj = copp.solver.copp3_socp.Problem(robot, objectives, a_linearization, idx_s_start=idx_s_start, a_boundary=a_boundary, b_boundary=b_boundary, num_stationary_max=num_stationary_max, a_linearization_floor=a_linearization_floor)
ExampleCommon.setup_path();
ctx = ExampleCommon.third_order_context();
a_seed = ExampleCommon.solve_topp2_seed(ctx.robot, ctx.n);
objectives = ExampleCommon.convex_objectives(ctx.dim);
problem = copp.solver.copp3_socp.Problem( ...
ctx.robot, ...
objectives, ...
a_seed, ...
idx_s_start=1, ...
a_boundary=ctx.a_boundary, ...
b_boundary=ctx.b_boundary, ...
num_stationary_max=ctx.num_stationary_max);