![]() |
amino
1.0-beta2
Lightweight Robot Utility Library
|
Integration between scene graphs and control. More...
Go to the source code of this file.
Functions | |
AA_API struct aa_ct_pt_list * | aa_rx_ct_pt_list (struct aa_mem_region *region, size_t n_q, size_t n_path, double *path) |
Return a point list for a path. More... | |
AA_API struct aa_ct_limit * | aa_rx_ct_limits (struct aa_mem_region *region, const struct aa_rx_sg *sg) |
Extract the limits from a scene graph. More... | |
AA_API int | aa_rx_ct_tjx_path (struct aa_mem_region *region, const struct aa_rx_ik_parm *opts, const struct aa_rx_sg_sub *ssg, struct aa_ct_seg_list *segs, size_t n_q_all, const double *q_start_all, size_t *n_points, double **path) |
AA_API struct aa_ct_limit * | aa_rx_ct_sg_limits (struct aa_mem_region *region, const struct aa_rx_sg *sg) |
AA_API struct aa_rx_ct_wk_opts * | aa_rx_ct_wk_opts_create (void) |
Create workspce control options. | |
AA_API void | aa_rx_ct_wk_opts_destroy (struct aa_rx_ct_wk_opts *) |
Destroy workspce control options. | |
AA_API void | aa_rx_ct_wk_dx_pos (const struct aa_rx_ct_wk_opts *opts, const double *E_act, const double *E_ref, double *dx) |
Proportional control on pose error. More... | |
AA_API int | aa_rx_ct_wk_dx2dq (const struct aa_rx_sg_sub *ssg, const struct aa_rx_ct_wk_opts *opts, size_t n_tf, const double *TF_abs, size_t ld_tf, size_t n_x, const double *dx, size_t n_q, double *dq) |
Convert workspace (Cartesian) velocity to joint velocity. More... | |
AA_API int | aa_rx_ct_wk_dx2dq_np (const struct aa_rx_sg_sub *ssg, const struct aa_rx_ct_wk_opts *opts, size_t n_tf, const double *TF_abs, size_t ld_tf, size_t n_x, const double *dx, size_t n_q, const double *dq_r, double *dq) |
Convert workspace (Cartesian) velocity to joint velocity, with nullspace projection. More... | |
AA_API struct aa_rx_ct_wk_lc3_cx * | aa_rx_ct_wk_lc3_create (const struct aa_rx_sg_sub *ssg, const struct aa_rx_ct_wk_opts *opts) |
AA_API int | aa_rx_ct_wk_dx2dq_lc3 (const struct aa_rx_ct_wk_lc3_cx *lc3, double dt, size_t n_tf, const double *TF_abs, size_t ld_tf, size_t n_x, const double *dx_r, size_t n_q, const double *q_a, const double *dq_a, const double *dq_r, double *dq) |
AA_API void | aa_rx_ct_wk_dqcenter (const struct aa_rx_sg_sub *ssg, const struct aa_rx_ct_wk_opts *opts, size_t n_q, const double *q, double *dq_r) |
Find joint-centering reference velocity. More... | |
Integration between scene graphs and control.
Definition in file rx_ct.h.
AA_API struct aa_ct_limit* aa_rx_ct_limits | ( | struct aa_mem_region * | region, |
const struct aa_rx_sg * | sg | ||
) |
Extract the limits from a scene graph.
region | Memory region to allocate limits from |
sg | The scene graph |
AA_API struct aa_ct_pt_list* aa_rx_ct_pt_list | ( | struct aa_mem_region * | region, |
size_t | n_q, | ||
size_t | n_path, | ||
double * | path | ||
) |
Return a point list for a path.
region | Memory region to allocate point list from |
n_q | Number of configuration variables |
n_path | Number of waypoints in the path |
path | Path data |
AA_API void aa_rx_ct_wk_dqcenter | ( | const struct aa_rx_sg_sub * | ssg, |
const struct aa_rx_ct_wk_opts * | opts, | ||
size_t | n_q, | ||
const double * | q, | ||
double * | dq_r | ||
) |
Find joint-centering reference velocity.
[in] | ssg | the subscenegraph to control |
[in] | opts | workspace control options |
[in] | n_q | size of q |
[in] | q | actual joint positions for the subscenegraph |
[out] | dq_r | centering velocities for the subscenegraph |
AA_API int aa_rx_ct_wk_dx2dq | ( | const struct aa_rx_sg_sub * | ssg, |
const struct aa_rx_ct_wk_opts * | opts, | ||
size_t | n_tf, | ||
const double * | TF_abs, | ||
size_t | ld_tf, | ||
size_t | n_x, | ||
const double * | dx, | ||
size_t | n_q, | ||
double * | dq | ||
) |
Convert workspace (Cartesian) velocity to joint velocity.
[in] | ssg | the subscenegraph to control |
[in] | opts | workspace control options |
[in] | n_tf | number of frames in TF_abs |
[in] | TF_abs | absolute frames (quaternion-translations) for the entire scenegraph |
[in] | ld_tf | Leading dimension of TF_abs |
[in] | n_x | size of dx |
[in] | dx | reference workspace velocity |
[in] | n_q | size of dq |
[out] | dq | reference joint velocity for subscenegraph |
AA_API int aa_rx_ct_wk_dx2dq_np | ( | const struct aa_rx_sg_sub * | ssg, |
const struct aa_rx_ct_wk_opts * | opts, | ||
size_t | n_tf, | ||
const double * | TF_abs, | ||
size_t | ld_tf, | ||
size_t | n_x, | ||
const double * | dx, | ||
size_t | n_q, | ||
const double * | dq_r, | ||
double * | dq | ||
) |
Convert workspace (Cartesian) velocity to joint velocity, with nullspace projection.
[in] | ssg | the subscenegraph to control |
[in] | opts | workspace control options |
[in] | n_tf | number of frames in TF_abs |
[in] | TF_abs | absolute frames (quaternion-translations) for the entire scenegraph |
[in] | ld_tf | Leading dimension of TF_abs |
[in] | n_x | size of dx |
[in] | dx | reference workspace velocity |
[in] | n_q | size of dq |
[in] | dq_r | reference joint velocity (nullspace projected) for subscenegraph |
[out] | dq | computed reference joint velocity for subscenegraph |
AA_API void aa_rx_ct_wk_dx_pos | ( | const struct aa_rx_ct_wk_opts * | opts, |
const double * | E_act, | ||
const double * | E_ref, | ||
double * | dx | ||
) |
Proportional control on pose error.
The computed reference term is ADDED to dx.
[in] | opts | Workspace control options |
[in] | E_act | Actual pose (quaternion-translation) |
[in] | E_ref | Reference pose (quaternion-translation) |
[in,out] | dx | Reference workspace velocity |