![]() |
Rosetta
2021.16
|
The ModuleType1 class covers the Jacobian analysis at the lower-level for type-1 systems, which have internal DoFs that can be organized as three sets of two torsion angles with intersecting axes. More...
#include <ModuleType1.hh>

Classes | |
| struct | jacobian_struct |
| Struct to pass around all variations of Jacobian matrices fw_dofs is the Jacobian matrix that maps differential torsion angles [rad/s] or [delta rad] on Cartesian reference frame fw_cons is the 6x6 Jacobian matrix that maps virtual (helper, constrained) torsion angles [rad/s] or [delta rad] on Cartesian reference frame fw_all is the 6x6 Jacobian matrix that maps all six torsion angles (real and virtual) [rad/s] or [delta rad] on Cartesian reference frame inv_dofs is the 6x6 Jacobian matrix that maps twist from Cartesian ref. frame onto torsion angles inv_cons is the 6x6 Jacobian matrix that maps twist from Cartesian ref. frame onto virtual torsion angles that represent the modules constraints inv_all is the 6x6 Jacobian matrix that maps twist from Cartesian ref. frame onto all torsion angles (real and virtual) More... | |
| struct | screw_construct_struct |
| struct with the different linear algebra objects that are needed to express the twists and wrenches to calculate the instantaneous Jacobian matrices of the module More... | |
Public Types | |
| typedef std::pair < numeric::xyzVector < core::Real > , numeric::xyzVector < core::Real > > | Screw |
| typedef of a screw as a pair of xyzVectors More... | |
Public Member Functions | |
| ModuleType1 ()=delete | |
| No default constructor because modules are not used on their own, but always as part of a SeriesJacobian. More... | |
| ModuleType1 (core::Size const &dofs_module, utility::vector1< core::Size > const &res_numbers, core::id::AtomID const &ref_atom) | |
| Constructor for module with 1, 2 or 3 sets of two AtomIDs whose X-axes represent intersecting torsion axes. More... | |
| ModuleType1 (ModuleType1 const &src) | |
| Copy constructor. More... | |
| ~ModuleType1 () override | |
| Destructor. More... | |
| ModuleType1OP | clone () const |
| Clone operation: make a copy of this object, and return an owning pointer to the copy. More... | |
| utility::vector1< core::Size > | get_residues () |
| Returns the residues that make up the Jacobian module. More... | |
| core::Size | get_number_dofs_ () |
| Returns the number of DoFs of which this module represents the differential equations. More... | |
| core::id::AtomID const & | get_ref_atom_ID () |
| Returns the AtomID of the atom whose reference frame (expressed by its stub) is used to express all vectors and matrices of the module. More... | |
| ModuleType1::jacobian_struct | update_jacobian_matrices (core::conformation::Conformation const &conformation) |
| calculate all Jacobian matrices for the instantaneous conformation More... | |
| void | apply_delta_torsions_angles (core::conformation::Conformation &conformation, numeric::MathVector< core::Real > const &dq) |
| apply vector of delta angles to the torsion angles that are associated to this instance More... | |
Private Member Functions | |
| ModuleType1::screw_construct_struct | update_screw_vectors (core::conformation::Conformation const &conformation) |
| Updates the screw axes and moment arm vectors of the object. More... | |
| utility::vector1< Screw > | get_orthogonal_wrenches_from_twists (Screw const &twist_1, Screw const &twist_2, numeric::HomogeneousTransform< core::Real > const &H_CA0_CAa, numeric::HomogeneousTransform< core::Real > const &H_CAa_Ca, numeric::HomogeneousTransform< core::Real > const &H_Ca_CAb, numeric::HomogeneousTransform< core::Real > const &H_CAb_Cb) |
| Returns the two wrenches that are dual to the input twists, which is used in Jacobian analysis. More... | |
Private Attributes | |
| core::Size | number_dofs_ |
| number of dofs of the module More... | |
| utility::vector1< core::Size > | res_numbers_ |
| residue numbers of the module More... | |
| core::id::AtomID | ref_atom_ID_ |
| the atom which acts as the reference frame for all vectors More... | |
Static Private Attributes | |
| static constexpr core::Real | denom_singular_bound_ = 1e-2 |
| bound to check for singularity in Jacobian denominator More... | |
| static constexpr core::Real | denom_orthogonal_bound_ = 1e-6 |
| bound to check for screw orthogonality More... | |
| static constexpr core::Real | pos_singular_bound_ = 1e-10 |
| bound to check for singularity in atom position More... | |
The ModuleType1 class covers the Jacobian analysis at the lower-level for type-1 systems, which have internal DoFs that can be organized as three sets of two torsion angles with intersecting axes.
| typedef std::pair< numeric::xyzVector<core::Real>, numeric::xyzVector<core::Real> > core::kinematics::jacobian::ModuleType1::Screw |
typedef of a screw as a pair of xyzVectors
|
delete |
No default constructor because modules are not used on their own, but always as part of a SeriesJacobian.
| core::kinematics::jacobian::ModuleType1::ModuleType1 | ( | core::Size const & | dofs_module, |
| utility::vector1< core::Size > const & | res_numbers, | ||
| core::id::AtomID const & | ref_atom | ||
| ) |
Constructor for module with 1, 2 or 3 sets of two AtomIDs whose X-axes represent intersecting torsion axes.
Stores the basic information needed to perform the Jacobian analysis for this module for any conformation
| [in] | key_atoms | Must have exactly six AtomIDs, whose associated stubs' X-axes identify the torsion axes |
References number_dofs_, ref_atom_ID_, and res_numbers_.
|
default |
Copy constructor.
Copy constructor. Keep default unless deep copying is needed (and in that case, consider using DeepCopyOPs.)
|
override |
Destructor.
| void core::kinematics::jacobian::ModuleType1::apply_delta_torsions_angles | ( | core::conformation::Conformation & | conformation, |
| numeric::MathVector< core::Real > const & | dq | ||
| ) |
apply vector of delta angles to the torsion angles that are associated to this instance
Apply vector of delta angles to the torsion angles that are associated to this instance.
| [in] | vector | dq must have dimension 6 and all delta angles must be in radians |
References core::id::BB, number_dofs_, res_numbers_, core::conformation::Conformation::set_torsion(), and core::conformation::Conformation::torsion().
| ModuleType1OP core::kinematics::jacobian::ModuleType1::clone | ( | ) | const |
Clone operation: make a copy of this object, and return an owning pointer to the copy.
|
inline |
Returns the number of DoFs of which this module represents the differential equations.
References number_dofs_.
|
private |
Returns the two wrenches that are dual to the input twists, which is used in Jacobian analysis.
References pos_singular_bound_, res_numbers_, and core::kinematics::TR().
Referenced by update_jacobian_matrices().
|
inline |
Returns the AtomID of the atom whose reference frame (expressed by its stub) is used to express all vectors and matrices of the module.
References ref_atom_ID_.
|
inline |
Returns the residues that make up the Jacobian module.
References res_numbers_.
| ModuleType1::jacobian_struct core::kinematics::jacobian::ModuleType1::update_jacobian_matrices | ( | core::conformation::Conformation const & | conformation | ) |
calculate all Jacobian matrices for the instantaneous conformation
Calculates all Jacobian matrices for the instantaneous conformation.
Based on the definition of the torsion axes (provided by means of AtomIDs), this function calculates the set of six twists and wrenches for this module. A twist is a dual Cartesian vector: one xyzVector expresses the differential Cartesian rotational vector, and another expresses the differential Cartesian linear vector. See Huang et al. (2011) Generalized Jacobian analysis of lower mobility manipulators for details on the definition of twists and wrenches and their relations.
References denom_orthogonal_bound_, denom_singular_bound_, core::kinematics::jacobian::ModuleType1::jacobian_struct::fw_all, core::kinematics::jacobian::ModuleType1::jacobian_struct::fw_cons, core::kinematics::jacobian::ModuleType1::jacobian_struct::fw_dofs, get_orthogonal_wrenches_from_twists(), core::kinematics::jacobian::ModuleType1::screw_construct_struct::Hmatrices, core::kinematics::jacobian::ModuleType1::jacobian_struct::inv_all, core::kinematics::jacobian::ModuleType1::jacobian_struct::inv_cons, core::kinematics::jacobian::ModuleType1::jacobian_struct::inv_dofs, number_dofs_, core::kinematics::jacobian::ModuleType1::screw_construct_struct::r_vectors, res_numbers_, core::kinematics::jacobian::ModuleType1::screw_construct_struct::s_vectors, core::chemical::element::Ta, core::chemical::element::Tc, core::kinematics::TR(), and update_screw_vectors().
|
private |
Updates the screw axes and moment arm vectors of the object.
Updates the screw axes and moment arm vectors of the object For the Jacobian analysis axis vectors and arm vectors are required Handles to the six torsion axes are provided by means of AtomIDs. AtomID uniquely points to a Stub, whose X-axes correspond to torsion axes. Thus, to identify the axes of the phi and psi torsions the stubs associated to respectively the mainchain CA- and C-atoms needs to be provided.
References core::kinematics::AtomTree::atom(), core::conformation::Conformation::atom_tree(), core::kinematics::RT::get_rotation(), core::kinematics::tree::Atom::get_stub(), core::kinematics::RT::get_translation(), core::kinematics::jacobian::ModuleType1::screw_construct_struct::Hmatrices, core::conformation::Residue::mainchain_atom(), core::kinematics::jacobian::ModuleType1::screw_construct_struct::r_vectors, ref_atom_ID_, res_numbers_, core::conformation::Conformation::residue(), and core::kinematics::jacobian::ModuleType1::screw_construct_struct::s_vectors.
Referenced by update_jacobian_matrices().
|
staticprivate |
bound to check for screw orthogonality
Referenced by update_jacobian_matrices().
|
staticprivate |
bound to check for singularity in Jacobian denominator
Referenced by update_jacobian_matrices().
|
private |
number of dofs of the module
Referenced by apply_delta_torsions_angles(), get_number_dofs_(), ModuleType1(), and update_jacobian_matrices().
|
staticprivate |
bound to check for singularity in atom position
Referenced by get_orthogonal_wrenches_from_twists().
|
private |
the atom which acts as the reference frame for all vectors
Referenced by get_ref_atom_ID(), ModuleType1(), and update_screw_vectors().
|
private |
residue numbers of the module
Referenced by apply_delta_torsions_angles(), get_orthogonal_wrenches_from_twists(), get_residues(), ModuleType1(), update_jacobian_matrices(), and update_screw_vectors().
1.8.7