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;
65 AA_API struct aa_rx_ksol_opts*
151 double *q,
enum aa_mem_refop refop );
158 double *q,
enum aa_mem_refop refop );
165 double *q_all,
enum aa_mem_refop refop );
173 const struct aa_rx_sg_sub *ssg );
180 const struct aa_rx_sg_sub *ssg,
186 aa_rx_ik_jac_x2dq (
const struct aa_rx_ksol_opts *opts,
size_t n_q,
188 const double E_ref[7],
const double dx_ref[6],
192 struct aa_rx_ik_jac_cx;
197 AA_API struct aa_rx_ik_jac_cx *
211 size_t n_tf,
const double *TF,
size_t ld_TF,
212 size_t n_q,
double *q );
218 size_t n_tf,
const double *TF,
size_t ld_TF,
219 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.
AA_API void aa_rx_ksol_opts_take_seed(struct aa_rx_ksol_opts *opts, size_t n_q, double *q_all, enum aa_mem_refop refop)
Set a configuration seed (initial) value.
AA_API void aa_rx_ksol_opts_set_dt(struct aa_rx_ksol_opts *opts, double dt)
Set integration step.
signed long aa_rx_frame_id
Type for frame indices.
AA_API void aa_rx_ksol_opts_destroy(struct aa_rx_ksol_opts *opts)
Destroy options struct for kinematic solver.
AA_API void aa_rx_ksol_opts_set_tol_trans(struct aa_rx_ksol_opts *opts, double tol)
Set translational tolerance.
AA_API void aa_rx_ik_jac_cx_destroy(struct aa_rx_ik_jac_cx *cx)
Destroy a Jacobian IK solver.
AA_API void aa_rx_ksol_opts_set_tol_angle_svd(struct aa_rx_ksol_opts *opts, double tol)
Set angular tolerance to switch to SVD.
AA_API void aa_rx_ksol_opts_set_tol_angle(struct aa_rx_ksol_opts *opts, double tol)
Set angular tolerance.
AA_API void aa_rx_ksol_opts_set_gain_trans(struct aa_rx_ksol_opts *opts, double k)
Set translational gain.
The scenegraph data structure.
AA_API void aa_rx_ksol_opts_set_tol_s2min(struct aa_rx_ksol_opts *opts, double s2min)
Set minimum square singular value for damped least squares (SVD).
AA_API void aa_rx_ksol_opts_set_tol_dq(struct aa_rx_ksol_opts *opts, double tol)
Set tolerance on joint motion.
AA_API void aa_rx_ksol_opts_center_seed(struct aa_rx_ksol_opts *opts, const struct aa_rx_sg_sub *ssg)
Set the configuration seed (initial) to be the center position.
AA_API struct aa_rx_ksol_opts * aa_rx_ksol_opts_create()
Create options struct for kinematic solver.
AA_API int aa_rx_ik_jac_solve(const struct aa_rx_ik_jac_cx *context, size_t n_tf, const double *TF, size_t ld_TF, size_t n_q, double *q)
Solve the Jacobian IK.
AA_API void aa_rx_ksol_opts_take_gain_config(struct aa_rx_ksol_opts *opts, size_t n_q, double *q, enum aa_mem_refop refop)
Set a configuration gain (nullspace).
AA_API void aa_rx_ksol_opts_set_tol_trans_svd(struct aa_rx_ksol_opts *opts, double tol)
Set translational tolerance to switch to SVD.
AA_API void aa_rx_ksol_opts_take_config(struct aa_rx_ksol_opts *opts, size_t n_q, double *q, enum aa_mem_refop refop)
Set a reference configuration.
AA_API void aa_rx_ksol_opts_set_tol_k_dls(struct aa_rx_ksol_opts *opts, double s2min)
Set damping constant for damped least squares (LU decompisition).
#define AA_RESTRICT
Defined restrict keyword based on language flavor.
#define AA_API
calling and name mangling convention for functions
AA_API struct aa_rx_ik_jac_cx * aa_rx_ik_jac_cx_create(const struct aa_rx_sg_sub *ssg, const struct aa_rx_ksol_opts *opts)
Create a Jacobian IK solver.
AA_API void aa_rx_ksol_opts_set_gain_angle(struct aa_rx_ksol_opts *opts, double k)
Set angular gain.
AA_API void aa_rx_ksol_opts_set_frame(struct aa_rx_ksol_opts *opts, aa_rx_frame_id frame)
Set frame to solve.
AA_API void aa_rx_ksol_opts_set_max_iterations(struct aa_rx_ksol_opts *opts, size_t n)
Set maximum interations.
AA_API int aa_rx_ik_jac_fun(void *context, size_t n_tf, const double *TF, size_t ld_TF, size_t n_q, double *q)
Convenience function for Jacobian IK solver.