amino  1.0-beta2
Lightweight Robot Utility Library
rx_ct.h File Reference

Integration between scene graphs and control. More...

#include "amino/ct/state.h"
#include "amino/ct/traj.h"

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_limitaa_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_limitaa_rx_ct_sg_limits (struct aa_mem_region *region, const struct aa_rx_sg *sg)
 
AA_API struct aa_rx_ct_wk_optsaa_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_cxaa_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...
 

Detailed Description

Integration between scene graphs and control.

Definition in file rx_ct.h.

Function Documentation

◆ aa_rx_ct_limits()

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.

Parameters
regionMemory region to allocate limits from
sgThe scene graph

◆ aa_rx_ct_pt_list()

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.

Parameters
regionMemory region to allocate point list from
n_qNumber of configuration variables
n_pathNumber of waypoints in the path
pathPath data

◆ aa_rx_ct_wk_dqcenter()

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.

Parameters
[in]ssgthe subscenegraph to control
[in]optsworkspace control options
[in]n_qsize of q
[in]qactual joint positions for the subscenegraph
[out]dq_rcentering velocities for the subscenegraph

◆ aa_rx_ct_wk_dx2dq()

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.

Parameters
[in]ssgthe subscenegraph to control
[in]optsworkspace control options
[in]n_tfnumber of frames in TF_abs
[in]TF_absabsolute frames (quaternion-translations) for the entire scenegraph
[in]ld_tfLeading dimension of TF_abs
[in]n_xsize of dx
[in]dxreference workspace velocity
[in]n_qsize of dq
[out]dqreference joint velocity for subscenegraph

◆ aa_rx_ct_wk_dx2dq_np()

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.

See also
aa_rx_ct_wk_dqcenter()
Parameters
[in]ssgthe subscenegraph to control
[in]optsworkspace control options
[in]n_tfnumber of frames in TF_abs
[in]TF_absabsolute frames (quaternion-translations) for the entire scenegraph
[in]ld_tfLeading dimension of TF_abs
[in]n_xsize of dx
[in]dxreference workspace velocity
[in]n_qsize of dq
[in]dq_rreference joint velocity (nullspace projected) for subscenegraph
[out]dqcomputed reference joint velocity for subscenegraph

◆ aa_rx_ct_wk_dx_pos()

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.

Parameters
[in]optsWorkspace control options
[in]E_actActual pose (quaternion-translation)
[in]E_refReference pose (quaternion-translation)
[in,out]dxReference workspace velocity