scitbx::rigid_body Namespace Reference

Rigid-body algorithms (main reference: see essence/featherstone.py). More...


Classes

struct  body_t
 Abstract body type. More...
struct  alignment_t
 Change-of-basis ("cb") matrix for joint alignment and its inverse. More...
struct  joint_t
 Abstract joint model. More...

Namespaces

namespace  array_packing
 Array packing and unpacking, mainly to aid Python interfaces.
namespace  body_lib
 Body models and associated utilities.
namespace  featherstone
 See essence/featherstone.py.
namespace  joint_lib
 See essence/joint_lib.py.
namespace  spatial_lib
 See essence/spatial_lib.py.
namespace  tardy
 See essence/tardy.py.

Functions

af::shared< rotr3< ft > > const & aja_array ()
 Not available in Python.
af::shared< mat3< ft > > const & jar_array ()
 Not available in Python.
af::shared< rotr3< ft > > const & cb_up_array ()
 RBDA Example 4.4, p. 80.
af::shared< af::versa< ft,
af::mat_grid > > const & 
xup_array ()
 RBDA Example 4.4, p. 80.
af::shared< af::tiny< ft, 6 >
> const & 
spatial_velocities ()
 RBDA Example 4.4, p. 80.
ft const & e_kin ()
 RBDA Eq. 2.67, p. 35.
void reset_e_kin (ft const &e_kin_target, ft const &e_kin_epsilon=1e-12)
void assign_zero_velocities ()
af::shared< af::versa< ft,
af::mat_grid > > 
accumulated_spatial_inertia ()
af::shared< ft > qd_e_kin_scales (ft e_kin_epsilon=1e-12)
boost::optional< af::shared< ft > > assign_random_velocities (random_gauss_adaptor< ft > &random_gauss, boost::optional< ft > const &e_kin_target=boost::optional< ft >(), ft const &e_kin_epsilon=1e-12)
af::shared< af::small< ft, 6 > > inverse_dynamics (af::const_ref< af::small< ft, 6 > > const &qdd_array, af::const_ref< af::tiny< ft, 6 > > const &f_ext_array, af::const_ref< ft > const &grav_accn)
 RBDA Tab. 5.1, p. 96.
af::shared< ft > inverse_dynamics_packed (af::const_ref< ft > const &qdd_packed=af::const_ref< ft >(0, 0), af::const_ref< ft > const &f_ext_packed=af::const_ref< ft >(0, 0), af::const_ref< ft > const &grav_accn=af::const_ref< ft >(0, 0))
 Returns a packed array of joint force variables (tau_packed).
af::shared< af::small< ft, 6 > > f_ext_as_tau (af::const_ref< af::tiny< ft, 6 > > const &f_ext_array)
af::shared< ft > f_ext_as_tau_packed (af::const_ref< ft > const &f_ext_packed)
af::shared< af::small< ft, 6 > > forward_dynamics_ab (af::const_ref< af::small< ft, 6 > > const &tau_array, af::const_ref< af::tiny< ft, 6 > > const &f_ext_array, af::const_ref< ft > const &grav_accn)
 RBDA Tab. 7.1, p. 132.
af::shared< ft > forward_dynamics_ab_packed (af::const_ref< ft > const &tau_packed=af::const_ref< ft >(0, 0), af::const_ref< ft > const &f_ext_packed=af::const_ref< ft >(0, 0), af::const_ref< ft > const &grav_accn=af::const_ref< ft >(0, 0))
 Returns a packed array of joint acceleration variables (qdd_packed).
template<typename FloatType>
af::tiny< FloatType, 4 > vec4_normalize (af::tiny< FloatType, 4 > const &v)
template<typename FloatType>
af::tiny< FloatType, 4 > mat4x3_mul_vec3 (af::tiny< FloatType, 4 *3 > const &m, vec3< FloatType > const &v)
template<typename FloatType>
af::tiny< FloatType, 4 *3 > mat4x4_mul_mat4x3 (af::tiny< FloatType, 4 *4 > const &a, af::tiny< FloatType, 4 *3 > const &b)
template<typename FloatType>
af::tiny< FloatType, 6 > mat_6xn_mul_vec_n (af::const_ref< FloatType, af::mat_grid > const &a, af::const_ref< FloatType > const &b)
template<typename FloatType>
af::tiny< FloatType, 6 > mat_6x6_transpose_mul_vec6 (af::const_ref< FloatType, af::mat_grid > const &a, af::const_ref< FloatType > const &b)
template<typename FloatType>
af::small< FloatType, 6 > mat_mxn_mul_vec_n (af::const_ref< FloatType, af::mat_grid > const &a, af::const_ref< FloatType > const &b)
template<typename FloatType>
af::small< FloatType, 6 > mat_mxn_transpose_mul_vec_n (af::const_ref< FloatType, af::mat_grid > const &a, af::const_ref< FloatType > const &b)
template<typename ElementType, std::size_t N>
ElementType dot_product (af::tiny< ElementType, N > const &a, af::tiny< ElementType, N > const &b)
template<typename FloatType, std::size_t ResultSize>
void matrix_mul (af::tiny< FloatType, ResultSize > &result, af::const_ref< FloatType, af::mat_grid > const &lhs, af::const_ref< FloatType > const &rhs)
template<typename FloatType>
af::versa< FloatType,
af::mat_grid > 
a_transpose_mul_b_mul_a (af::const_ref< FloatType, af::mat_grid > const &a, af::const_ref< FloatType, af::mat_grid > const &b)


