copp.solver.topp3_lp.Problem

TOPP3-LP problem descriptor.

Syntax

P = copp.solver.topp3_lp.Problem(ROBOT, A_LINEARIZATION)

Description

This class is a package-specific facade over the shared copp.solver.topp3.Problem descriptor. topp3_lp.solve accepts the shared descriptor too; use this facade when the solver namespace improves readability. Construction is side-effect free with respect to native third-order linearization; solve() performs lazy linearization and mutates the Robot's native cache.

Input Arguments

robot

A copp.Robot object containing sampled path data, limits, and constraints.

a_linearization

Seed a(s) profile used to linearize third-order constraints.

Name-Value Arguments

idx_s_start

1-based start station for third-order problems. The covered interval runs from this station through the stored profile length. Default: 1

a_boundary

Endpoint squared-speed values [a_start, a_final] for the selected station interval. Default: [0, 0]

b_boundary

Endpoint path-acceleration values [b_start, b_final] for third-order profiles. Default: [0, 0]

num_stationary_max

Maximum number of stationary nodes allowed by the third-order profile descriptor. Default: 1

a_linearization_floor

Positive floor applied to a_linearization when forming third-order linearization data. Default: 1.0e-10

Methods

Problem

Construct a TOPP3-LP problem descriptor.

Method Details

Problem

Syntax

P = copp.solver.topp3_lp.Problem(ROBOT, A_LINEARIZATION)

creates a descriptor for topp3_lp.solve. Name-value options are the same as copp.solver.topp3.Problem. A shared copp.solver.topp3.Problem can also be passed to solve().

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);

See Also

copp.solver.topp3_lp