copp.solver.copp2_socp.Problem

Borrowed COPP2-SOCP problem descriptor.

Syntax

P = copp.solver.copp2_socp.Problem(ROBOT, OBJECTIVES)
P = ...Problem(..., idx_s_interval=[I,J], a_boundary=[A0,AF])

Description

Problem stores a reference to a copp.Robot plus MATLAB-owned objective descriptors, a closed station interval, and endpoint values for \(a = (ds/dt)^2\). It does not copy robot constraints. The Robot must remain live for every solve() call.

Shape convention: idx_s_interval is a \(1 \times 2\) vector [idx_s_start, idx_s_final]. a_boundary is a \(1 \times 2\) vector [a_start, a_final]. Linear objective alpha/beta payloads are column vectors packed from user row/column input; COPP2 requires numel(alpha)=s_len and numel(beta)=s_len-1. solve() returns an s_len-by-1 a profile.

Input Arguments

robot

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

objectives

Objective descriptor or cell array of descriptors created by copp.objective functions.

Name-Value Arguments

idx_s_interval

Closed 1-based station interval [idx_s_start, idx_s_final] covered by the problem. Default: []

a_boundary

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

Properties

robot

Referenced Robot that owns station samples and constraints.

objectives

Cell array of MATLAB-owned objective descriptor structs.

idx_s_interval

Closed 1-based station interval [idx_s_start, idx_s_final].

s_len

Number of stations covered by idx_s_interval.

Methods

Problem

Construct and validate a COPP2-SOCP problem descriptor.

Method Details

Problem

Syntax

P = copp.solver.copp2_socp.Problem(ROBOT, OBJECTIVES)
P = ...Problem(..., idx_s_interval=[I,J], a_boundary=[A0,AF])

covers all currently stored stations in ROBOT and uses a_boundary=[0,0].

OBJECTIVES may be a single descriptor, a struct array, or a cell array. The usual user-facing spelling is:

objectives = { copp.objective.time(1.0) copp.objective.thermal_energy(0.1, ones(robot.dim,1)) };

uses explicit \(1 \times 2\) closed interval and boundary vectors.

Examples

MATLAB
ExampleCommon.setup_path();
ctx = ExampleCommon.second_order_context();
objectives = ExampleCommon.convex_objectives(ctx.dim);
problem = copp.solver.copp2_socp.Problem( ...
    ctx.robot, ...
    objectives, ...
    idx_s_interval=ctx.idx_s_interval, ...
    a_boundary=ctx.a_boundary);

See Also

copp.solver.copp2_socp