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
108
132typedef struct Copp2Problem {
136 const struct CoppRobot *robot;
148 double a_start;
152 double a_final;
162
178typedef struct Topp2Problem {
182 const struct CoppRobot *robot;
194 double a_start;
198 double a_final;
200
240
250
320
399
401
402#ifdef __cplusplus
403}
404#endif
405
406#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.
double a_final
Boundary value a(idx_s_final) = (ds/dt)^2.
size_t idx_s_start
Closed start station index.
const struct CoppRobot * robot
Robot handle that owns the station-indexed constraint storage.
double a_start
Boundary value a(idx_s_start) = (ds/dt)^2.
size_t idx_s_final
Closed final station index.
const struct CoppObjective * objectives
Objective descriptor array.
size_t num_objectives
Number of objective descriptors.
Borrowed value descriptor for a COPP3 problem solved from C.
size_t num_objectives
Number of objective descriptors.
size_t idx_s_start
Start station index.
const struct CoppObjective * objectives
Objective descriptor array.
double a_final
Boundary value a(idx_s_final) = dot{s}^2.
double b_final
Boundary value b(idx_s_final) = ddot{s}.
struct CoppRobot * robot
Mutable robot handle that owns station-indexed constraint storage.
double a_start
Boundary value a(idx_s_start) = dot{s}^2.
double b_start
Boundary value b(idx_s_start) = ddot{s}.
double a_linearization_floor
Denominator floor used when linearizing third-order constraints.
struct CoppSliceF64 a_linearization
Reference profile a[k] used to linearize third-order constraints.
size_t num_stationary_max_end
User-input stationary upper bound at the end.
size_t num_stationary_max_start
User-input stationary upper bound at the start.
Borrowed objective descriptor for COPP solvers.
Definition formulation.h:86
struct CoppSliceF64 beta
Linear objective coefficient for variable b.
struct CoppSliceF64 normalize
Torque objective normalization vector.
double weight
Objective weight.
Definition formulation.h:94
enum CoppObjectiveKind kind
Objective kind.
Definition formulation.h:90
struct CoppSliceF64 alpha
Linear objective coefficient for variable a.
Definition formulation.h:98
Owned third-order profile returned by TOPP3/COPP3 C ABI solvers.
struct CoppVecF64 b
Node-based profile b[k] = ddot{s}_k.
size_t num_stationary_end
Effective stationary interval count at the end.
struct CoppVecF64 a
Node-based profile a[k] = dot{s}_k^2.
size_t num_stationary_start
Effective stationary interval count at the start.
Borrowed immutable f64 slice passed from C to COPP.
Definition core.h:781
Library-owned f64 vector returned to C.
Definition core.h:828
Borrowed value descriptor for a TOPP2 problem solved from C.
const struct CoppRobot * robot
Robot handle that owns the station-indexed constraint storage.
double a_final
Boundary value a(idx_s_final) = (ds/dt)^2.
size_t idx_s_final
Closed final station index.
size_t idx_s_start
Closed start station index.
double a_start
Boundary value a(idx_s_start) = (ds/dt)^2.
Borrowed value descriptor for a TOPP3 problem solved from C.
double a_start
Boundary value a(idx_s_start) = dot{s}^2.
double a_linearization_floor
Denominator floor used when linearizing third-order constraints.
struct CoppSliceF64 a_linearization
Reference profile a[k] used to linearize third-order constraints.
double b_start
Boundary value b(idx_s_start) = ddot{s}.
double a_final
Boundary value a(idx_s_final) = dot{s}^2.
size_t num_stationary_max_end
User-input stationary upper bound at the end.
struct CoppRobot * robot
Mutable robot handle that owns station-indexed constraint storage.
size_t num_stationary_max_start
User-input stationary upper bound at the start.
double b_final
Boundary value b(idx_s_final) = ddot{s}.
size_t idx_s_start
Start station index.