COPP C ABI
C interface for COPP trajectory optimization
Loading...
Searching...
No Matches
formulation.h
Go to the documentation of this file.
1#ifndef COPP_FORMULATION_H
2#define COPP_FORMULATION_H
3
4/*
5 * Generated by bindings/c/scripts/generate_headers.ps1.
6 * Do not edit by hand; update src/ffi/c and regenerate.
7 */
8
14
15#include <stddef.h>
16#include "copp/core.h"
17#include "copp/robot.h"
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
27
54
89
97typedef struct Copp2Problem {
101 const struct CoppRobot *robot;
113 double a_start;
117 double a_final;
127
137typedef struct Topp2Problem {
141 const struct CoppRobot *robot;
153 double a_start;
157 double a_final;
159
186
196
247
305
307
308#ifdef __cplusplus
309}
310#endif
311
312#endif /* COPP_FORMULATION_H */
Core status, memory, matrix, and shared solver option types.
CoppObjectiveKind
COPP objective descriptor kind shared by second- and third-order solvers.
Definition formulation.h:31
void copp_profile_3rd_free(struct CoppProfile3rd profile)
Release a third-order profile returned by COPP.
@ COPP_OBJECTIVE_KIND_TIME
Time objective: weight * integral dt.
Definition formulation.h:35
@ COPP_OBJECTIVE_KIND_THERMAL_ENERGY
Thermal-energy objective.
Definition formulation.h:48
@ COPP_OBJECTIVE_KIND_TOTAL_VARIATION_TORQUE
Total-variation torque objective.
Definition formulation.h:52
@ COPP_OBJECTIVE_KIND_LINEAR
Linear objective over solver-specific profile variables.
Definition formulation.h:44
struct CoppRobot CoppRobot
Opaque C handle for a library-owned robot and constraint buffer.
Definition robot.h:35
Robot handles, path sampling, derivative input, constraints, and limits.
Borrowed value descriptor for a COPP2 problem solved from C.
Definition formulation.h:97
double a_final
Boundary value a(idx_s_final) = (ds/dt)^2.
Definition formulation.h:117
size_t idx_s_start
Closed start station index.
Definition formulation.h:105
const struct CoppRobot * robot
Robot handle that owns the station-indexed constraint storage.
Definition formulation.h:101
double a_start
Boundary value a(idx_s_start) = (ds/dt)^2.
Definition formulation.h:113
size_t idx_s_final
Closed final station index.
Definition formulation.h:109
const struct CoppObjective * objectives
Objective descriptor array.
Definition formulation.h:121
size_t num_objectives
Number of objective descriptors.
Definition formulation.h:125
Borrowed value descriptor for a COPP3 problem solved from C.
Definition formulation.h:254
size_t num_objectives
Number of objective descriptors.
Definition formulation.h:303
size_t idx_s_start
Start station index.
Definition formulation.h:263
const struct CoppObjective * objectives
Objective descriptor array.
Definition formulation.h:299
double a_final
Boundary value a(idx_s_final) = dot{s}^2.
Definition formulation.h:275
double b_final
Boundary value b(idx_s_final) = ddot{s}.
Definition formulation.h:283
struct CoppRobot * robot
Mutable robot handle that owns station-indexed constraint storage.
Definition formulation.h:258
double a_start
Boundary value a(idx_s_start) = dot{s}^2.
Definition formulation.h:271
double b_start
Boundary value b(idx_s_start) = ddot{s}.
Definition formulation.h:279
double a_linearization_floor
Denominator floor used when linearizing third-order constraints.
Definition formulation.h:295
struct CoppSliceF64 a_linearization
Reference profile a[k] used to linearize third-order constraints.
Definition formulation.h:267
size_t num_stationary_max_end
User-input stationary upper bound at the end.
Definition formulation.h:291
size_t num_stationary_max_start
User-input stationary upper bound at the start.
Definition formulation.h:287
Borrowed objective descriptor for COPP solvers.
Definition formulation.h:67
struct CoppSliceF64 beta
Linear objective coefficient for variable b.
Definition formulation.h:83
struct CoppSliceF64 normalize
Torque objective normalization vector.
Definition formulation.h:87
double weight
Objective weight.
Definition formulation.h:75
enum CoppObjectiveKind kind
Objective kind.
Definition formulation.h:71
struct CoppSliceF64 alpha
Linear objective coefficient for variable a.
Definition formulation.h:79
Owned third-order profile returned by TOPP3/COPP3 C ABI solvers.
Definition formulation.h:168
struct CoppVecF64 b
Node-based profile b[k] = ddot{s}_k.
Definition formulation.h:176
size_t num_stationary_end
Effective stationary interval count at the end.
Definition formulation.h:184
struct CoppVecF64 a
Node-based profile a[k] = dot{s}_k^2.
Definition formulation.h:172
size_t num_stationary_start
Effective stationary interval count at the start.
Definition formulation.h:180
Borrowed immutable f64 slice passed from C to COPP.
Definition core.h:708
Library-owned f64 vector returned to C.
Definition core.h:743
Borrowed value descriptor for a TOPP2 problem solved from C.
Definition formulation.h:137
const struct CoppRobot * robot
Robot handle that owns the station-indexed constraint storage.
Definition formulation.h:141
double a_final
Boundary value a(idx_s_final) = (ds/dt)^2.
Definition formulation.h:157
size_t idx_s_final
Closed final station index.
Definition formulation.h:149
size_t idx_s_start
Closed start station index.
Definition formulation.h:145
double a_start
Boundary value a(idx_s_start) = (ds/dt)^2.
Definition formulation.h:153
Borrowed value descriptor for a TOPP3 problem solved from C.
Definition formulation.h:204
double a_start
Boundary value a(idx_s_start) = dot{s}^2.
Definition formulation.h:221
double a_linearization_floor
Denominator floor used when linearizing third-order constraints.
Definition formulation.h:245
struct CoppSliceF64 a_linearization
Reference profile a[k] used to linearize third-order constraints.
Definition formulation.h:217
double b_start
Boundary value b(idx_s_start) = ddot{s}.
Definition formulation.h:229
double a_final
Boundary value a(idx_s_final) = dot{s}^2.
Definition formulation.h:225
size_t num_stationary_max_end
User-input stationary upper bound at the end.
Definition formulation.h:241
struct CoppRobot * robot
Mutable robot handle that owns station-indexed constraint storage.
Definition formulation.h:208
size_t num_stationary_max_start
User-input stationary upper bound at the start.
Definition formulation.h:237
double b_final
Boundary value b(idx_s_final) = ddot{s}.
Definition formulation.h:233
size_t idx_s_start
Start station index.
Definition formulation.h:213