copp.solver.topp3_lp.solve

Solve a TOPP3-LP problem and return a Profile3rd.

Syntax

profile = copp.solver.topp3_lp.solve(problem, options)

Description

solves PROBLEM with default Options and returns a copp.Profile3rd object. PROFILE.a stores \((ds/dt)^2\) at stations and PROFILE.b stores \(d^2s/dt^2\). Both fields are PROBLEM.s_len-by-1 double column vectors.

PROBLEM may be the shared copp.solver.topp3.Problem descriptor or the solver-specific topp3_lp.Problem facade. The facade is recommended for readability but is not required by the type contract.

Lazy linearization: This call linearizes third-order constraints using PROBLEM.a_linearization and mutates the native Robot's internal third-order constraint cache. Constructing PROBLEM does not mutate the Robot cache.

Input Arguments

problem

Problem struct or object for the selected solver namespace.

options

Solver options struct or object for the selected solver namespace. Default: copp.solver.topp3_lp.Options()

Output Arguments

profile

Third-order profile object containing a, b, and stationary-node metadata.

Examples

MATLAB
ExampleCommon.setup_path();
ctx = ExampleCommon.third_order_context();
a_seed = ExampleCommon.solve_topp2_seed(ctx.robot, ctx.n);
problem = copp.solver.topp3_lp.Problem(ctx.robot, a_seed, idx_s_start=1, a_boundary=ctx.a_boundary, b_boundary=ctx.b_boundary, num_stationary_max=ctx.num_stationary_max);
options = copp.solver.topp3_lp.Options();
profile = copp.solver.topp3_lp.solve(problem, options);

See Also

copp.solver.topp3_lp