Detailed Description

Rigid-body algorithms (main reference: see essence/featherstone.py).

Function Documentation

af::shared<rotr3<ft> > const& scitbx::rigid_body::cb_up_array (  ) 

RBDA Example 4.4, p. 80.

Not available in Python.

References body_t::cb_tree, and body_t::joint.

Referenced by spatial_velocities(), and xup_array().

af::shared<af::small<ft, 6> > scitbx::rigid_body::f_ext_as_tau ( af::const_ref< af::tiny< ft, 6 > > const &  f_ext_array  ) 

Simplified version of Inverse Dynamics via Recursive Newton-Euler Algorithm, with all qd, qdd zero, but non-zero external forces.

References body_t::joint, body_t::parent, SCITBX_ASSERT, and xup_array().

Referenced by model::d_e_pot_d_q(), and f_ext_as_tau_packed().

af::shared<ft> scitbx::rigid_body::f_ext_as_tau_packed ( af::const_ref< ft > const &  f_ext_packed  ) 

Simplified version of Inverse Dynamics via Recursive Newton-Euler Algorithm, with all qd, qdd zero, but non-zero external forces.

References f_ext_as_tau(), and SCITBX_ASSERT.

af::shared<af::small<ft, 6> > scitbx::rigid_body::forward_dynamics_ab ( af::const_ref< af::small< ft, 6 > > const &  tau_array,
af::const_ref< af::tiny< ft, 6 > > const &  f_ext_array,
af::const_ref< ft > const &  grav_accn 
)

RBDA Tab. 7.1, p. 132.

Forward Dynamics of a kinematic tree via the Articulated-Body Algorithm. tau_array is a vector of force variables. The return value (qdd_array) is a vector of joint acceleration variables. f_ext_array specifies external forces acting on the bodies. If f_ext_array is None then there are no external forces; otherwise, f_ext_array[i] is a spatial force vector giving the force acting on body i, expressed in body i coordinates. grav_accn is a 6D vector expressing the linear acceleration due to gravity.

References scitbx::rigid_body::spatial_lib::crf(), scitbx::rigid_body::spatial_lib::crm(), body_t::joint, body_t::parent, body_t::qd(), SCITBX_ASSERT, spatial_velocities(), and xup_array().

Referenced by forward_dynamics_ab_packed(), and model::qdd_array().

af::shared<af::small<ft, 6> > scitbx::rigid_body::inverse_dynamics ( af::const_ref< af::small< ft, 6 > > const &  qdd_array,
af::const_ref< af::tiny< ft, 6 > > const &  f_ext_array,
af::const_ref< ft > const &  grav_accn 
)

RBDA Tab. 5.1, p. 96.

Inverse Dynamics of a kinematic tree via Recursive Newton-Euler Algorithm. qdd_array is a vector of joint acceleration variables. The return value (tau) is a vector of joint force variables. f_ext_array specifies external forces acting on the bodies. If f_ext_array is None then there are no external forces; otherwise, f_ext_array[i] is a spatial force vector giving the force acting on body i, expressed in body i coordinates. grav_accn is a 6D vector expressing the linear acceleration due to gravity.

References scitbx::rigid_body::spatial_lib::crf(), scitbx::rigid_body::spatial_lib::crm(), body_t::i_spatial, body_t::joint, body_t::parent, body_t::qd(), SCITBX_ASSERT, spatial_velocities(), and xup_array().

Referenced by inverse_dynamics_packed().

af::shared<af::tiny<ft, 6> > const& scitbx::rigid_body::spatial_velocities (  ) 

RBDA Example 4.4, p. 80.

Not available in Python.

References cb_up_array(), body_t::joint, body_t::parent, body_t::qd(), and SCITBX_ASSERT.

Referenced by e_kin(), forward_dynamics_ab(), and inverse_dynamics().

af::shared<af::versa<ft, af::mat_grid> > const& scitbx::rigid_body::xup_array (  ) 

RBDA Example 4.4, p. 80.

Not available in Python.

References scitbx::rigid_body::spatial_lib::cb_as_spatial_transform(), and cb_up_array().

Referenced by f_ext_as_tau(), forward_dynamics_ab(), and inverse_dynamics().


Generated on Thu Jun 19 15:35:08 2014 for cctbx by  doxygen 1.5.6