38 #ifndef AMINO_RX_SCENE_KIN_H
39 #define AMINO_RX_SCENE_KIN_H
56 size_t n_tf,
const double *TF,
size_t ld_TF,
57 size_t n_q,
double *q );
60 struct aa_rx_ksol_opts;
62 AA_API struct aa_rx_ksol_opts*
63 aa_rx_ksol_opts_create();
66 aa_rx_ksol_opts_destroy(
struct aa_rx_ksol_opts *opts);
69 aa_rx_ksol_opts_set_dt(
struct aa_rx_ksol_opts *opts,
double dt);
72 aa_rx_ksol_opts_set_tol_angle(
struct aa_rx_ksol_opts *opts,
double tol);
75 aa_rx_ksol_opts_set_tol_trans(
struct aa_rx_ksol_opts *opts,
double tol);
78 aa_rx_ksol_opts_set_tol_angle_svd(
struct aa_rx_ksol_opts *opts,
double tol);
81 aa_rx_ksol_opts_set_tol_trans_svd(
struct aa_rx_ksol_opts *opts,
double tol);
84 aa_rx_ksol_opts_set_tol_dq(
struct aa_rx_ksol_opts *opts,
double tol);
87 aa_rx_ksol_opts_set_tol_k_dls(
struct aa_rx_ksol_opts *opts,
double s2min);
90 aa_rx_ksol_opts_set_tol_s2min(
struct aa_rx_ksol_opts *opts,
double s2min);
93 aa_rx_ksol_opts_set_gain_angle(
struct aa_rx_ksol_opts *opts,
double k );
96 aa_rx_ksol_opts_set_gain_trans(
struct aa_rx_ksol_opts *opts,
double k );
99 aa_rx_ksol_opts_set_max_iterations(
struct aa_rx_ksol_opts *opts,
size_t n );
102 aa_rx_ksol_opts_set_frame(
struct aa_rx_ksol_opts *opts,
aa_rx_frame_id frame );
105 aa_rx_ksol_opts_take_config(
struct aa_rx_ksol_opts *opts,
size_t n_q,
106 double *q,
enum aa_mem_refop refop );
109 aa_rx_ksol_opts_take_gain_config(
struct aa_rx_ksol_opts *opts,
size_t n_q,
110 double *q,
enum aa_mem_refop refop );
113 aa_rx_ksol_opts_take_seed(
struct aa_rx_ksol_opts *opts,
size_t n_q,
114 double *q_all,
enum aa_mem_refop refop );
118 aa_rx_ksol_opts_center_seed(
struct aa_rx_ksol_opts *opts,
119 const struct aa_rx_sg_sub *ssg );
126 const struct aa_rx_sg_sub *ssg,
131 struct aa_rx_ik_jac_cx;
133 AA_API struct aa_rx_ik_jac_cx *
134 aa_rx_ik_jac_cx_create(
const struct aa_rx_sg_sub *ssg,
const struct aa_rx_ksol_opts *opts );
137 aa_rx_ik_jac_cx_destroy(
struct aa_rx_ik_jac_cx *cx );
140 AA_API int aa_rx_ik_jac_solve(
const struct aa_rx_ik_jac_cx *context,
141 size_t n_tf,
const double *TF,
size_t ld_TF,
142 size_t n_q,
double *q );
144 AA_API int aa_rx_ik_jac_fun(
void *context,
145 size_t n_tf,
const double *TF,
size_t ld_TF,
146 size_t n_q,
double *q );
AA_API void aa_rx_ksol_opts_center_configs(struct aa_rx_ksol_opts *opts, const struct aa_rx_sg_sub *ssg, double gain)
Convenience function to set IK options to center joints.
int aa_rx_ik_fun(void *context, size_t n_tf, const double *TF, size_t ld_TF, size_t n_q, double *q)
General type for an IK solver function.
signed long aa_rx_frame_id
Type for frame indices.
The scenegraph data structure.
#define AA_API
calling and name mangling convention for functions