DYNAMICS C API
C-compatible interface to the DYNAMICS library
Loading...
Searching...
No Matches
Serial linkage operations

Functions

int c_alloc_dh_table (int n, c_dh_table *tbl)
 Allocate a Denavit-Hartenberg table.
 
void c_free_dh_table (c_dh_table *tbl)
 Release a Denavit-Hartenberg table.
 
void c_define_link_csys (const double xim1[3], const double zim1[3], const double zi[3], const double rim1[3], const double ri[3], c_coordinate_system *csys)
 Define a link coordinate system from adjacent geometry.
 
void c_define_csys (const double i[3], const double j[3], const double k[3], const double o[3], c_coordinate_system *csys)
 Define a coordinate system from basis vectors and origin.
 
void c_build_dh_table (int n, const c_coordinate_system *csys, c_dh_table *tbl)
 Build Denavit-Hartenberg parameters from coordinate systems.
 
int c_alloc_serial_linkage (int n, c_serial_linkage *lnk)
 Allocate a serial linkage.
 
void c_free_serial_linkage (c_serial_linkage *lnk)
 Release a serial linkage.
 
void c_build_serial_linkage (int n, const c_binary_link *links, c_serial_linkage *linkage)
 Build a serial linkage from link definitions.
 
void c_serial_linkage_forward_kinematics (int n, const c_serial_linkage *lnk, const double *q, double *T, int ldt)
 Evaluate serial-link forward kinematics.
 
void c_serial_linkage_jacobian (int n, const c_serial_linkage *lnk, const double *q, double *jac, int ldj)
 Evaluate the serial-link Jacobian.
 
void c_serial_linkage_inverse_kinematics (int n, const c_serial_linkage *lnk, const double *qo, const double *trg, int ldt, double *q, c_iteration_behavior *ib)
 Solve serial-link inverse kinematics.
 

Detailed Description

Function Documentation

◆ c_alloc_dh_table()

int c_alloc_dh_table ( int  n,
c_dh_table *  tbl 
)

Allocate a Denavit-Hartenberg table.

Parameters
nNumber of parameter sets.
tblTable initialized by the routine.
Returns
Zero on success; nonzero on allocation failure.

◆ c_free_dh_table()

void c_free_dh_table ( c_dh_table *  tbl)

Release a Denavit-Hartenberg table.

Parameters
tblTable to release.

◆ c_define_link_csys()

void c_define_link_csys ( const double  xim1[3],
const double  zim1[3],
const double  zi[3],
const double  rim1[3],
const double  ri[3],
c_coordinate_system *  csys 
)

Define a link coordinate system from adjacent geometry.

Parameters
xim1Previous x direction.
zim1Previous z direction.
ziCurrent z direction.
rim1Previous origin.
riCurrent origin.
csysOutput coordinate system.

◆ c_define_csys()

void c_define_csys ( const double  i[3],
const double  j[3],
const double  k[3],
const double  o[3],
c_coordinate_system *  csys 
)

Define a coordinate system from basis vectors and origin.

Parameters
iFirst basis vector.
jSecond basis vector.
kThird basis vector.
oOrigin.
csysOutput coordinate system.

◆ c_build_dh_table()

void c_build_dh_table ( int  n,
const c_coordinate_system *  csys,
c_dh_table *  tbl 
)

Build Denavit-Hartenberg parameters from coordinate systems.

Parameters
nNumber of systems.
csysCoordinate systems.
tblOutput table.

◆ c_alloc_serial_linkage()

int c_alloc_serial_linkage ( int  n,
c_serial_linkage *  lnk 
)

Allocate a serial linkage.

Parameters
nLink count.
lnkLinkage initialized by the routine.
Returns
Zero on success; nonzero on allocation failure.

◆ c_free_serial_linkage()

void c_free_serial_linkage ( c_serial_linkage *  lnk)

Release a serial linkage.

Parameters
lnkLinkage to release.

◆ c_build_serial_linkage()

void c_build_serial_linkage ( int  n,
const c_binary_link *  links,
c_serial_linkage *  linkage 
)

Build a serial linkage from link definitions.

Parameters
nLink count.
linksLink definitions.
linkageOutput linkage.

◆ c_serial_linkage_forward_kinematics()

void c_serial_linkage_forward_kinematics ( int  n,
const c_serial_linkage *  lnk,
const double *  q,
double *  T,
int  ldt 
)

Evaluate serial-link forward kinematics.

Parameters
nLink count.
lnkLinkage.
qJoint variables.
TOutput transform.
ldtLeading dimension of T.

◆ c_serial_linkage_jacobian()

void c_serial_linkage_jacobian ( int  n,
const c_serial_linkage *  lnk,
const double *  q,
double *  jac,
int  ldj 
)

Evaluate the serial-link Jacobian.

Parameters
nLink count.
lnkLinkage.
qJoint variables.
jacOutput Jacobian.
ldjLeading dimension of jac.

◆ c_serial_linkage_inverse_kinematics()

void c_serial_linkage_inverse_kinematics ( int  n,
const c_serial_linkage *  lnk,
const double *  qo,
const double *  trg,
int  ldt,
double *  q,
c_iteration_behavior *  ib 
)

Solve serial-link inverse kinematics.

Parameters
nLink count.
lnkLinkage.
qoInitial joint variables.
trgTarget transform.
ldtLeading dimension of trg.
qOutput joint variables.
ibOutput iteration statistics.