81 void *inverse_dynamics_user_data);
188 size_t *out_amax_rows,
189 size_t *out_acc_rows,
190 size_t *out_jerk_rows);
Core status, memory, matrix, and shared solver option types.
CoppStatus
C ABI status code returned by COPP FFI functions.
Definition core.h:34
struct CoppPath CoppPath
Opaque C handle for a library-owned Path.
Definition path.h:34
enum CoppStatus copp_robot_clear_constraints(struct CoppRobot *robot, bool keep_idx_s)
Clear all logical constraints stored in the robot.
enum CoppStatus copp_robot_get_s(const struct CoppRobot *robot, size_t idx_s, double *out_s)
Read one station value s[idx_s] from the robot constraint buffer.
enum CoppStatus(* CoppInverseDynamicsFn)(void *user_data, size_t dim, const double *q, const double *dq, const double *ddq, double *tau)
C callback for inverse dynamics.
Definition robot.h:46
enum CoppStatus copp_add_axial_torque_limits_matrix(struct CoppRobot *robot, size_t start_idx_s, struct CoppMatrixViewF64 torque_max, struct CoppMatrixViewF64 torque_min)
Add station-varying axial torque limits over an existing robot interval.
enum CoppStatus copp_robot_pop_front_until(struct CoppRobot *robot, size_t idx_s_cut)
Remove front stations so the kept window starts at idx_s_cut or later.
enum CoppStatus copp_robot_jerk_constraints_at(const struct CoppRobot *robot, size_t idx_s, struct CoppMatrixF64 *out_jerk_a, struct CoppMatrixF64 *out_jerk_b, struct CoppMatrixF64 *out_jerk_c, struct CoppMatrixF64 *out_jerk_d, struct CoppMatrixF64 *out_jerk_max)
Export nonlinear third-order constraint rows at one station.
enum CoppStatus copp_robot_capacity(const struct CoppRobot *robot, size_t *out_capacity)
Return the allocated station capacity of the robot constraint buffer.
struct CoppRobot CoppRobot
Opaque C handle for a library-owned robot and constraint buffer.
Definition robot.h:35
enum CoppStatus copp_robot_s_vec(const struct CoppRobot *robot, size_t idx_s_from, size_t idx_s_to, struct CoppVecF64 *out_s)
Export station values over [idx_s_from, idx_s_to).
void copp_robot_free(struct CoppRobot *robot)
Release a robot handle created by copp_robot_create.
enum CoppStatus copp_robot_amax_substitute(struct CoppRobot *robot, struct CoppSliceF64 amax, size_t idx_s)
Overwrite first-order bounds from a profile.
enum CoppStatus copp_robot_set_q_3rd(struct CoppRobot *robot, size_t idx_s, struct CoppMatrixViewF64 q, struct CoppMatrixViewF64 dq, struct CoppMatrixViewF64 ddq, struct CoppMatrixViewF64 dddq)
Write third-order path derivatives into an existing robot station interval.
enum CoppStatus copp_add_raw_constraint_1st(struct CoppRobot *robot, size_t idx_s, struct CoppMatrixViewF64 amax)
Add raw first-order constraints over an existing robot station interval.
enum CoppStatus copp_robot_pop_front_n(struct CoppRobot *robot, size_t n_cols)
Remove n_cols logical stations from the front of the robot buffer.
enum CoppStatus copp_add_axial_acceleration_limits(struct CoppRobot *robot, size_t start_idx_s, size_t len, struct CoppSliceF64 acceleration_max, struct CoppSliceF64 acceleration_min)
Add broadcast axial acceleration limits over an existing robot station interval.
enum CoppStatus copp_robot_dim(const struct CoppRobot *robot, size_t *out_dim)
Return the robot/path dimension stored in a robot handle.
enum CoppStatus copp_robot_set_q_2nd(struct CoppRobot *robot, size_t idx_s, struct CoppMatrixViewF64 q, struct CoppMatrixViewF64 dq, struct CoppMatrixViewF64 ddq)
Write second-order path derivatives into an existing robot station interval.
enum CoppStatus copp_robot_get_amax(const struct CoppRobot *robot, size_t idx_s, double *out_amax)
Read one first-order upper bound amax[idx_s] from the robot.
enum CoppStatus copp_robot_append_s(struct CoppRobot *robot, struct CoppSliceF64 s)
Append strictly increasing station samples to a robot.
enum CoppStatus copp_robot_acc_constraints_at(const struct CoppRobot *robot, size_t idx_s, struct CoppMatrixF64 *out_acc_a, struct CoppMatrixF64 *out_acc_b, struct CoppMatrixF64 *out_acc_max)
Export second-order constraint rows at one station.
enum CoppStatus copp_robot_constraint_rows(const struct CoppRobot *robot, size_t *out_amax_rows, size_t *out_acc_rows, size_t *out_jerk_rows)
Return the allocated row counts for first-, second-, and third-order constraints.
enum CoppStatus copp_robot_is_empty(const struct CoppRobot *robot, bool *out_is_empty)
Report whether the robot constraint buffer currently has no stations.
enum CoppStatus copp_robot_jerk_linear_constraints_at(const struct CoppRobot *robot, size_t idx_s, struct CoppMatrixF64 *out_jerk_a_linear, struct CoppMatrixF64 *out_jerk_b, struct CoppMatrixF64 *out_jerk_c, struct CoppMatrixF64 *out_jerk_max_linear)
Export linearized third-order constraint rows at one station.
enum CoppStatus copp_add_axial_torque_limits(struct CoppRobot *robot, size_t start_idx_s, size_t len, struct CoppSliceF64 torque_max, struct CoppSliceF64 torque_min)
Add broadcast axial torque limits over an existing robot station interval.
enum CoppStatus copp_robot_idx_s_start(const struct CoppRobot *robot, size_t *out_idx_s_start)
Return the first global station index currently stored in the robot.
enum CoppStatus copp_add_axial_velocity_limits_matrix(struct CoppRobot *robot, size_t start_idx_s, struct CoppMatrixViewF64 velocity_max, struct CoppMatrixViewF64 velocity_min)
Add station-varying axial velocity limits over an existing robot interval.
enum CoppStatus copp_robot_len(const struct CoppRobot *robot, size_t *out_len)
Return the current number of logical station samples stored in a robot.
enum CoppStatus copp_robot_set_inverse_dynamics(struct CoppRobot *robot, CoppInverseDynamicsFn inverse_dynamics, void *inverse_dynamics_user_data)
Store an inverse-dynamics callback in a robot handle.
enum CoppStatus copp_robot_pop_back_n(struct CoppRobot *robot, size_t n_cols)
Remove n_cols logical stations from the back of the robot buffer.
enum CoppStatus copp_robot_clear_inverse_dynamics(struct CoppRobot *robot)
Clear the inverse-dynamics callback stored in a robot handle.
enum CoppStatus copp_robot_create(size_t dim, size_t capacity, struct CoppRobot **out_robot)
Create a library-owned robot handle for C callers.
enum CoppStatus copp_add_axial_velocity_limits(struct CoppRobot *robot, size_t start_idx_s, size_t len, struct CoppSliceF64 velocity_max, struct CoppSliceF64 velocity_min)
Add broadcast axial velocity limits over an existing robot station interval.
enum CoppStatus copp_robot_amax_vec(const struct CoppRobot *robot, size_t idx_s_from, size_t idx_s_to, struct CoppVecF64 *out_amax)
Export first-order upper bounds over [idx_s_from, idx_s_to).
enum CoppStatus copp_add_axial_acceleration_limits_matrix(struct CoppRobot *robot, size_t start_idx_s, struct CoppMatrixViewF64 acceleration_max, struct CoppMatrixViewF64 acceleration_min)
Add station-varying axial acceleration limits over an existing robot interval.
enum CoppStatus copp_robot_pop_back_until(struct CoppRobot *robot, size_t idx_s_cut)
Remove back stations so the kept window ends before idx_s_cut.
enum CoppStatus copp_add_axial_jerk_limits(struct CoppRobot *robot, size_t start_idx_s, size_t len, struct CoppSliceF64 jerk_max, struct CoppSliceF64 jerk_min)
Add broadcast axial jerk limits over an existing robot station interval.
enum CoppStatus copp_robot_sample_path_2nd(struct CoppRobot *robot, const struct CoppPath *path, size_t idx_s_from, size_t idx_s_to)
Sample a path over an existing robot station interval and store second-order derivatives.
enum CoppStatus copp_add_raw_constraint_2nd(struct CoppRobot *robot, size_t idx_s, struct CoppMatrixViewF64 acc_a, struct CoppMatrixViewF64 acc_b, struct CoppMatrixViewF64 acc_max)
Add raw second-order inequality rows over a station interval.
enum CoppStatus copp_add_axial_jerk_limits_matrix(struct CoppRobot *robot, size_t start_idx_s, struct CoppMatrixViewF64 jerk_max, struct CoppMatrixViewF64 jerk_min)
Add station-varying axial jerk limits over an existing robot interval.
enum CoppStatus copp_robot_idx_s_end(const struct CoppRobot *robot, size_t *out_idx_s_end)
Return the exclusive global station end index currently stored in the robot.
enum CoppStatus copp_robot_sample_path_3rd(struct CoppRobot *robot, const struct CoppPath *path, size_t idx_s_from, size_t idx_s_to)
Sample a path over an existing robot station interval and store third-order derivatives.
enum CoppStatus copp_add_raw_constraint_3rd(struct CoppRobot *robot, size_t idx_s, struct CoppMatrixViewF64 jerk_a, struct CoppMatrixViewF64 jerk_b, struct CoppMatrixViewF64 jerk_c, struct CoppMatrixViewF64 jerk_d, struct CoppMatrixViewF64 jerk_max)
Add raw third-order nonlinear inequality rows over a station interval.
Path construction, metadata, evaluation, and callback path APIs.
Library-owned column-major f64 matrix returned to C.
Definition core.h:785
Borrowed immutable f64 matrix passed from C to COPP.
Definition core.h:647
Borrowed immutable f64 slice passed from C to COPP.
Definition core.h:708
Library-owned f64 vector returned to C.
Definition core.h:743