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) |
| 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().
1.5.6