Typedefs | |
typedef ConstraintTpl< 1, double, 0 > | Constraint1d |
typedef ConstraintTpl< 3, double, 0 > | Constraint3d |
typedef ConstraintTpl< 6, double, 0 > | Constraint6d |
typedef ConstraintTpl< Eigen::Dynamic, double, 0 > | ConstraintXd |
typedef std::vector< CollisionPair > | CollisionPairsVector_t |
typedef ForceSetTpl< double, 0 > | ForceSet |
typedef std::size_t | Index |
typedef Index | JointIndex |
typedef Index | GeomIndex |
typedef Index | FrameIndex |
typedef Index | PairIndex |
typedef FrameTpl< double > | Frame |
typedef JointModelRevoluteUnalignedTpl< double > | JointModelRevoluteUnaligned |
typedef JointDataRevoluteUnalignedTpl< double > | JointDataRevoluteUnaligned |
typedef JointModelSphericalTpl< double > | JointModelSpherical |
typedef JointDataSphericalTpl< double > | JointDataSpherical |
typedef JointModelSphericalZYXTpl< double > | JointModelSphericalZYX |
typedef JointDataSphericalZYXTpl< double > | JointDataSphericalZYX |
typedef JointModelPrismaticUnalignedTpl< double > | JointModelPrismaticUnaligned |
typedef JointDataPrismaticUnalignedTpl< double > | JointDataPrismaticUnaligned |
typedef JointModelFreeFlyerTpl< double > | JointModelFreeFlyer |
typedef JointDataFreeFlyerTpl< double > | JointDataFreeFlyer |
typedef JointModelPlanarTpl< double > | JointModelPlanar |
typedef JointDataPlanarTpl< double > | JointDataPlanar |
typedef JointModelTranslationTpl< double > | JointModelTranslation |
typedef JointDataTranslationTpl< double > | JointDataTranslation |
typedef JointPrismaticUnalignedTpl< double, 0 > | JointPrismaticUnaligned |
typedef JointPrismatic< double, 0, 0 > | JointPX |
typedef JointDataPrismatic< double, 0, 0 > | JointDataPX |
typedef JointModelPrismatic< double, 0, 0 > | JointModelPX |
typedef JointPrismatic< double, 0, 1 > | JointPY |
typedef JointDataPrismatic< double, 0, 1 > | JointDataPY |
typedef JointModelPrismatic< double, 0, 1 > | JointModelPY |
typedef JointPrismatic< double, 0, 2 > | JointPZ |
typedef JointDataPrismatic< double, 0, 2 > | JointDataPZ |
typedef JointModelPrismatic< double, 0, 2 > | JointModelPZ |
typedef JointRevoluteUnboundedTpl< double, 0, 0 > | JointRUBX |
typedef JointDataRevoluteUnboundedTpl< double, 0, 0 > | JointDataRUBX |
typedef JointModelRevoluteUnboundedTpl< double, 0, 0 > | JointModelRUBX |
typedef JointRevoluteUnboundedTpl< double, 0, 1 > | JointRUBY |
typedef JointDataRevoluteUnboundedTpl< double, 0, 1 > | JointDataRUBY |
typedef JointModelRevoluteUnboundedTpl< double, 0, 1 > | JointModelRUBY |
typedef JointRevoluteUnboundedTpl< double, 0, 2 > | JointRUBZ |
typedef JointDataRevoluteUnboundedTpl< double, 0, 2 > | JointDataRUBZ |
typedef JointModelRevoluteUnboundedTpl< double, 0, 2 > | JointModelRUBZ |
typedef JointRevoluteTpl< double, 0, 0 > | JointRX |
typedef JointDataRevoluteTpl< double, 0, 0 > | JointDataRX |
typedef JointModelRevoluteTpl< double, 0, 0 > | JointModelRX |
typedef JointRevoluteTpl< double, 0, 1 > | JointRY |
typedef JointDataRevoluteTpl< double, 0, 1 > | JointDataRY |
typedef JointModelRevoluteTpl< double, 0, 1 > | JointModelRY |
typedef JointRevoluteTpl< double, 0, 2 > | JointRZ |
typedef JointDataRevoluteTpl< double, 0, 2 > | JointDataRZ |
typedef JointModelRevoluteTpl< double, 0, 2 > | JointModelRZ |
typedef boost::variant< JointModelRX, JointModelRY, JointModelRZ, JointModelRevoluteUnaligned, JointModelSpherical, JointModelSphericalZYX, JointModelPX, JointModelPY, JointModelPZ, JointModelPrismaticUnaligned, JointModelFreeFlyer, JointModelPlanar, JointModelTranslation, JointModelRUBX, JointModelRUBY, JointModelRUBZ, boost::recursive_wrapper< JointModelComposite > > | JointModelVariant |
typedef boost::variant< JointDataRX, JointDataRY, JointDataRZ, JointDataRevoluteUnaligned, JointDataSpherical, JointDataSphericalZYX, JointDataPX, JointDataPY, JointDataPZ, JointDataPrismaticUnaligned, JointDataFreeFlyer, JointDataPlanar, JointDataTranslation, JointDataRUBX, JointDataRUBY, JointDataRUBZ, boost::recursive_wrapper< JointDataComposite > > | JointDataVariant |
typedef container::aligned_vector< JointData > | JointDataVector |
typedef container::aligned_vector< JointModel > | JointModelVector |
typedef boost::variant< SpecialOrthogonalOperation< 2 >,SpecialOrthogonalOperation< 3 >,SpecialEuclideanOperation< 2 >,SpecialEuclideanOperation< 3 >,VectorSpaceOperation< 1 >,VectorSpaceOperation< 2 >,VectorSpaceOperation< 3 >,VectorSpaceOperation< Eigen::Dynamic > > | LieGroupVariant |
typedef CartesianAxis< 0 > | AxisX |
typedef CartesianAxis< 1 > | AxisY |
typedef CartesianAxis< 2 > | AxisZ |
typedef SE3Tpl< double, 0 > | SE3 |
typedef MotionTpl< double, 0 > | Motion |
typedef ForceTpl< double, 0 > | Force |
typedef InertiaTpl< double, 0 > | Inertia |
typedef Symmetric3Tpl< double, 0 > | Symmetric3 |
typedef SpatialAxis< 0 > | AxisVX |
typedef SpatialAxis< 1 > | AxisVY |
typedef SpatialAxis< 2 > | AxisVZ |
typedef SpatialAxis< 3 > | AxisWX |
typedef SpatialAxis< 4 > | AxisWY |
typedef SpatialAxis< 5 > | AxisWZ |
Enumerations | |
enum | GeometryType { VISUAL, COLLISION } |
enum | FrameType { OP_FRAME = 0x1 << 0, JOINT = 0x1 << 1, FIXED_JOINT = 0x1 << 2, BODY = 0x1 << 3, SENSOR = 0x1 << 4 } |
Enum on the possible types of frame. | |
enum | ReferenceFrame { WORLD = 0, LOCAL = 1 } |
enum | { MAX_JOINT_NV = 6 } |
enum | ModelFileExtensionType { UNKNOWN = 0, URDF, LUA } |
Supported model file extensions. | |
enum | AssignmentOperatorType { SETTO, ADDTO, RMTO } |
Functions | |
void | computeABADerivatives (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &tau, Eigen::MatrixXd &aba_partial_dq, Eigen::MatrixXd &aba_partial_dv, Data::RowMatrixXd &aba_partial_dtau) |
The derivatives of the Articulated-Body algorithm. More... | |
void | computeABADerivatives (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &tau) |
The derivatives of the Articulated-Body algorithm. More... | |
const Eigen::VectorXd & | aba (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &tau) |
The Articulated-Body algorithm. It computes the forward dynamics, aka the joint accelerations given the current state and actuation of the model. More... | |
const Eigen::VectorXd & | aba (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &tau, const container::aligned_vector< Force > &fext) |
The Articulated-Body algorithm. It computes the forward dynamics, aka the joint accelerations given the current state and actuation of the model. More... | |
const Data::RowMatrixXd & | computeMinverse (const Model &model, Data &data, const Eigen::VectorXd &q) |
Computes the inverse of the joint space inertia matrix using Articulated Body formulation. More... | |
DEFINE_ALGO_CHECKER (ABA) | |
const SE3::Vector3 & | centerOfMass (const Model &model, Data &data, const Eigen::VectorXd &q, const bool computeSubtreeComs=true) |
Computes the center of mass position of a given model according to a particular joint configuration. The result is accessible through data.com[0] for the full body com and data.com[i] for the subtree supported by joint i (expressed in the joint i frame). More... | |
const SE3::Vector3 & | centerOfMass (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const bool computeSubtreeComs=true) |
Computes the center of mass position and velocity of a given model according to a particular joint configuration and velocity. The result is accessible through data.com[0], data.vcom[0] for the full body com position and velocity. And data.com[i] and data.vcom[i] for the subtree supported by joint i (expressed in the joint i frame). More... | |
const SE3::Vector3 & | centerOfMass (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &a, const bool computeSubtreeComs=true) |
Computes the center of mass position, velocity and acceleration of a given model according to a particular joint configuration, velocity and acceleration. The result is accessible through data.com[0], data.vcom[0], data.acom[0] for the full body com position, velocity and acceleation. And data.com[i], data.vcom[i] and data.acom[i] for the subtree supported by joint i (expressed in the joint i frame). More... | |
template<bool do_position, bool do_velocity, bool do_acceleration> | |
void | centerOfMass (const Model &model, Data &data, const bool computeSubtreeComs=true) |
Computes the center of mass position, velocity and acceleration of a given model according to the current kinematic values contained in data and the template value parameters. The result is accessible through data.com[0], data.vcom[0] and data.acom[0] for the full body com position and velocity. And data.com[i] and data.vcom[i] for the subtree supported by joint i (expressed in the joint i frame). More... | |
const Data::Matrix3x & | jacobianCenterOfMass (const Model &model, Data &data, const Eigen::VectorXd &q, const bool computeSubtreeComs=true, const bool updateKinematics=true) |
Computes both the jacobian and the the center of mass position of a given model according to a particular joint configuration. The results are accessible through data.Jcom and data.com[0] and are both expressed in the world frame. In addition, the algorithm also computes the Jacobian of all the joints (. More... | |
const SE3::Vector3 & | getComFromCrba (const Model &model, Data &data) |
Extracts the center of mass position from the joint space inertia matrix (also called the mass matrix). More... | |
const Data::Matrix3x & | getJacobianComFromCrba (const Model &model, Data &data) |
Extracts both the jacobian of the center of mass (CoM), the total mass of the system and the CoM position from the joint space inertia matrix (also called the mass matrix). The results are accessible through data.Jcom, data.mass[0] and data.com[0] and are both expressed in the world frame. More... | |
const Data::Matrix6x & | ccrba (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v) |
Computes the Centroidal Momentum Matrix, the Composite Ridig Body Inertia as well as the centroidal momenta according to the current joint configuration and velocity. More... | |
const Data::Matrix6x & | dccrba (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v) |
Computes the time derivative of the Centroidal Momentum Matrix according to the current configuration and velocity vectors. More... | |
DEFINE_ALGO_CHECKER (Parent) | |
Simple model checker, that assert that model.parents is indeed a tree. | |
bool | checkData (const Model &model, const Data &data) |
void | computeAllTerms (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v) |
Computes efficiently all the terms needed for dynamic simulation. It is equivalent to the call at the same time to: More... | |
template<int level> | |
void | copy (const Model &model, const Data &origin, Data &dest) |
Copy part of the data from <orig> to <dest>. Template parameter can be used to select at which differential level the copy should occur. More... | |
const Eigen::MatrixXd & | crba (const Model &model, Data &data, const Eigen::VectorXd &q) |
Computes the upper triangular part of the joint space inertia matrix M by using the Composite Rigid Body Algorithm (Chapter 6, Rigid-Body Dynamics Algorithms, R. Featherstone, 2008). The result is accessible through data.M. More... | |
const Eigen::MatrixXd & | crbaMinimal (const Model &model, Data &data, const Eigen::VectorXd &q) |
Computes the upper triangular part of the joint space inertia matrix M by using the Composite Rigid Body Algorithm (Chapter 6, Rigid-Body Dynamics Algorithms, R. Featherstone, 2008). The result is accessible through data.M. More... | |
DEFINE_ALGO_CHECKER (CRBA) | |
AlgorithmCheckerList< ParentChecker, CRBAChecker, ABAChecker > | makeDefaultCheckerList () |
Default checker-list, used as the default argument in Model::check(). | |
const Eigen::VectorXd & | forwardDynamics (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &tau, const Eigen::MatrixXd &J, const Eigen::VectorXd &gamma, const double inv_damping=0., const bool updateKinematics=true) |
Compute the forward dynamics with contact constraints. More... | |
const Eigen::VectorXd & | impulseDynamics (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v_before, const Eigen::MatrixXd &J, const double r_coeff=0., const bool updateKinematics=true) |
Compute the impulse dynamics with contact constraints. More... | |
double | kineticEnergy (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const bool update_kinematics=true) |
Computes the kinetic energy of the system. The result is accessible through data.kinetic_energy. More... | |
double | potentialEnergy (const Model &model, Data &data, const Eigen::VectorXd &q, const bool update_kinematics=true) |
Computes the potential energy of the system, i.e. the potential energy linked to the gravity field. The result is accessible through data.potential_energy. More... | |
Eigen::VectorXd | finiteDifferenceIncrement (const Model &model) |
Computes the finite difference increments for each degree of freedom according to the current joint configuration. More... | |
void | updateFramePlacements (const Model &model, Data &data) |
Updates the placement of each frame contained in the model. More... | |
const SE3 & | updateFramePlacement (const Model &model, Data &data, const Model::FrameIndex frame_id) |
Updates the placement of the given frame. More... | |
PINOCCHIO_DEPRECATED void | framesForwardKinematics (const Model &model, Data &data) |
Updates the placement of each frame contained in the model. More... | |
void | framesForwardKinematics (const Model &model, Data &data, const Eigen::VectorXd &q) |
First calls the forwardKinematics on the model, then computes the placement of each frame. /sa se3::forwardKinematics. More... | |
void | getFrameVelocity (const Model &model, const Data &data, const Model::FrameIndex frame_id, Motion &frame_v) |
Returns the spatial velocity of the frame expressed in the LOCAL frame coordinate system. You must first call se3::forwardKinematics to update placement and velocity values in data structure. More... | |
void | getFrameAcceleration (const Model &model, const Data &data, const Model::FrameIndex frame_id, Motion &frame_a) |
Returns the spatial acceleration of the frame expressed in the LOCAL frame coordinate system. You must first call se3::forwardKinematics to update placement values in data structure. More... | |
template<ReferenceFrame rf> | |
void | getFrameJacobian (const Model &model, const Data &data, const Model::FrameIndex frame_id, Data::Matrix6x &J) |
Returns the jacobian of the frame expressed either in the LOCAL frame coordinate system or in the WORLD coordinate system, depending on the value of the template parameter rf. You must first call se3::computeJointJacobians followed by se3::framesForwardKinematics to update placement values in data structure. More... | |
template<ReferenceFrame rf> | |
void | getFrameJacobianTimeVariation (const Model &model, const Data &data, const Model::FrameIndex frameId, Data::Matrix6x &dJ) |
Computes the Jacobian time variation of a specific frame (given by frame_id) expressed either in the world frame (rf = WORLD) or in the local frame (rf = LOCAL). More... | |
void | updateGeometryPlacements (const Model &model, Data &data, const GeometryModel &geomModel, GeometryData &geomData, const Eigen::VectorXd &q) |
Apply a forward kinematics and update the placement of the geometry objects. More... | |
void | updateGeometryPlacements (const Model &model, const Data &data, const GeometryModel &geomModel, GeometryData &geomData) |
Update the placement of the geometry objects according to the current joint placements contained in data. More... | |
bool | computeCollision (const GeometryModel &geomModel, GeometryData &geomData, const PairIndex &pairId) |
Compute the collision status between a SINGLE collision pair. The result is store in the collisionResults vector. More... | |
bool | computeCollisions (const Model &model, Data &data, const GeometryModel &geomModel, GeometryData &geomData, const Eigen::VectorXd &q, const bool stopAtFirstCollision=false) |
fcl::DistanceResult & | computeDistance (const GeometryModel &geomModel, GeometryData &geomData, const PairIndex &pairId) |
Compute the minimal distance between collision objects of a SINGLE collison pair. More... | |
template<bool ComputeShortest> | |
std::size_t | computeDistances (const Model &model, Data &data, const GeometryModel &geomModel, GeometryData &geomData, const Eigen::VectorXd &q) |
void | computeBodyRadius (const Model &model, const GeometryModel &geomModel, GeometryData &geomData) |
void | appendGeometryModel (GeometryModel &geomModel1, GeometryData &geomData1) |
bool | computeCollisions (const GeometryModel &geomModel, GeometryData &geomData, const bool stopAtFirstCollision=true) |
template<bool COMPUTE_SHORTEST> | |
std::size_t | computeDistances (const GeometryModel &geomModel, GeometryData &geomData) |
void | appendGeometryModel (GeometryModel &geomModel1, const GeometryModel &geomModel2) |
const Data::Matrix6x & | computeJointJacobians (const Model &model, Data &data, const Eigen::VectorXd &q) |
Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame. The result is accessible through data.J. This function computes also the forwardKinematics of the model. More... | |
PINOCCHIO_DEPRECATED const Data::Matrix6x & | computeJacobians (const Model &model, Data &data, const Eigen::VectorXd &q) |
Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame. The result is accessible through data.J. This function computes also the forwardKinematics of the model. More... | |
const Data::Matrix6x & | computeJointJacobians (const Model &model, Data &data) |
Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame. The result is accessible through data.J. This function assumes that se3::forwardKinematics has been called before. More... | |
PINOCCHIO_DEPRECATED const Data::Matrix6x & | computeJacobians (const Model &model, Data &data) |
Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame. The result is accessible through data.J. This function assumes that se3::forwardKinematics has been called before. More... | |
template<ReferenceFrame rf> | |
void | getJointJacobian (const Model &model, const Data &data, const Model::JointIndex jointId, Data::Matrix6x &J) |
Computes the Jacobian of a specific joint frame expressed either in the world (rf = WORLD) frame or in the local frame (rf = LOCAL) of the joint. More... | |
template<ReferenceFrame rf> | |
PINOCCHIO_DEPRECATED void | getJacobian (const Model &model, const Data &data, const Model::JointIndex jointId, Data::Matrix6x &J) |
Computes the Jacobian of a specific joint frame expressed either in the world (rf = WORLD) frame or in the local frame (rf = LOCAL) of the joint. More... | |
void | jointJacobian (const Model &model, Data &data, const Eigen::VectorXd &q, const Model::JointIndex jointId, Data::Matrix6x &J) |
Computes the Jacobian of a specific joint frame expressed in the local frame of the joint and store the result in the input argument J. More... | |
PINOCCHIO_DEPRECATED void | jacobian (const Model &model, Data &data, const Eigen::VectorXd &q, const Model::JointIndex jointId, Data::Matrix6x &J) |
Computes the Jacobian of a specific joint frame expressed in the local frame of the joint and store the result in the input argument J. More... | |
PINOCCHIO_DEPRECATED const Data::Matrix6x & | jointJacobian (const Model &model, Data &data, const Eigen::VectorXd &q, const Model::JointIndex jointId) |
Computes the Jacobian of a specific joint frame expressed in the local frame of the joint. The result is stored in data.J. More... | |
const Data::Matrix6x & | computeJointJacobiansTimeVariation (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v) |
Computes the full model Jacobian variations with respect to time. It corresponds to dJ/dt which depends both on q and v. The result is accessible through data.dJ. More... | |
PINOCCHIO_DEPRECATED const Data::Matrix6x & | computeJacobiansTimeVariation (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v) |
Computes the full model Jacobian variations with respect to time. It corresponds to dJ/dt which depends both on q and v. The result is accessible through data.dJ. More... | |
template<ReferenceFrame rf> | |
void | getJointJacobianTimeVariation (const Model &model, const Data &data, const Model::JointIndex jointId, Data::Matrix6x &dJ) |
Computes the Jacobian time variation of a specific joint frame expressed either in the world frame (rf = WORLD) or in the local frame (rf = LOCAL) of the joint. More... | |
template<ReferenceFrame rf> | |
PINOCCHIO_DEPRECATED void | getJacobianTimeVariation (const Model &model, const Data &data, const Model::JointIndex jointId, Data::Matrix6x &dJ) |
Computes the Jacobian time variation of a specific joint frame expressed either in the world frame (rf = WORLD) or in the local frame (rf = LOCAL) of the joint. More... | |
template<typename LieGroup_t > | |
Eigen::VectorXd | integrate (const Model &model, const Eigen::VectorXd &q, const Eigen::VectorXd &v) |
Integrate a configuration for the specified model for a tangent vector during one unit time. More... | |
template<typename LieGroup_t > | |
Eigen::VectorXd | interpolate (const Model &model, const Eigen::VectorXd &q0, const Eigen::VectorXd &q1, const double u) |
Interpolate the model between two configurations. More... | |
template<typename LieGroup_t > | |
Eigen::VectorXd | difference (const Model &model, const Eigen::VectorXd &q0, const Eigen::VectorXd &q1) |
Compute the tangent vector that must be integrated during one unit time to go from q0 to q1. More... | |
template<typename LieGroup_t > | |
Eigen::VectorXd | squaredDistance (const Model &model, const Eigen::VectorXd &q0, const Eigen::VectorXd &q1) |
Squared distance between two configuration vectors. More... | |
template<typename LieGroup_t > | |
double | distance (const Model &model, const Eigen::VectorXd &q0, const Eigen::VectorXd &q1) |
Distance between two configuration vectors. More... | |
template<typename LieGroup_t > | |
Eigen::VectorXd | randomConfiguration (const Model &model, const Eigen::VectorXd &lowerLimits, const Eigen::VectorXd &upperLimits) |
Generate a configuration vector uniformly sampled among provided limits. More... | |
template<typename LieGroup_t > | |
Eigen::VectorXd | randomConfiguration (const Model &model) |
Generate a configuration vector uniformly sampled among the joint limits of the specified Model. More... | |
template<typename LieGroup_t > | |
void | normalize (const Model &model, Eigen::VectorXd &q) |
Normalize a configuration. More... | |
template<typename LieGroup_t > | |
bool | isSameConfiguration (const Model &model, const Eigen::VectorXd &q1, const Eigen::VectorXd &q2, const double &prec=Eigen::NumTraits< double >::dummy_precision()) |
Return true if the given configurations are equivalents. More... | |
template<typename LieGroup_t > | |
Eigen::VectorXd | neutral (const Model &model) |
Return the neutral configuration element related to the model configuration space. More... | |
void | computeForwardKinematicsDerivatives (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &a) |
Computes all the terms required to compute the derivatives of the placement, spatial velocity and acceleration for any joint of the model. More... | |
template<ReferenceFrame rf> | |
void | getJointVelocityDerivatives (const Model &model, Data &data, const Model::JointIndex jointId, Data::Matrix6x &v_partial_dq, Data::Matrix6x &v_partial_dv) |
Computes the partial derivaties of the spatial velocity of a given with respect to the joint configuration and velocity. You must first call computForwardKinematicsDerivatives before calling this function. More... | |
template<ReferenceFrame rf> | |
void | getJointAccelerationDerivatives (const Model &model, Data &data, const Model::JointIndex jointId, Data::Matrix6x &v_partial_dq, Data::Matrix6x &a_partial_dq, Data::Matrix6x &a_partial_dv, Data::Matrix6x &a_partial_da) |
Computes the partial derivaties of the spatial acceleration of a given with respect to the joint configuration, velocity and acceleration. You must first call computForwardKinematicsDerivatives before calling this function. It is important to notice that a direct outcome (for free) of this algo is v_partial_dq and v_partial_dv which is equal to a_partial_da. More... | |
void | emptyForwardPass (const Model &model, Data &data) |
Browse through the kinematic structure with a void step. More... | |
void | updateGlobalPlacements (const Model &model, Data &data) |
Update the global placement of the joints oMi according to the relative placements of the joints. More... | |
void | forwardKinematics (const Model &model, Data &data, const Eigen::VectorXd &q) |
Update the joint placements according to the current joint configuration. More... | |
void | forwardKinematics (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v) |
Update the joint placements and spatial velocities according to the current joint configuration and velocity. More... | |
void | forwardKinematics (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &a) |
Update the joint placements, spatial velocities and spatial accelerations according to the current joint configuration, velocity and acceleration. More... | |
void | computeGeneralizedGravityDerivatives (const Model &model, Data &data, const Eigen::VectorXd &q, Eigen::MatrixXd &gravity_partial_dq) |
Computes the derivative of the generalized gravity contribution with respect to the joint configuration. More... | |
void | computeRNEADerivatives (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &a, Eigen::MatrixXd &rnea_partial_dq, Eigen::MatrixXd &rnea_partial_dv, Eigen::MatrixXd &rnea_partial_da) |
Computes the derivatives of the Recursive Newton Euler Algorithms with respect to the joint configuration and the joint velocity. More... | |
void | computeRNEADerivatives (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &a) |
Computes the derivatives of the Recursive Newton Euler Algorithms with respect to the joint configuration and the joint velocity. More... | |
const Eigen::VectorXd & | rnea (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &a) |
The Recursive Newton-Euler algorithm. It computes the inverse dynamics, aka the joint torques according to the current state of the system and the desired joint accelerations. More... | |
const Eigen::VectorXd & | rnea (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v, const Eigen::VectorXd &a, const container::aligned_vector< Force > &fext) |
The Recursive Newton-Euler algorithm. It computes the inverse dynamics, aka the joint torques according to the current state of the system, the desired joint accelerations and the external forces. More... | |
const Eigen::VectorXd & | nonLinearEffects (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v) |
Computes the non-linear effects (Corriolis, centrifual and gravitationnal effects), also called the bias terms \( b(q,\dot{q}) \) of the Lagrangian dynamics: | |
const Eigen::VectorXd & | computeGeneralizedGravity (const Model &model, Data &data, const Eigen::VectorXd &q) |
Computes the generalized gravity contribution \( g(q) \) of the Lagrangian dynamics: | |
const Eigen::MatrixXd & | computeCoriolisMatrix (const Model &model, Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v) |
Computes the Coriolis Matrix \( C(q,\dot{q}) \) of the Lagrangian dynamics: | |
template<typename Scalar > | |
const Scalar | PI () |
Returns the value of PI according to the template parameters Scalar. More... | |
template<typename Derived > | |
bool | hasNaN (const Eigen::DenseBase< Derived > &m) |
template<typename D1 , typename D2 > | |
D1::Scalar | angleBetweenQuaternions (const Eigen::QuaternionBase< D1 > &q1, const Eigen::QuaternionBase< D2 > &q2) |
Compute the minimal angle between q1 and q2. More... | |
template<typename D1 , typename D2 > | |
bool | defineSameRotation (const Eigen::QuaternionBase< D1 > &q1, const Eigen::QuaternionBase< D2 > &q2, const typename D1::RealScalar &prec=Eigen::NumTraits< typename D1::Scalar >::dummy_precision()) |
Check if two quaternions define the same rotations. More... | |
template<typename D > | |
void | firstOrderNormalize (const Eigen::QuaternionBase< D > &q) |
template<typename D > | |
void | uniformRandom (const Eigen::QuaternionBase< D > &q) |
Uniformly random quaternion sphere. | |
std::ostream & | operator<< (std::ostream &os, const CollisionPair &X) |
bool | operator== (const fcl::CollisionObject &lhs, const fcl::CollisionObject &rhs) |
bool | operator== (const GeometryObject &lhs, const GeometryObject &rhs) |
std::ostream & | operator<< (std::ostream &os, const GeometryObject &geom_object) |
template<typename Scalar , int Options> | |
std::ostream & | operator<< (std::ostream &os, const FrameTpl< Scalar, Options > &f) |
std::ostream & | operator<< (std::ostream &os, const GeometryModel &geomModel) |
std::ostream & | operator<< (std::ostream &os, const GeometryData &geomData) |
JointDataVariant | createData (const JointModelVariant &jmodel) |
Visit a JointModelVariant through CreateData visitor to create a JointDataVariant. More... | |
void | calc_zero_order (const JointModelVariant &jmodel, JointDataVariant &jdata, const Eigen::VectorXd &q) |
Visit a JointDataVariant and the corresponding JointModelVariant through JointCalcZeroOrderVisitor to compute the joint data kinematics at order zero. More... | |
void | calc_first_order (const JointModelVariant &jmodel, JointDataVariant &jdata, const Eigen::VectorXd &q, const Eigen::VectorXd &v) |
Visit a JointDataVariant and the corresponding JointModelVariant through JointCalcFirstOrderVisitor to compute the joint data kinematics at order one. More... | |
void | calc_aba (const JointModelVariant &jmodel, JointDataVariant &jdata, Inertia::Matrix6 &I, const bool update_I) |
Visit a JointDataVariant and the corresponding JointModelVariant through JointCalcAbaVisitor to. More... | |
double | finiteDifferenceIncrement (const JointModelVariant &jmodel) |
Returns the finite difference increment of the joint model. More... | |
int | nv (const JointModelVariant &jmodel) |
Visit a JointModelVariant through JointNvVisitor to get the dimension of the joint tangent space. More... | |
int | nq (const JointModelVariant &jmodel) |
Visit a JointModelVariant through JointNqVisitor to get the dimension of the joint configuration space. More... | |
int | idx_q (const JointModelVariant &jmodel) |
Visit a JointModelVariant through JointIdxQVisitor to get the index in the full model configuration space corresponding to the first degree of freedom of the Joint. More... | |
int | idx_v (const JointModelVariant &jmodel) |
Visit a JointModelVariant through JointIdxVVisitor to get the index in the full model tangent space corresponding to the first joint tangent space degree. More... | |
JointIndex | id (const JointModelVariant &jmodel) |
Visit a JointModelVariant through JointIdVisitor to get the index of the joint in the kinematic chain. More... | |
void | setIndexes (JointModelVariant &jmodel, JointIndex id, int q, int v) |
Visit a JointModelVariant through JointSetIndexesVisitor to set the indexes of the joint in the kinematic chain. More... | |
std::string | shortname (const JointModelVariant &jmodel) |
Visit a JointModelVariant through JointShortnameVisitor to get the shortname of the derived joint model. More... | |
ConstraintXd | constraint_xd (const JointDataVariant &jdata) |
Visit a JointDataVariant through JointConstraintVisitor to get the joint constraint as a dense constraint. More... | |
SE3 | joint_transform (const JointDataVariant &jdata) |
Visit a JointDataVariant through JointTransformVisitor to get the joint internal transform (transform between the entry frame and the exit frame of the joint) More... | |
Motion | motion (const JointDataVariant &jdata) |
Visit a JointDataVariant through JointMotionVisitor to get the joint internal motion as a dense motion. More... | |
Motion | bias (const JointDataVariant &jdata) |
Visit a JointDataVariant through JointBiasVisitor to get the joint bias as a dense motion. More... | |
Eigen::Matrix< double, 6, Eigen::Dynamic > | u_inertia (const JointDataVariant &jdata) |
Visit a JointDataVariant through JointUInertiaVisitor to get the U matrix of the inertia matrix decomposition. More... | |
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > | dinv_inertia (const JointDataVariant &jdata) |
Visit a JointDataVariant through JointDInvInertiaVisitor to get the D^{-1} matrix of the inertia matrix decomposition. More... | |
Eigen::Matrix< double, 6, Eigen::Dynamic > | udinv_inertia (const JointDataVariant &jdata) |
Visit a JointDataVariant through JointUDInvInertiaVisitor to get U*D^{-1} matrix of the inertia matrix decomposition. More... | |
std::ostream & | operator<< (std::ostream &os, const JointModelComposite &jmodel) |
template<typename Scalar , int Options, typename Vector6Like > | |
ConstraintIdentityTpl< Scalar, Options >::Motion | operator* (const ConstraintIdentityTpl< Scalar, Options > &, const Eigen::MatrixBase< Vector6Like > &v) |
template<typename S1 , int O1, typename S2 , int O2> | |
InertiaTpl< S1, O1 >::Matrix6 | operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintIdentityTpl< S2, O2 > &) |
template<typename Matrix6Like , typename S2 , int O2> | |
EIGEN_REF_CONSTTYPE (Matrix6Like) operator*(const Eigen | |
template<typename Scalar , int Options, typename MotionDerived > | |
MotionDerived::MotionPlain | operator+ (const MotionPlanarTpl< Scalar, Options > &m1, const MotionDense< MotionDerived > &m2) |
template<typename Scalar , int Options, typename MatrixDerived > | |
MotionTpl< Scalar, Options > | operator* (const ConstraintPlanarTpl< Scalar, Options > &, const Eigen::MatrixBase< MatrixDerived > &v) |
template<typename MotionDerived , typename S2 , int O2> | |
MotionDerived::MotionPlain | operator^ (const MotionDense< MotionDerived > &m1, const MotionPlanarTpl< S2, O2 > &m2) |
template<typename S1 , int O1, typename S2 , int O2> | |
Eigen::Matrix< S1, 6, 3, O1 > | operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintPlanarTpl< S2, O2 > &) |
template<typename M6Like , typename S2 , int O2> | |
Eigen::Matrix< S2, 6, 3, O2 > | operator* (const Eigen::MatrixBase< M6Like > &Y, const ConstraintPlanarTpl< S2, O2 > &) |
template<typename Scalar , int Options, typename MotionDerived > | |
MotionDerived::MotionPlain | operator+ (const MotionPrismaticUnaligned< Scalar, Options > &m1, const MotionDense< MotionDerived > &m2) |
template<typename MotionDerived , typename S2 , int O2> | |
MotionDerived::MotionPlain | operator^ (const MotionDense< MotionDerived > &m1, const MotionPrismaticUnaligned< S2, O2 > &m2) |
template<typename S1 , int O1, typename S2 , int O2> | |
Eigen::Matrix< S1, 6, 1 > | operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintPrismaticUnaligned< S2, O2 > &cpu) |
template<typename M6 , typename S2 , int O2> | |
const Eigen::ProductReturnType< Eigen::Block< const M6, 6, 3 >, const typename ConstraintPrismaticUnaligned< S2, O2 >::Vector3 >::Type | operator* (const Eigen::MatrixBase< M6 > &Y, const ConstraintPrismaticUnaligned< S2, O2 > &cpu) |
template<typename Scalar , int Options, int axis, typename MotionDerived > | |
MotionDerived::MotionPlain | operator+ (const MotionPrismatic< Scalar, Options, axis > &m1, const MotionDense< MotionDerived > &m2) |
template<typename MotionDerived , typename S1 , int O1> | |
MotionDerived::MotionPlain | operator^ (const MotionDense< MotionDerived > &m1, const MotionPrismatic< S1, O1, 0 > &m2) |
template<typename MotionDerived , typename S1 , int O1> | |
MotionDerived::MotionPlain | operator^ (const MotionDense< MotionDerived > &m1, const MotionPrismatic< S1, O1, 1 > &m2) |
template<typename MotionDerived , typename S1 , int O1> | |
MotionDerived::MotionPlain | operator^ (const MotionDense< MotionDerived > &m1, const MotionPrismatic< S1, O1, 2 > &m2) |
template<typename S1 , int O1, typename S2 , int O2> | |
Eigen::Matrix< S1, 6, 1, O1 > | operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintPrismatic< S2, O2, 0 > &) |
template<typename S1 , int O1, typename S2 , int O2> | |
Eigen::Matrix< S1, 6, 1, O1 > | operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintPrismatic< S2, O2, 1 > &) |
template<typename S1 , int O1, typename S2 , int O2> | |
Eigen::Matrix< S1, 6, 1, O1 > | operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintPrismatic< S2, O2, 2 > &) |
template<typename M6Like , typename S2 , int O2, int axis> | |
const M6Like::ConstColXpr | operator* (const Eigen::MatrixBase< M6Like > &Y, const ConstraintPrismatic< S2, O2, axis > &) |
template<typename S1 , int O1, typename MotionDerived > | |
MotionDerived::MotionPlain | operator+ (const MotionRevoluteUnalignedTpl< S1, O1 > &m1, const MotionDense< MotionDerived > &m2) |
template<typename MotionDerived , typename S2 , int O2> | |
MotionDerived::MotionPlain | operator^ (const MotionDense< MotionDerived > &m1, const MotionRevoluteUnalignedTpl< S2, O2 > &m2) |
template<typename S1 , int O1, typename S2 , int O2> | |
Eigen::Matrix< S2, 6, 1, O2 > | operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintRevoluteUnalignedTpl< S2, O2 > &cru) |
template<typename M6Like , typename S2 , int O2> | |
const Eigen::ProductReturnType< typename Eigen::internal::remove_const< typename SizeDepType< 3 >::ColsReturn< M6Like >::ConstType >::type, typename ConstraintRevoluteUnalignedTpl< S2, O2 >::Vector3 >::Type | operator* (const Eigen::MatrixBase< M6Like > &Y, const ConstraintRevoluteUnalignedTpl< S2, O2 > &cru) |
template<typename S1 , int O1, int axis, typename MotionDerived > | |
MotionDerived::MotionPlain | operator+ (const MotionRevoluteTpl< S1, O1, axis > &m1, const MotionDense< MotionDerived > &m2) |
template<typename MotionDerived , typename S2 , int O2> | |
MotionDerived::MotionPlain | operator^ (const MotionDense< MotionDerived > &m1, const MotionRevoluteTpl< S2, O2, 0 > &m2) |
template<typename MotionDerived , typename S2 , int O2> | |
MotionDerived::MotionPlain | operator^ (const MotionDense< MotionDerived > &m1, const MotionRevoluteTpl< S2, O2, 1 > &m2) |
template<typename MotionDerived , typename S2 , int O2> | |
MotionDerived::MotionPlain | operator^ (const MotionDense< MotionDerived > &m1, const MotionRevoluteTpl< S2, O2, 2 > &m2) |
template<typename S1 , int O1, typename S2 , int O2> | |
Eigen::Matrix< S2, 6, 1, O2 > | operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintRevoluteTpl< S2, O2, 0 > &) |
template<typename S1 , int O1, typename S2 , int O2> | |
Eigen::Matrix< S2, 6, 1, O2 > | operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintRevoluteTpl< S2, O2, 1 > &) |
template<typename S1 , int O1, typename S2 , int O2> | |
Eigen::Matrix< S2, 6, 1, O2 > | operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintRevoluteTpl< S2, O2, 2 > &) |
template<typename M6Like , typename S2 , int O2, int axis> | |
const M6Like::ConstColXpr | operator* (const Eigen::MatrixBase< M6Like > &Y, const ConstraintRevoluteTpl< S2, O2, axis > &) |
template<typename MotionDerived , typename S2 , int O2> | |
MotionDerived::MotionPlain | operator+ (const MotionDense< MotionDerived > &v, const BiasSphericalZYXTpl< S2, O2 > &c) |
template<typename S1 , int O1, typename MotionDerived > | |
MotionDerived::MotionPlain | operator+ (const BiasSphericalZYXTpl< S1, O1 > &c, const MotionDense< MotionDerived > &v) |
template<typename S1 , int O1, typename S2 , int O2> | |
MotionSphericalZYXTpl< S1, O1 > | operator+ (const MotionSphericalZYXTpl< S1, O1 > &m, const BiasSphericalZYXTpl< S2, O2 > &c) |
template<typename S1 , int O1, typename MotionDerived > | |
MotionDerived::MotionPlain | operator+ (const MotionSphericalZYXTpl< S1, O1 > &m1, const MotionDense< MotionDerived > &m2) |
template<typename MotionDerived , typename S2 , int O2> | |
MotionDerived::MotionPlain | operator^ (const MotionDense< MotionDerived > &m1, const MotionSphericalZYXTpl< S2, O2 > &m2) |
template<typename S1 , int O1, typename S2 , int O2> | |
Eigen::Matrix< S1, 6, 3, O1 > | operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintSphericalZYXTpl< S2, O2 > &S) |
template<typename Matrix6Like , typename S2 , int O2> | |
const Eigen::ProductReturnType< typename Eigen::internal::remove_const< typename SizeDepType< 3 >::ColsReturn< Matrix6Like >::ConstType >::type, typename ConstraintSphericalZYXTpl< S2, O2 >::Matrix3 >::Type | operator* (const Eigen::MatrixBase< Matrix6Like > &Y, const ConstraintSphericalZYXTpl< S2, O2 > &S) |
template<typename S1 , int O1, typename MotionDerived > | |
MotionDerived::MotionPlain | operator+ (const MotionSpherical< S1, O1 > &m1, const MotionDense< MotionDerived > &m2) |
template<typename Scalar , int Options, typename Vector3Like > | |
MotionSpherical< Scalar, Options > | operator* (const ConstraintSphericalTpl< Scalar, Options > &, const Eigen::MatrixBase< Vector3Like > &v) |
template<typename MotionDerived , typename S2 , int O2> | |
MotionDerived::MotionPlain | operator^ (const MotionDense< MotionDerived > &m1, const MotionSpherical< S2, O2 > &m2) |
template<typename S1 , int O1, typename S2 , int O2> | |
Eigen::Matrix< S2, 6, 3, O2 > | operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintSphericalTpl< S2, O2 > &) |
template<typename M6Like , typename S2 , int O2> | |
SizeDepType< 3 >::ColsReturn< M6Like >::ConstType | operator* (const Eigen::MatrixBase< M6Like > &Y, const ConstraintSphericalTpl< S2, O2 > &) |
template<typename S1 , int O1, typename MotionDerived > | |
MotionDerived::MotionPlain | operator+ (const MotionTranslationTpl< S1, O1 > &m1, const MotionDense< MotionDerived > &m2) |
template<typename MotionDerived , typename S2 , int O2> | |
MotionDerived::MotionPlain | operator^ (const MotionDense< MotionDerived > &m1, const MotionTranslationTpl< S2, O2 > &m2) |
template<typename S1 , int O1, typename S2 , int O2> | |
Eigen::Matrix< S2, 6, 3, O2 > | operator* (const InertiaTpl< S1, O1 > &Y, const ConstraintTranslationTpl< S2, O2 > &) |
template<typename M6Like , typename S2 , int O2> | |
const SizeDepType< 3 >::ColsReturn< M6Like >::ConstType | operator* (const Eigen::MatrixBase< M6Like > &Y, const ConstraintTranslationTpl< S2, O2 > &) |
SE3_DETAILS_DISPATCH_JOINT_COMPOSITE_3 (IntegrateStep, IntegrateStepAlgo) | |
SE3_DETAILS_DISPATCH_JOINT_COMPOSITE_4 (InterpolateStep, InterpolateStepAlgo) | |
SE3_DETAILS_DISPATCH_JOINT_COMPOSITE_3 (DifferenceStep, DifferenceStepAlgo) | |
SE3_DETAILS_DISPATCH_JOINT_COMPOSITE_4 (SquaredDistanceStep, SquaredDistanceStepAlgo) | |
SE3_DETAILS_DISPATCH_JOINT_COMPOSITE_3 (RandomConfigurationStep, RandomConfigurationStepAlgo) | |
SE3_DETAILS_DISPATCH_JOINT_COMPOSITE_1 (NormalizeStep, NormalizeStepAlgo) | |
SE3_DETAILS_DISPATCH_JOINT_COMPOSITE_4 (IsSameConfigurationStep, IsSameConfigurationStepAlgo) | |
SE3_DETAILS_DISPATCH_JOINT_COMPOSITE_1 (NeutralStep, NeutralStepAlgo) | |
int | nq (const LieGroupVariant &lg) |
Visit a LieGroupVariant to get the dimension of the Lie group configuration space. More... | |
int | nv (const LieGroupVariant &lg) |
Visit a LieGroupVariant to get the dimension of the Lie group tangent space. More... | |
std::string | name (const LieGroupVariant &lg) |
Visit a LieGroupVariant to get the name of it. More... | |
Eigen::VectorXd | neutral (const LieGroupVariant &lg) |
Visit a LieGroupVariant to get the neutral element of it. More... | |
template<class ConfigIn_t , class Tangent_t , class ConfigOut_t > | |
void | integrate (const LieGroupVariant &lg, const Eigen::MatrixBase< ConfigIn_t > &q, const Eigen::MatrixBase< Tangent_t > &v, const Eigen::MatrixBase< ConfigOut_t > &qout) |
Visit a LieGroupVariant to call its integrate method. More... | |
std::ostream & | operator<< (std::ostream &os, const Model &model) |
ModelFileExtensionType | checkModelFileExtension (const std::string &filename) |
Extract the type of the given model file according to its extension. More... | |
std::string | retrieveResourcePath (const std::string &string, const std::vector< std::string > &package_dirs) throw (std::invalid_argument) |
Retrieve the path of the file whose path is given in an url-format. Currently convert from the folliwing patterns : package:// or file://. More... | |
template<typename Vector3Like > | |
Eigen::Matrix< typename Vector3Like::Scalar, 3, 3, EIGEN_PLAIN_TYPE(Vector3Like)::Options > | exp3 (const Eigen::MatrixBase< Vector3Like > &v) |
Exp: so3 -> SO3. More... | |
template<typename Matrix3Like , typename S2 > | |
Eigen::Matrix< typename Matrix3Like::Scalar, 3, 1, Eigen::internal::traits< Matrix3Like >::Options > | log3 (const Eigen::MatrixBase< Matrix3Like > &R, S2 &theta) |
Same as log3. More... | |
template<typename Matrix3Like > | |
Eigen::Matrix< typename Matrix3Like::Scalar, 3, 1, Eigen::internal::traits< Matrix3Like >::Options > | log3 (const Eigen::MatrixBase< Matrix3Like > &R) |
Log: SO3 -> so3. More... | |
template<typename Vector3Like , typename Matrix3Like > | |
void | Jexp3 (const Eigen::MatrixBase< Vector3Like > &r, const Eigen::MatrixBase< Matrix3Like > &Jexp) |
Derivative of \( \exp{r} \) \[ \frac{\sin{||r||}}{||r||} I_3 - \frac{1-\cos{||r||}}{||r||^2} \left[ r \right]_x + \frac{1}{||n||^2} (1-\frac{\sin{||r||}}{||r||}) r r^T \] . | |
template<typename Scalar , typename Vector3Like , typename Matrix3Like > | |
void | Jlog3 (const Scalar &theta, const Eigen::MatrixBase< Vector3Like > &log, const Eigen::MatrixBase< Matrix3Like > &Jlog) |
template<typename Matrix3Like1 , typename Matrix3Like2 > | |
void | Jlog3 (const Eigen::MatrixBase< Matrix3Like1 > &R, const Eigen::MatrixBase< Matrix3Like2 > &Jlog) |
template<typename MotionDerived > | |
SE3Tpl< typename MotionDerived::Scalar, Eigen::internal::traits< typename MotionDerived::Vector3 >::Options > | exp6 (const MotionDense< MotionDerived > &nu) |
Exp: se3 -> SE3. More... | |
template<typename Vector6Like > | |
SE3Tpl< typename Vector6Like::Scalar, Eigen::internal::traits< Vector6Like >::Options > | exp6 (const Eigen::MatrixBase< Vector6Like > &v) |
Exp: se3 -> SE3. More... | |
template<typename Scalar , int Options> | |
MotionTpl< Scalar, Options > | log6 (const SE3Tpl< Scalar, Options > &M) |
Log: SE3 -> se3. More... | |
template<typename D > | |
MotionTpl< typename D::Scalar, Eigen::internal::traits< D >::Options > | log6 (const Eigen::MatrixBase< D > &M) |
Log: SE3 -> se3. More... | |
template<typename MotionDerived , typename Matrix6Like > | |
void | Jexp6 (const MotionDense< MotionDerived > &nu, const Eigen::MatrixBase< Matrix6Like > &Jexp) |
Derivative of exp6 Computed as the inverse of Jlog6. | |
template<typename Scalar , int Options, typename Matrix6Like > | |
void | Jlog6 (const SE3Tpl< Scalar, Options > &M, const Eigen::MatrixBase< Matrix6Like > &Jlog) |
Derivative of log6 \[ \left(\begin{array}{cc} Jlog3(R) & J * Jlog3(R) \\ 0 & Jlog3(R) \\ \end{array}\right) where \f[ \begin{eqnarray} J &=& \frac{1}{2}[\mathbf{p}]_{\times} + \dot{\beta} (\normr) \frac{\rot^T\mathbf{p}}{\normr}\rot\rot^T - (\normr\dot{\beta} (\normr) + 2 \beta(\normr)) \mathbf{p}\rot^T\right.\\ &&\left. + \rot^T\mathbf{p}\beta (\normr)I_3 + \beta (\normr)\rot\mathbf{p}^T \end{eqnarray} \] and \[ \beta(x)=\left(\frac{1}{x^2} - \frac{\sin x}{2x(1-\cos x)}\right) \] . | |
fcl::Transform3f | toFclTransform3f (const SE3 &m) |
SE3 | toPinocchioSE3 (const fcl::Transform3f &tf) |
template<typename F1 > | |
traits< F1 >::ForcePlain | operator* (const typename traits< F1 >::Scalar alpha, const ForceDense< F1 > &f) |
Basic operations specialization. | |
template<typename M1 , typename M2 > | |
traits< M1 >::MotionPlain | operator^ (const MotionDense< M1 > &v1, const MotionDense< M2 > &v2) |
Basic operations specialization. | |
template<typename M1 , typename F1 > | |
traits< F1 >::ForcePlain | operator^ (const MotionDense< M1 > &v, const ForceBase< F1 > &f) |
template<typename M1 > | |
traits< M1 >::MotionPlain | operator* (const typename traits< M1 >::Scalar alpha, const MotionDense< M1 > &v) |
template<typename M1 > | |
const M1 & | operator+ (const MotionBase< M1 > &v, const BiasZero &) |
template<typename M1 > | |
const M1 & | operator+ (const BiasZero &, const MotionBase< M1 > &v) |
template<typename Vector3 , typename Matrix3 > | |
void | skew (const Eigen::MatrixBase< Vector3 > &v, const Eigen::MatrixBase< Matrix3 > &M) |
Computes the skew representation of a given 3d vector, i.e. the antisymmetric matrix representation of the cross product operator ( \( [v]_{\cross} x = v \cross x \)) More... | |
template<typename D > | |
Eigen::Matrix< typename D::Scalar, 3, 3, EIGEN_PLAIN_TYPE(D)::Options > | skew (const Eigen::MatrixBase< D > &v) |
Computes the skew representation of a given 3D vector, i.e. the antisymmetric matrix representation of the cross product operator. More... | |
template<typename Matrix3 , typename Vector3 > | |
void | unSkew (const Eigen::MatrixBase< Matrix3 > &M, const Eigen::MatrixBase< Vector3 > &v) |
Inverse of skew operator. From a given skew-symmetric matrix M of dimension 3x3, it extracts the supporting vector, i.e. the entries of M. Mathematically speacking, it computes \( v \) such that \( M x = v \cross x \). More... | |
template<typename Matrix3 > | |
Eigen::Matrix< typename EIGEN_PLAIN_TYPE(Matrix3)::Scalar, 3, 1, EIGEN_PLAIN_TYPE(Matrix3)::Options > | unSkew (const Eigen::MatrixBase< Matrix3 > &M) |
Inverse of skew operator. From a given skew-symmetric matrix M of dimension 3x3, it extracts the supporting vector, i.e. the entries of M. Mathematically speacking, it computes \( v \) such that \( M x = v \cross x \). More... | |
template<typename Scalar , typename Vector3 , typename Matrix3 > | |
void | alphaSkew (const Scalar alpha, const Eigen::MatrixBase< Vector3 > &v, const Eigen::MatrixBase< Matrix3 > &M) |
Computes the skew representation of a given 3d vector multiplied by a given scalar. i.e. the antisymmetric matrix representation of the cross product operator ( \( [\alpha v]_{\cross} x = \alpha v \cross x \)) More... | |
template<typename Scalar , typename Vector3 > | |
Eigen::Matrix< typename Vector3::Scalar, 3, 3, EIGEN_PLAIN_TYPE(Vector3)::Options > | alphaSkew (const Scalar alpha, const Eigen::MatrixBase< Vector3 > &v) |
Computes the skew representation of a given 3d vector multiplied by a given scalar. i.e. the antisymmetric matrix representation of the cross product operator ( \( [\alpha v]_{\cross} x = \alpha v \cross x \)) More... | |
template<typename V1 , typename V2 , typename Matrix3 > | |
void | skewSquare (const Eigen::MatrixBase< V1 > &u, const Eigen::MatrixBase< V2 > &v, const Eigen::MatrixBase< Matrix3 > &C) |
Computes the square cross product linear operator C(u,v) such that for any vector w, \( u \times ( v \times w ) = C(u,v) w \). More... | |
template<typename V1 , typename V2 > | |
Eigen::Matrix< typename V1::Scalar, 3, 3, EIGEN_PLAIN_TYPE(V1)::Options > | skewSquare (const Eigen::MatrixBase< V1 > &u, const Eigen::MatrixBase< V2 > &v) |
Computes the square cross product linear operator C(u,v) such that for any vector w, \( u \times ( v \times w ) = C(u,v) w \). More... | |
template<typename Vector3 , typename Matrix3xIn , typename Matrix3xOut > | |
void | cross (const Eigen::MatrixBase< Vector3 > &v, const Eigen::MatrixBase< Matrix3xIn > &Min, const Eigen::MatrixBase< Matrix3xOut > &Mout) |
Applies the cross product onto the columns of M. More... | |
template<typename Vector3 , typename Matrix3x > | |
EIGEN_PLAIN_TYPE (Matrix3x) cross(const Eigen | |
Applies the cross product onto the columns of M. More... | |
template<int axis> | |
char | axisLabel () |
Generate the label (X, Y or Z) of the axis relative to its index. More... | |
template<> | |
char | axisLabel< 0 > () |
template<> | |
char | axisLabel< 1 > () |
template<> | |
char | axisLabel< 2 > () |
std::vector< std::string > | extractPathFromEnvVar (const std::string &env_var_name, const std::string &delimiter=":") |
Parse an environment variable if exists and extract paths according to the delimiter. More... | |
std::vector< std::string > | rosPaths () |
Parse the environment variable ROS_PACKAGE_PATH and extract paths. More... | |
std::string | randomStringGenerator (const int len) |
Generate a random string composed of alphanumeric symbols of a given length. More... | |
std::string | printVersion (const std::string &delimiter=".") |
Returns the current version of Pinocchio as a string using the following standard: PINOCCHIO_MINOR_VERSION.PINOCCHIO_MINOR_VERSION.PINOCCHIO_PATCH_VERSION. | |
bool | checkVersionAtLeast (unsigned int major_version, unsigned int minor_version, unsigned int patch_version) |
Checks if the current version of Pinocchio is at least the version provided by the input arguments. More... | |
Variables | |
const double | PId = PI<double>() |
The value of PI for double scalar type. | |
This module represents a spatial force, e.g. a spatial impulse or force associated to a body. The spatial force is the mathematical representation of \( se^{*}(3) \), the dual of \( se(3) \).
|
inline |
The Articulated-Body algorithm. It computes the forward dynamics, aka the joint accelerations given the current state and actuation of the model.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint velocity vector (dim model.nv). |
[in] | tau | The joint torque vector (dim model.nv). |
Definition at line 192 of file aba.hxx.
References Data::a, Model::check(), Data::ddq, Model::gravity, Data::joints, Model::joints, Model::njoints, Data::u, and Data::v.
|
inline |
The Articulated-Body algorithm. It computes the forward dynamics, aka the joint accelerations given the current state and actuation of the model.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint velocity vector (dim model.nv). |
[in] | tau | The joint torque vector (dim model.nv). |
[in] | fext | Vector of external forces expressed in the local frame of the joints (dim model.njoints) |
Definition at line 226 of file aba.hxx.
References Data::a, Model::check(), Data::ddq, Data::f, Model::gravity, Data::joints, Model::joints, Model::njoints, Data::u, and Data::v.
void se3::alphaSkew | ( | const Scalar | alpha, |
const Eigen::MatrixBase< Vector3 > & | v, | ||
const Eigen::MatrixBase< Matrix3 > & | M | ||
) |
Computes the skew representation of a given 3d vector multiplied by a given scalar. i.e. the antisymmetric matrix representation of the cross product operator ( \( [\alpha v]_{\cross} x = \alpha v \cross x \))
[in] | alpha | a real scalar. |
[in] | v | a vector of dimension 3. |
[out] | M | the skew matrix representation of dimension 3x3. |
Definition at line 116 of file skew.hpp.
Referenced by alphaSkew(), Jexp6(), Jlog6(), and log6().
|
inline |
Computes the skew representation of a given 3d vector multiplied by a given scalar. i.e. the antisymmetric matrix representation of the cross product operator ( \( [\alpha v]_{\cross} x = \alpha v \cross x \))
[in] | alpha | a real scalar. |
[in] | v | a vector of dimension 3. |
Definition at line 142 of file skew.hpp.
References alphaSkew().
D1::Scalar se3::angleBetweenQuaternions | ( | const Eigen::QuaternionBase< D1 > & | q1, |
const Eigen::QuaternionBase< D2 > & | q2 | ||
) |
Compute the minimal angle between q1 and q2.
[in] | q1 | input quaternion. |
[in] | q2 | input quaternion. |
Definition at line 35 of file quaternion.hpp.
|
inline |
Append geomModel2 to geomModel1
The steps for appending are:
[out] | geomModel1 | geometry model where the data is added |
[in] | geomModel2 | geometry model from which new geometries are taken |
|
inline |
Append the geometry objects and geometry positions
Definition at line 250 of file algorithm/geometry.hxx.
References GeometryModel::collisionPairs, GeometryModel::geometryObjects, and GeometryModel::ngeoms.
|
inline |
Generate the label (X, Y or Z) of the axis relative to its index.
axis | Index of the axis (either 0 for X, 1 for Y and Z for 2). |
|
inline |
Visit a JointDataVariant through JointBiasVisitor to get the joint bias as a dense motion.
[in] | jdata | The jdata |
Definition at line 321 of file joint-basic-visitors.hxx.
|
inline |
Visit a JointDataVariant and the corresponding JointModelVariant through JointCalcAbaVisitor to.
[in] | jmodel | The corresponding JointModelVariant to the JointDataVariant we want to update |
jdata | The JointDataVariant we want to update | |
I | Inertia matrix of the subtree following the jmodel in the kinematic chain as dense matrix | |
[in] | update_I | If I should be updated or not |
Definition at line 123 of file joint-basic-visitors.hxx.
Referenced by JointModelComposite::addJoint().
|
inline |
Visit a JointDataVariant and the corresponding JointModelVariant through JointCalcFirstOrderVisitor to compute the joint data kinematics at order one.
[in] | jmodel | The corresponding JointModelVariant to the JointDataVariant we want to update |
jdata | The JointDataVariant we want to update | |
[in] | q | The full model's (in which the joint belongs to) configuration vector |
Definition at line 95 of file joint-basic-visitors.hxx.
|
inline |
Visit a JointDataVariant and the corresponding JointModelVariant through JointCalcZeroOrderVisitor to compute the joint data kinematics at order zero.
[in] | jmodel | The corresponding JointModelVariant to the JointDataVariant we want to update |
jdata | The JointDataVariant we want to update | |
[in] | q | The full model's (in which the joint belongs to) configuration vector |
Definition at line 68 of file joint-basic-visitors.hxx.
|
inline |
Computes the Centroidal Momentum Matrix, the Composite Ridig Body Inertia as well as the centroidal momenta according to the current joint configuration and velocity.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint velocity vector (dim model.nv). |
Definition at line 94 of file centroidal.hxx.
References Data::Ag, Model::check(), Data::com, forwardKinematics(), Data::hg, Data::Ig, Model::inertias, Data::joints, Model::joints, Data::Matrix6x, Model::njoints, Model::nv, ForceBase< Derived >::toVector(), and Data::Ycrb.
|
inline |
Computes the center of mass position of a given model according to a particular joint configuration. The result is accessible through data.com[0] for the full body com and data.com[i] for the subtree supported by joint i (expressed in the joint i frame).
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | computeSubtreeComs | If true, the algorithm computes also the center of mass of the subtrees. |
Definition at line 28 of file center-of-mass.hxx.
References Data::com, and forwardKinematics().
Referenced by centerOfMass().
|
inline |
Computes the center of mass position and velocity of a given model according to a particular joint configuration and velocity. The result is accessible through data.com[0], data.vcom[0] for the full body com position and velocity. And data.com[i] and data.vcom[i] for the subtree supported by joint i (expressed in the joint i frame).
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint velocity vector (dim model.nv). |
[in] | computeSubtreeComs | If true, the algorithm computes also the center of mass of the subtrees. |
Definition at line 39 of file center-of-mass.hxx.
References forwardKinematics().
|
inline |
Computes the center of mass position, velocity and acceleration of a given model according to a particular joint configuration, velocity and acceleration. The result is accessible through data.com[0], data.vcom[0], data.acom[0] for the full body com position, velocity and acceleation. And data.com[i], data.vcom[i] and data.acom[i] for the subtree supported by joint i (expressed in the joint i frame).
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint velocity vector (dim model.nv). |
[in] | a | The joint acceleration vector (dim model.nv). |
[in] | computeSubtreeComs | If true, the algorithm computes also the center of mass of the subtrees. |
Definition at line 51 of file center-of-mass.hxx.
References Data::a, Data::acom, centerOfMass(), Model::check(), Data::com, forwardKinematics(), Model::inertias, Data::liMi, Data::mass, Model::njoints, Model::parents, Data::v, and Data::vcom.
Computes the center of mass position, velocity and acceleration of a given model according to the current kinematic values contained in data and the template value parameters. The result is accessible through data.com[0], data.vcom[0] and data.acom[0] for the full body com position and velocity. And data.com[i] and data.vcom[i] for the subtree supported by joint i (expressed in the joint i frame).
Computes the center of mass position, velocity and acceleration of a given model according to the current kinematic values contained in data. The result is accessible through data.com[0], data.vcom[0] and data.acom[0] for the full body com position and velocity. And data.com[i] and data.vcom[i] for the subtree supported by joint i (expressed in the joint i frame).
do_position | Compute the center of mass position. |
do_velocity | Compute the center of mass velocity. |
do_acceleration | Compute the center of mass acceleration. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | computeSubtreeComs | If true, the algorithm computes also the center of mass of the subtrees. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | computeSubtreeComs | If true, the algorithm computes also the center of mass of the subtrees. |
Definition at line 111 of file center-of-mass.hpp.
References getComFromCrba(), getJacobianComFromCrba(), and jacobianCenterOfMass().
Check the validity of data wrt to model, in particular if model has been modified.
[in] | model | reference model |
[in] | data | corresponding data |
Definition at line 69 of file check.hxx.
References Data::a, Data::a_gf, Data::acom, Data::Ag, Data::com, Data::D, Data::ddq, Data::dq_after, Data::f, Data::Fcrb, Data::iMf, Data::J, Data::Jcom, Data::joints, Model::joints, Data::lastChild, Data::liMi, Data::M, Data::mass, Data::Matrix6x, Model::nframes, Model::njoints, Data::nle, Model::nv, nv(), Data::nvSubtree, Data::nvSubtree_fromRow, Data::oMf, Data::oMi, Model::parents, Data::parents_fromRow, Data::tau, Data::tmp, Data::torque_residual, Data::u, Data::U, Data::v, Data::vcom, Data::Yaba, and Data::Ycrb.
Referenced by Model::check().
|
inline |
bool se3::checkVersionAtLeast | ( | unsigned int | major_version, |
unsigned int | minor_version, | ||
unsigned int | patch_version | ||
) |
Checks if the current version of Pinocchio is at least the version provided by the input arguments.
[in] | major_version | Major version to check. |
[in] | minor_version | Minor version to check. |
[in] | patch_version | Patch version to check. |
Definition at line 55 of file version.hpp.
|
inline |
The derivatives of the Articulated-Body algorithm.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint velocity vector (dim model.nv). |
[in] | tau | The joint torque vector (dim model.nv). |
[out] | aba_partial_dq | Partial derivative of the generalized torque vector with respect to the joint configuration. |
[out] | aba_partial_dv | Partial derivative of the generalized torque vector with respect to the joint velocity. |
[out] | aba_partial_dtau | Partial derivative of the generalized torque vector with respect to the joint torque. |
First, compute Minv and a, the joint acceleration vector
First, compute Minv and a, the joint acceleration vector
Definition at line 301 of file aba-derivatives.hxx.
References Data::a, Model::check(), Data::dtau_dq, Data::dtau_dv, Data::Fcrb, Model::gravity, Data::joints, Model::joints, Model::njoints, Model::nq, Model::nv, Data::oa, and Data::u.
Referenced by computeABADerivatives().
|
inline |
The derivatives of the Articulated-Body algorithm.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint velocity vector (dim model.nv). |
[in] | tau | The joint torque vector (dim model.nv). |
Definition at line 64 of file aba-derivatives.hpp.
References computeABADerivatives(), Data::ddq_dq, Data::ddq_dv, and Data::Minv.
|
inline |
Computes efficiently all the terms needed for dynamic simulation. It is equivalent to the call at the same time to:
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint velocity vector (dim model.nv). |
Definition at line 203 of file compute-all-terms.hpp.
References Data::a, Data::a_gf, Model::check(), Data::com, Model::gravity, Data::Jcom, Data::joints, Model::joints, kineticEnergy(), Data::mass, Model::njoints, potentialEnergy(), Data::v, and Data::vcom.
Referenced by Pendulum::dynamics(), and forwardDynamics().
|
inline |
Compute the radius of the geometry volumes attached to every joints.
For all bodies of the model, compute the point of the geometry model that is the further from the center of the joint. This quantity is used in some continuous collision test.
Definition at line 214 of file algorithm/geometry.hxx.
References SE3Base< Derived >::act(), GeometryObject::fcl, GeometryModel::geometryObjects, Model::joints, GeometryObject::parentJoint, GeometryObject::placement, and GeometryData::radius.
|
inline |
Compute the collision status between a SINGLE collision pair. The result is store in the collisionResults vector.
[in] | GeomModel | the geometry model (const) |
[out] | GeomData | the corresponding geometry data, where computations are done. |
[in] | pairId | The collsion pair index in the GeometryModel. |
Definition at line 65 of file algorithm/geometry.hxx.
References GeometryData::activeCollisionPairs, GeometryData::collisionObjects, GeometryModel::collisionPairs, GeometryData::collisionRequest, GeometryData::collisionResults, and computeCollisions().
Referenced by ur5x4::loadRobot().
|
inline |
Compute the forward kinematics, update the geometry placements and calls computeCollision for every active pairs of GeometryData.
[in] | model | robot model (const) |
[out] | data | corresponding data (nonconst) where FK results are stored |
[in] | geomModel | geometry model (const) |
[out] | geomData | corresponding geometry data (nonconst) where distances are computed |
[in] | q | robot configuration. |
[in] | stopAtFirstCollision | if true, stop the loop on pairs after the first collision. |
Definition at line 107 of file algorithm/geometry.hxx.
References Model::check(), and updateGeometryPlacements().
Referenced by computeCollision().
|
inline |
Computes the Coriolis Matrix \( C(q,\dot{q}) \) of the Lagrangian dynamics:
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint velocity vector (dim model.nv). |
Definition at line 403 of file rnea.hxx.
References Data::C, Model::check(), Data::joints, Model::joints, Model::njoints, Model::nq, and Model::nv.
|
inline |
Compute the minimal distance between collision objects of a SINGLE collison pair.
[in] | GeomModel | the geometry model (const) |
[out] | GeomData | the corresponding geometry data, where computations are done. |
[in] | pairId | The index of the collision pair in geom model. |
Definition at line 126 of file algorithm/geometry.hxx.
References GeometryData::activeCollisionPairs, GeometryData::collisionObjects, GeometryModel::collisionPairs, computeDistances(), GeometryData::distanceRequest, and GeometryData::distanceResults.
|
inline |
Compute the forward kinematics, update the geometry placements and calls computeDistance for every active pairs of GeometryData.
[in] | ComputeShortest | default to true. |
[in] |
Definition at line 176 of file algorithm/geometry.hxx.
References Model::check(), and updateGeometryPlacements().
Referenced by computeDistance().
|
inline |
Computes all the terms required to compute the derivatives of the placement, spatial velocity and acceleration for any joint of the model.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration (vector dim model.nq). |
[in] | v | The joint velocity (vector dim model.nv). |
Definition at line 85 of file kinematics-derivatives.hxx.
References Data::a, Model::check(), Data::joints, Model::joints, Model::njoints, Model::nq, Model::nv, and Data::v.
|
inline |
Computes the generalized gravity contribution \( g(q) \) of the Lagrangian dynamics:
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
Definition at line 278 of file rnea.hxx.
References Data::a_gf, Model::check(), Data::g, Model::gravity, Data::joints, Model::joints, and Model::njoints.
|
inline |
Computes the derivative of the generalized gravity contribution with respect to the joint configuration.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[out] | gravity_partial_dq | Partial derivative of the generalized gravity vector with respect to the joint configuration. |
Definition at line 125 of file rnea-derivatives.hxx.
References Data::a_gf, Model::check(), Model::gravity, Data::joints, Model::joints, Model::njoints, Model::nq, and Model::nv.
|
inline |
Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame. The result is accessible through data.J. This function computes also the forwardKinematics of the model.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
Definition at line 60 of file jacobian.hpp.
References computeJointJacobians(), and Data::Matrix6x.
|
inline |
Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame. The result is accessible through data.J. This function assumes that se3::forwardKinematics has been called before.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
Definition at line 95 of file jacobian.hpp.
References computeJointJacobians(), getJointJacobian(), and Data::Matrix6x.
|
inline |
Computes the full model Jacobian variations with respect to time. It corresponds to dJ/dt which depends both on q and v. The result is accessible through data.dJ.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint velocity vector (dim model.nv). |
Definition at line 241 of file jacobian.hpp.
References computeJointJacobiansTimeVariation(), getJointJacobianTimeVariation(), and Data::Matrix6x.
|
inline |
Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame. The result is accessible through data.J. This function computes also the forwardKinematics of the model.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
Definition at line 59 of file jacobian.hxx.
References Model::check(), Data::J, Data::joints, Model::joints, and Model::njoints.
Referenced by computeJacobians().
|
inline |
Computes the full model Jacobian, i.e. the stack of all motion subspace expressed in the world frame. The result is accessible through data.J. This function assumes that se3::forwardKinematics has been called before.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
Definition at line 92 of file jacobian.hxx.
References Model::check(), Data::J, Data::joints, Model::joints, and Model::njoints.
|
inline |
Computes the full model Jacobian variations with respect to time. It corresponds to dJ/dt which depends both on q and v. The result is accessible through data.dJ.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint velocity vector (dim model.nv). |
Definition at line 228 of file jacobian.hxx.
References Model::check(), Data::dJ, Data::joints, Model::joints, and Model::njoints.
Referenced by computeJacobiansTimeVariation(), and jointJacobian().
|
inline |
Computes the inverse of the joint space inertia matrix using Articulated Body formulation.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
Definition at line 394 of file aba.hxx.
References Model::check(), Data::Fcrb, Model::inertias, Data::joints, Model::joints, Data::Minv, and Model::njoints.
|
inline |
Computes the derivatives of the Recursive Newton Euler Algorithms with respect to the joint configuration and the joint velocity.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint velocity vector (dim model.nv). |
[in] | a | The joint acceleration vector (dim model.nv). |
[out] | rnea_partial_dq | Partial derivative of the generalized torque vector with respect to the joint configuration. |
[out] | rnea_partial_dv | Partial derivative of the generalized torque vector with respect to the joint velocity. |
[out] | rnea_partial_da | Partial derivative of the generalized torque vector with respect to the joint acceleration. |
Definition at line 332 of file rnea-derivatives.hxx.
References Model::check(), Model::gravity, Data::joints, Model::joints, Model::njoints, Model::nq, Model::nv, and Data::oa.
Referenced by computeRNEADerivatives().
|
inline |
Computes the derivatives of the Recursive Newton Euler Algorithms with respect to the joint configuration and the joint velocity.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint velocity vector (dim model.nv). |
[in] | a | The joint acceleration vector (dim model.nv). |
Definition at line 89 of file rnea-derivatives.hpp.
References computeRNEADerivatives(), Data::dtau_dq, Data::dtau_dv, and Data::M.
|
inline |
Visit a JointDataVariant through JointConstraintVisitor to get the joint constraint as a dense constraint.
[in] | jdata | The jdata |
Definition at line 276 of file joint-basic-visitors.hxx.
Copy part of the data from <orig> to <dest>. Template parameter can be used to select at which differential level the copy should occur.
[in] | model | The model structure of the rigid body system. |
[in] | orig | Data from which the values are copied. |
[in] | dest | Data to which the values are copied |
[in] | LEVEL | if =0, copy oMi. If =1, also copy v. If =2, also copy a, a_gf and f. |
Definition at line 50 of file copy.hpp.
References Data::a, Data::a_gf, Data::f, Model::njoints, Data::oMi, and Data::v.
Computes the upper triangular part of the joint space inertia matrix M by using the Composite Rigid Body Algorithm (Chapter 6, Rigid-Body Dynamics Algorithms, R. Featherstone, 2008). The result is accessible through data.M.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
Definition at line 168 of file crba.hxx.
References Model::check(), Data::joints, Model::joints, Data::M, and Model::njoints.
Referenced by impulseDynamics(), and ur5x4::loadRobot().
|
inline |
Computes the upper triangular part of the joint space inertia matrix M by using the Composite Rigid Body Algorithm (Chapter 6, Rigid-Body Dynamics Algorithms, R. Featherstone, 2008). The result is accessible through data.M.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
Definition at line 189 of file crba.hxx.
References Data::Ag, Model::check(), Data::com, Data::joints, Model::joints, Data::M, Data::Matrix6x, Model::njoints, Model::nv, Model::parents, and Data::Ycrb.
|
inline |
Visit a JointModelVariant through CreateData visitor to create a JointDataVariant.
[in] | jmodel | The JointModelVariant we want to create a data for |
Definition at line 43 of file joint-basic-visitors.hxx.
Referenced by JointModelComposite::addJoint().
|
inline |
Applies the cross product onto the columns of M.
[in] | v | a vector of dimension 3. |
[in] | Min | a 3 rows matrix. |
[out] | Mout | a 3 rows matrix. |
Definition at line 203 of file skew.hpp.
Referenced by EIGEN_PLAIN_TYPE().
|
inline |
Computes the time derivative of the Centroidal Momentum Matrix according to the current configuration and velocity vectors.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint configuration vector (dim model.nv). |
Definition at line 212 of file centroidal.hxx.
References Data::Ag, Model::check(), Data::com, Data::dAg, Data::doYcrb, forwardKinematics(), Data::hg, Data::Ig, Model::inertias, Data::joints, Model::joints, ForceBase< Derived >::linear(), Data::Matrix6x, Model::njoints, Model::nv, Data::oMi, Data::ov, Data::oYcrb, ForceBase< Derived >::toVector(), Data::v, and Data::vcom.
bool se3::defineSameRotation | ( | const Eigen::QuaternionBase< D1 > & | q1, |
const Eigen::QuaternionBase< D2 > & | q2, | ||
const typename D1::RealScalar & | prec = Eigen::NumTraits<typename D1::Scalar>::dummy_precision() |
||
) |
Check if two quaternions define the same rotations.
[in] | q1 | input quaternion. |
[in] | q2 | input quaternion. |
Definition at line 59 of file quaternion.hpp.
Referenced by SpecialOrthogonalOperation< 3 >::nv().
|
inline |
Compute the tangent vector that must be integrated during one unit time to go from q0 to q1.
[in] | model | Model to be differenced |
[in] | q0 | Initial configuration (size model.nq) |
[in] | q1 | Wished configuration (size model.nq) |
Definition at line 83 of file joint-configuration.hxx.
References Model::joints, Model::njoints, and Model::nv.
Referenced by LieGroupBase< Derived >::isSameConfiguration().
|
inline |
Visit a JointDataVariant through JointDInvInertiaVisitor to get the D^{-1} matrix of the inertia matrix decomposition.
[in] | jdata | The jdata |
Definition at line 355 of file joint-basic-visitors.hxx.
|
inline |
Distance between two configuration vectors.
[in] | model | Model we want to compute the distance |
[in] | q0 | Configuration 0 (size model.nq) |
[in] | q1 | Configuration 1 (size model.nq) |
Definition at line 129 of file joint-configuration.hxx.
|
inline |
Browse through the kinematic structure with a void step.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
Definition at line 45 of file kinematics.hxx.
References Model::check(), Data::joints, Model::joints, and Model::njoints.
Eigen::Matrix<typename Vector3Like::Scalar,3,3,EIGEN_PLAIN_TYPE(Vector3Like)::Options> se3::exp3 | ( | const Eigen::MatrixBase< Vector3Like > & | v | ) |
Exp: so3 -> SO3.
Return the integral of the input angular velocity during time 1.
[in] | v | The angular velocity vector. |
Definition at line 43 of file explog.hpp.
References EIGEN_PLAIN_TYPE().
Referenced by SpecialOrthogonalOperation< 3 >::nv().
SE3Tpl<typename MotionDerived::Scalar, Eigen::internal::traits<typename MotionDerived::Vector3>::Options> se3::exp6 | ( | const MotionDense< MotionDerived > & | nu | ) |
Exp: se3 -> SE3.
Return the integral of the input twist during time 1.
[in] | nu | The input twist. |
Definition at line 241 of file explog.hpp.
Referenced by exp6(), and SpecialEuclideanOperation< 3 >::nv().
SE3Tpl<typename Vector6Like::Scalar, Eigen::internal::traits<Vector6Like>::Options> se3::exp6 | ( | const Eigen::MatrixBase< Vector6Like > & | v | ) |
Exp: se3 -> SE3.
Return the integral of the input spatial velocity during time 1.
[in] | v | The twist represented by a vector. |
Definition at line 307 of file explog.hpp.
References exp6().
|
inline |
Parse an environment variable if exists and extract paths according to the delimiter.
[in] | env_var_name | The name of the environment variable. |
[in] | delimiter | The delimiter between two consecutive paths. |
Definition at line 36 of file file-explorer.hpp.
Referenced by rosPaths().
|
inline |
Computes the finite difference increments for each degree of freedom according to the current joint configuration.
[in] model The model of the kinematic tree.
Definition at line 49 of file finite-differences.hxx.
References Model::joints, and Model::nv.
Referenced by JointModelComposite::addJoint().
|
inline |
Returns the finite difference increment of the joint model.
[in] | jmodel | The model of the joint. |
Definition at line 140 of file joint-basic-visitors.hxx.
void se3::firstOrderNormalize | ( | const Eigen::QuaternionBase< D > & | q | ) |
Approximately normalize by applying the first order limited development of the normalization function.
Only additions and multiplications are required. Neither square root nor division are used (except a division by 2). Let \( \delta = ||q||^2 - 1 \). Using the following limited development:
\[ \frac{1}{||q||} = (1 + \delta)^{-\frac{1}{2}} = 1 - \frac{\delta}{2} + \mathcal{O}(\delta^2) \]
The output is
\[ q_{out} = q \times \frac{3 - ||q_{in}||^2}{2} \]
The output quaternion is guaranted to statisfy the following:
\[ | ||q_{out}|| - 1 | \le \frac{M}{2} ||q_{in}|| ( ||q_{in}||^2 - 1 )^2 \]
where \( M = \frac{3}{4} (1 - \epsilon)^{-\frac{5}{2}} \) and \( \epsilon \) is the maximum tolerance of \( ||q_{in}||^2 - 1 \).
Definition at line 88 of file quaternion.hpp.
Referenced by SpecialOrthogonalOperation< 3 >::nv(), and SpecialEuclideanOperation< 3 >::nv().
|
inline |
Compute the forward dynamics with contact constraints.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration (vector dim model.nq). |
[in] | v | The joint velocity (vector dim model.nv). |
[in] | tau | The joint torque vector (dim model.nv). |
[in] | J | The Jacobian of the constraints (dim nb_constraints*model.nv). |
[in] | gamma | The drift of the constraints (dim nb_constraints). |
[in] | inv_damping | Damping factor for cholesky decomposition of JMinvJt. Set to zero if constraints are full rank. |
[in] | updateKinematics | If true, the algorithm calls first se3::computeAllTerms. Otherwise, it uses the current dynamic values stored in data. \ |
Definition at line 55 of file dynamics.hpp.
References Model::check(), computeAllTerms(), Data::D, Data::ddq, Data::JMinvJt, Data::lambda_c, Data::llt_JMinvJt, Data::nle, Model::nq, Model::nv, Data::sDUiJt, and Data::torque_residual.
Update the joint placements according to the current joint configuration.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration (vector dim model.nq). |
Definition at line 106 of file kinematics.hxx.
References Model::check(), Data::joints, Model::joints, Model::njoints, and Model::nq.
Referenced by ccrba(), centerOfMass(), dccrba(), framesForwardKinematics(), jacobianCenterOfMass(), kineticEnergy(), SpecialEuclideanOperation< 2 >::nv(), potentialEnergy(), and updateGeometryPlacements().
|
inline |
Update the joint placements and spatial velocities according to the current joint configuration and velocity.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration (vector dim model.nq). |
[in] | v | The joint velocity (vector dim model.nv). |
Definition at line 159 of file kinematics.hxx.
References Model::check(), Data::joints, Model::joints, Model::njoints, Model::nq, Model::nv, and Data::v.
|
inline |
Update the joint placements, spatial velocities and spatial accelerations according to the current joint configuration, velocity and acceleration.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration (vector dim model.nq). |
[in] | v | The joint velocity (vector dim model.nv). |
[in] | a | The joint acceleration (vector dim model.nv). |
Definition at line 218 of file kinematics.hxx.
References Data::a, Model::check(), Data::joints, Model::joints, Model::njoints, Model::nq, Model::nv, and Data::v.
Referenced by Pendulum::__init__(), and ur5x4::loadRobot().
Updates the placement of each frame contained in the model.
[in] | model | The kinematic model. |
data | Data associated to model. |
Definition at line 60 of file frames.hxx.
References updateFramePlacements().
First calls the forwardKinematics on the model, then computes the placement of each frame. /sa se3::forwardKinematics.
[in] | model | The kinematic model. |
data | Data associated to model. | |
[in] | q | Configuration vector. |
Definition at line 66 of file frames.hxx.
References Model::check(), forwardKinematics(), and updateFramePlacements().
Extracts the center of mass position from the joint space inertia matrix (also called the mass matrix).
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
Definition at line 136 of file center-of-mass.hxx.
References Model::check(), Data::com, Data::liMi, and Data::Ycrb.
Referenced by centerOfMass().
|
inline |
Returns the spatial acceleration of the frame expressed in the LOCAL frame coordinate system. You must first call se3::forwardKinematics to update placement values in data structure.
[in] | model | The kinematic model |
[in] | data | Data associated to model |
[in] | frame_id | Id of the operational Frame |
[out] | frame_a | The spatial acceleration of the Frame expressed in the coordinates Frame. |
Definition at line 88 of file frames.hxx.
References Data::a, Model::check(), and Model::frames.
|
inline |
Returns the jacobian of the frame expressed either in the LOCAL frame coordinate system or in the WORLD coordinate system, depending on the value of the template parameter rf. You must first call se3::computeJointJacobians followed by se3::framesForwardKinematics to update placement values in data structure.
Returns the jacobian of the frame expresssed the LOCAL frame coordinate system. You must first call se3::computeJointJacobians followed by se3::framesForwardKinematics to update placement values in data structure.
rf | Reference frame in which the columns of the Jacobian are expressed. |
[in] | model | The kinematic model |
[in] | data | Data associated to model |
[in] | frame_id | Id of the operational Frame |
[out] | J | The Jacobian of the Frame expressed in the coordinates Frame. |
[in] | model | The kinematic model |
[in] | data | Data associated to model |
[in] | frame_id | Id of the operational Frame |
[out] | J | The Jacobian of the Frame expressed in the coordinates Frame. |
Definition at line 101 of file frames.hxx.
References SE3Base< Derived >::actInv(), Model::check(), Model::frames, idx_v(), Data::J, Model::joints, Data::Matrix6x, Model::nv, nv(), Data::oMf, and Data::parents_fromRow.
void getFrameJacobianTimeVariation | ( | const Model & | model, |
const Data & | data, | ||
const Model::FrameIndex | frameId, | ||
Data::Matrix6x & | dJ | ||
) |
Computes the Jacobian time variation of a specific frame (given by frame_id) expressed either in the world frame (rf = WORLD) or in the local frame (rf = LOCAL).
rf | Reference frame in which the Jacobian is expressed. |
[in] | localFrame | Expressed the Jacobian in the local frame or world frame coordinates system. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | frameId | The index of the frame. |
[out] | dJ | A reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill dJ with zero elements, e.g. dJ.fill(0.). |
Definition at line 140 of file frames.hxx.
References SE3Base< Derived >::actInv(), Model::check(), Data::dJ, Model::frames, idx_v(), Model::joints, nv(), Data::oMf, and Data::parents_fromRow.
|
inline |
Returns the spatial velocity of the frame expressed in the LOCAL frame coordinate system. You must first call se3::forwardKinematics to update placement and velocity values in data structure.
[in] | model | The kinematic model |
[in] | data | Data associated to model |
[in] | frame_id | Id of the operational Frame |
[out] | frame_v | The spatial velocity of the Frame expressed in the coordinates Frame. |
Definition at line 76 of file frames.hxx.
References Model::check(), Model::frames, and Data::v.
PINOCCHIO_DEPRECATED void se3::getJacobian | ( | const Model & | model, |
const Data & | data, | ||
const Model::JointIndex | jointId, | ||
Data::Matrix6x & | J | ||
) |
Computes the Jacobian of a specific joint frame expressed either in the world (rf = WORLD) frame or in the local frame (rf = LOCAL) of the joint.
rf | Reference frame in which the Jacobian is expressed. |
[in] | localFrame | Expressed the Jacobian in the local frame or world frame coordinates system. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | jointId | The id of the joint. |
[out] | J | A reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill J with zero elements, e.g. J.fill(0.). |
Definition at line 133 of file jacobian.hpp.
References jointJacobian(), and Data::Matrix6x.
|
inline |
Extracts both the jacobian of the center of mass (CoM), the total mass of the system and the CoM position from the joint space inertia matrix (also called the mass matrix). The results are accessible through data.Jcom, data.mass[0] and data.com[0] and are both expressed in the world frame.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
Definition at line 253 of file center-of-mass.hxx.
References Model::check(), Data::Jcom, Data::liMi, Data::M, Data::mass, and Model::nv.
Referenced by centerOfMass().
PINOCCHIO_DEPRECATED void se3::getJacobianTimeVariation | ( | const Model & | model, |
const Data & | data, | ||
const Model::JointIndex | jointId, | ||
Data::Matrix6x & | dJ | ||
) |
Computes the Jacobian time variation of a specific joint frame expressed either in the world frame (rf = WORLD) or in the local frame (rf = LOCAL) of the joint.
rf | Reference frame in which the Jacobian is expressed. |
[in] | localFrame | Expressed the Jacobian in the local frame or world frame coordinates system. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | jointId | The id of the joint. |
[out] | dJ | A reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill dJ with zero elements, e.g. dJ.fill(0.). |
Definition at line 280 of file jacobian.hpp.
|
inline |
Computes the partial derivaties of the spatial acceleration of a given with respect to the joint configuration, velocity and acceleration. You must first call computForwardKinematicsDerivatives before calling this function. It is important to notice that a direct outcome (for free) of this algo is v_partial_dq and v_partial_dv which is equal to a_partial_da.
rf | Reference frame in which the Jacobian is expressed. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | jointId | Index of the joint in model. |
[out] | v_partial_dq | Partial derivative of the joint spatial velocity w.r.t. \( q \). |
[out] | a_partial_dq | Partial derivative of the joint spatial acceleration w.r.t. \( q \). |
[out] | a_partial_dq | Partial derivative of the joint spatial acceleration w.r.t. \( \dot{q} \). |
[out] | a_partial_dq | Partial derivative of the joint spatial acceleration w.r.t. \( \ddot{q} \). |
Definition at line 301 of file kinematics-derivatives.hxx.
References Model::check(), Model::joints, Model::nv, Data::oa, Data::ov, and Model::parents.
void getJointJacobian | ( | const Model & | model, |
const Data & | data, | ||
const Model::JointIndex | jointId, | ||
Data::Matrix6x & | J | ||
) |
Computes the Jacobian of a specific joint frame expressed either in the world (rf = WORLD) frame or in the local frame (rf = LOCAL) of the joint.
rf | Reference frame in which the Jacobian is expressed. |
[in] | localFrame | Expressed the Jacobian in the local frame or world frame coordinates system. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | jointId | The id of the joint. |
[out] | J | A reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill J with zero elements, e.g. J.fill(0.). |
Definition at line 109 of file jacobian.hxx.
References Model::check(), idx_v(), Data::J, Model::joints, nv(), Data::oMi, and Data::parents_fromRow.
Referenced by computeJacobians().
void getJointJacobianTimeVariation | ( | const Model & | model, |
const Data & | data, | ||
const Model::JointIndex | jointId, | ||
Data::Matrix6x & | dJ | ||
) |
Computes the Jacobian time variation of a specific joint frame expressed either in the world frame (rf = WORLD) or in the local frame (rf = LOCAL) of the joint.
rf | Reference frame in which the Jacobian is expressed. |
[in] | localFrame | Expressed the Jacobian in the local frame or world frame coordinates system. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | jointId | The id of the joint. |
[out] | dJ | A reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill dJ with zero elements, e.g. dJ.fill(0.). |
Definition at line 245 of file jacobian.hxx.
References Model::check(), Data::dJ, idx_v(), Model::joints, nv(), Data::oMi, and Data::parents_fromRow.
Referenced by computeJacobiansTimeVariation().
|
inline |
Computes the partial derivaties of the spatial velocity of a given with respect to the joint configuration and velocity. You must first call computForwardKinematicsDerivatives before calling this function.
rf | Reference frame in which the Jacobian is expressed. |
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | jointId | Index of the joint in model. |
[out] | partial_dq | Partial derivative of the joint velociy w.r.t. \( q \). |
[out] | partial_dq | Partial derivative of the joint velociy w.r.t. \( \dot{q} \). |
Definition at line 166 of file kinematics-derivatives.hxx.
References Model::check(), Model::joints, Model::nv, Data::oMi, Data::ov, and Model::parents.
|
inline |
Visit a JointModelVariant through JointIdVisitor to get the index of the joint in the kinematic chain.
[in] | jmodel | The JointModelVariant |
Definition at line 217 of file joint-basic-visitors.hxx.
Referenced by JointModelBase< JointModelPrismatic< _Scalar, _Options, axis > >::finiteDifferenceIncrement().
|
inline |
Visit a JointModelVariant through JointIdxQVisitor to get the index in the full model configuration space corresponding to the first degree of freedom of the Joint.
[in] | jmodel | The JointModelVariant |
Definition at line 187 of file joint-basic-visitors.hxx.
Referenced by JointModelBase< JointModelPrismatic< _Scalar, _Options, axis > >::finiteDifferenceIncrement(), and JointModelComposite::updateJointIndexes().
|
inline |
Visit a JointModelVariant through JointIdxVVisitor to get the index in the full model tangent space corresponding to the first joint tangent space degree.
[in] | jmodel | The JointModelVariant |
Definition at line 202 of file joint-basic-visitors.hxx.
Referenced by Data::Data(), JointModelBase< JointModelPrismatic< _Scalar, _Options, axis > >::finiteDifferenceIncrement(), getFrameJacobian(), getFrameJacobianTimeVariation(), getJointJacobian(), getJointJacobianTimeVariation(), and JointModelComposite::updateJointIndexes().
|
inline |
Compute the impulse dynamics with contact constraints.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration (vector dim model.nq). |
[in] | v_before | The joint velocity before impact (vector dim model.nv). |
[in] | J | The Jacobian of the constraints (dim nb_constraints*model.nv). |
[in] | r_coeff | The coefficient of restitution. Must be in [0;1]. |
[in] | updateKinematics | If true, the algorithm calls first se3::crba. Otherwise, it uses the current mass matrix value stored in data. |
Definition at line 126 of file dynamics.hpp.
References Model::check(), crba(), Data::D, Data::dq_after, Data::impulse_c, Data::JMinvJt, Data::llt_JMinvJt, Model::nq, Model::nv, and Data::sDUiJt.
|
inline |
Integrate a configuration for the specified model for a tangent vector during one unit time.
[in] | model | Model that must be integrated |
[in] | q | Initial configuration (size model.nq) |
[in] | v | Velocity (size model.nv) |
Definition at line 34 of file joint-configuration.hxx.
References Model::joints, Model::njoints, and Model::nq.
Referenced by LieGroupBase< Derived >::isSameConfiguration().
|
inline |
Visit a LieGroupVariant to call its integrate method.
[in] | lg | the LieGroupVariant. |
[in] | q | the starting configuration. |
[in] | v | the tangent velocity. |
Definition at line 141 of file liegroup-variant-visitors.hxx.
Referenced by ur5x4::loadRobot().
|
inline |
Interpolate the model between two configurations.
[in] | model | Model to be interpolated |
[in] | q0 | Initial configuration vector (size model.nq) |
[in] | q1 | Final configuration vector (size model.nq) |
[in] | u | u in [0;1] position along the interpolation. |
Definition at line 57 of file joint-configuration.hxx.
References Model::joints, Model::njoints, and Model::nq.
Referenced by LieGroupBase< Derived >::isSameConfiguration().
|
inline |
Return true if the given configurations are equivalents.
[in] | model | Model |
[in] | q1 | The first configuraiton to compare |
[in] | q2 | The Second configuraiton to compare |
[in] | prec | precision of the comparison |
Definition at line 193 of file joint-configuration.hxx.
References Model::joints, and Model::njoints.
|
inline |
Computes the Jacobian of a specific joint frame expressed in the local frame of the joint and store the result in the input argument J.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | jointId | The id of the joint refering to model.joints[jointId]. |
[out] | J | A reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill J with zero elements, e.g. J.setZero(). |
Definition at line 178 of file jacobian.hpp.
References jointJacobian(), and Data::Matrix6x.
Referenced by Visual::__init__().
|
inline |
Computes both the jacobian and the the center of mass position of a given model according to a particular joint configuration. The results are accessible through data.Jcom and data.com[0] and are both expressed in the world frame. In addition, the algorithm also computes the Jacobian of all the joints (.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | computeSubtreeComs | If true, the algorithm computes also the center of mass of the subtrees. |
[in] | updateKinematics | If true, the algorithm updates first the geometry of the tree. Otherwise, it uses the current kinematics stored in data. |
Definition at line 216 of file center-of-mass.hxx.
References Model::check(), Data::com, forwardKinematics(), Model::inertias, Data::Jcom, Data::joints, Model::joints, Data::mass, Model::njoints, and Data::oMi.
Referenced by centerOfMass().
|
inline |
Visit a JointDataVariant through JointTransformVisitor to get the joint internal transform (transform between the entry frame and the exit frame of the joint)
[in] | jdata | The jdata |
Definition at line 291 of file joint-basic-visitors.hxx.
|
inline |
Computes the Jacobian of a specific joint frame expressed in the local frame of the joint and store the result in the input argument J.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | jointId | The id of the joint refering to model.joints[jointId]. |
[out] | J | A reference on the Jacobian matrix where the results will be stored in (dim 6 x model.nv). You must fill J with zero elements, e.g. J.setZero(). |
Definition at line 159 of file jacobian.hxx.
References Model::check(), Data::iMf, Data::joints, Model::joints, and Model::parents.
Referenced by getJacobian(), jacobian(), and jointJacobian().
|
inline |
Computes the Jacobian of a specific joint frame expressed in the local frame of the joint. The result is stored in data.J.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | jointId | The id of the joint refering to model.joints[jointId]. |
Definition at line 197 of file jacobian.hpp.
References computeJointJacobiansTimeVariation(), Data::J, jointJacobian(), and Data::Matrix6x.
|
inline |
Computes the kinetic energy of the system. The result is accessible through data.kinetic_energy.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint velocity vector (dim model.nv). |
Definition at line 70 of file energy.hpp.
References Model::check(), forwardKinematics(), Model::inertias, Data::kinetic_energy, Model::njoints, and Data::v.
Referenced by computeAllTerms().
Eigen::Matrix<typename Matrix3Like::Scalar,3,1,Eigen::internal::traits<Matrix3Like>::Options> se3::log3 | ( | const Eigen::MatrixBase< Matrix3Like > & | R, |
S2 & | theta | ||
) |
Same as log3.
[in] | R | the rotation matrix. |
[out] | theta | the angle value. |
Definition at line 91 of file explog.hpp.
Referenced by Jexp3(), Jlog6(), log3(), log6(), and SpecialOrthogonalOperation< 3 >::nv().
Eigen::Matrix<typename Matrix3Like::Scalar,3,1,Eigen::internal::traits<Matrix3Like>::Options> se3::log3 | ( | const Eigen::MatrixBase< Matrix3Like > & | R | ) |
Log: SO3 -> so3.
Pseudo-inverse of log from \( SO3 -> { v \in so3, ||v|| \le pi } \).
[in] | R | The rotation matrix. |
Definition at line 141 of file explog.hpp.
References log3().
Log: SE3 -> se3.
Pseudo-inverse of exp from SE3 -> { v,w se3, ||w|| < 2pi }.
[in] | M | The rigid transformation. |
Definition at line 324 of file explog.hpp.
References alphaSkew(), and log3().
Referenced by log6(), and SpecialEuclideanOperation< 3 >::nv().
MotionTpl<typename D::Scalar,Eigen::internal::traits<D>::Options> se3::log6 | ( | const Eigen::MatrixBase< D > & | M | ) |
Log: SE3 -> se3.
Pseudo-inverse of exp from SE3 -> { v,w se3, ||w|| < 2pi }.
[in] | R | The rigid transformation represented as an homogenous matrix. |
Definition at line 362 of file explog.hpp.
References log6().
|
inline |
Visit a JointDataVariant through JointMotionVisitor to get the joint internal motion as a dense motion.
[in] | jdata | The jdata |
Definition at line 306 of file joint-basic-visitors.hxx.
|
inline |
Visit a LieGroupVariant to get the name of it.
[in] | lg | the LieGroupVariant. |
Definition at line 96 of file liegroup-variant-visitors.hxx.
Referenced by GeometryModel::existGeometryName(), GeometryModel::getGeometryId(), CartesianProductOperation< LieGroup1, LieGroup2 >::nv(), SpecialOrthogonalOperation< 2 >::nv(), SpecialEuclideanOperation< 2 >::nv(), SpecialOrthogonalOperation< 3 >::nv(), SpecialEuclideanOperation< 3 >::nv(), and VectorSpaceOperation< Size >::VectorSpaceOperation().
|
inline |
Visit a LieGroupVariant to get the neutral element of it.
[in] | lg | the LieGroupVariant. |
Definition at line 112 of file liegroup-variant-visitors.hxx.
|
inline |
Return the neutral configuration element related to the model configuration space.
[in] | model | Model |
Definition at line 221 of file joint-configuration.hxx.
References Model::joints, Model::njoints, and Model::nq.
Referenced by CartesianProductOperation< LieGroup1, LieGroup2 >::nv(), SpecialOrthogonalOperation< 2 >::nv(), SpecialEuclideanOperation< 2 >::nv(), SpecialOrthogonalOperation< 3 >::nv(), SpecialEuclideanOperation< 3 >::nv(), and VectorSpaceOperation< Size >::VectorSpaceOperation().
|
inline |
Computes the non-linear effects (Corriolis, centrifual and gravitationnal effects), also called the bias terms \( b(q,\dot{q}) \) of the Lagrangian dynamics:
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint velocity vector (dim model.nv). |
Definition at line 202 of file rnea.hxx.
References Data::a_gf, Model::check(), Model::gravity, Data::joints, Model::joints, Model::njoints, Data::nle, and Data::v.
|
inline |
Normalize a configuration.
[in] | model | Model |
[in,out] | q | Configuration to normalize |
Definition at line 177 of file joint-configuration.hxx.
References Model::joints, and Model::njoints.
Referenced by SpecialEuclideanOperation< 2 >::nv(), and SpecialEuclideanOperation< 3 >::nv().
|
inline |
Visit a LieGroupVariant to get the dimension of the Lie group configuration space.
[in] | lg | the LieGroupVariant. |
Definition at line 68 of file liegroup-variant-visitors.hxx.
|
inline |
Visit a JointModelVariant through JointNqVisitor to get the dimension of the joint configuration space.
[in] | jmodel | The JointModelVariant |
Definition at line 172 of file joint-basic-visitors.hxx.
Referenced by Model::addJoint(), JointModelComposite::addJoint(), JointModelBase< JointModelPrismatic< _Scalar, _Options, axis > >::finiteDifferenceIncrement(), integrate(), CartesianProductOperation< LieGroup1, LieGroup2 >::nv(), and VectorSpaceOperation< Size >::VectorSpaceOperation().
|
inline |
Visit a LieGroupVariant to get the dimension of the Lie group tangent space.
[in] | lg | the LieGroupVariant. |
Definition at line 82 of file liegroup-variant-visitors.hxx.
|
inline |
Visit a JointModelVariant through JointNvVisitor to get the dimension of the joint tangent space.
[in] | jmodel | The JointModelVariant |
Definition at line 156 of file joint-basic-visitors.hxx.
Referenced by Model::addJoint(), JointModelComposite::addJoint(), checkData(), Data::Data(), JointModelBase< JointModelPrismatic< _Scalar, _Options, axis > >::finiteDifferenceIncrement(), getFrameJacobian(), getFrameJacobianTimeVariation(), getJointJacobian(), getJointJacobianTimeVariation(), integrate(), and VectorSpaceOperation< Size >::VectorSpaceOperation().
const Scalar se3::PI | ( | ) |
Returns the value of PI according to the template parameters Scalar.
Scalar | The scalar type of the return pi value |
Definition at line 31 of file math/fwd.hpp.
|
inline |
Computes the potential energy of the system, i.e. the potential energy linked to the gravity field. The result is accessible through data.potential_energy.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
Definition at line 91 of file energy.hpp.
References Model::check(), forwardKinematics(), Model::gravity, Model::inertias, Model::njoints, Data::oMi, and Data::potential_energy.
Referenced by computeAllTerms().
|
inline |
Generate a configuration vector uniformly sampled among provided limits.
[in] | model | Model we want to generate a configuration vector of |
[in] | lowerLimits | Joints lower limits |
[in] | upperLimits | Joints upper limits |
Definition at line 146 of file joint-configuration.hxx.
References Model::joints, Model::njoints, and Model::nq.
Referenced by LieGroupBase< Derived >::isSameConfiguration(), and randomConfiguration().
|
inline |
Generate a configuration vector uniformly sampled among the joint limits of the specified Model.
[in] | model | Model we want to generate a configuration vector of |
Definition at line 165 of file joint-configuration.hxx.
References Model::lowerPositionLimit, and randomConfiguration().
|
inline |
Generate a random string composed of alphanumeric symbols of a given length.
len The length of the output string.
Definition at line 34 of file string-generator.hpp.
|
inline |
Retrieve the path of the file whose path is given in an url-format. Currently convert from the folliwing patterns : package:// or file://.
[in] | string | The path given in the url-format |
[in] | package_dirs | A list of packages directories where to search for files if its pattern starts with package:// |
|
inline |
The Recursive Newton-Euler algorithm. It computes the inverse dynamics, aka the joint torques according to the current state of the system and the desired joint accelerations.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint velocity vector (dim model.nv). |
[in] | a | The joint acceleration vector (dim model.nv). |
Definition at line 89 of file rnea.hxx.
References Data::a_gf, Model::check(), Model::gravity, Data::joints, Model::joints, Model::njoints, Data::tau, and Data::v.
|
inline |
The Recursive Newton-Euler algorithm. It computes the inverse dynamics, aka the joint torques according to the current state of the system, the desired joint accelerations and the external forces.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | q | The joint configuration vector (dim model.nq). |
[in] | v | The joint velocity vector (dim model.nv). |
[in] | a | The joint acceleration vector (dim model.nv). |
[in] | fext | Vector of external forces expressed in the local frame of the joints (dim model.njoints) |
Definition at line 115 of file rnea.hxx.
References Data::a_gf, Model::check(), Data::f, Model::gravity, Data::joints, Model::joints, Model::njoints, Data::tau, and Data::v.
Referenced by ur5x4::loadRobot().
|
inline |
Parse the environment variable ROS_PACKAGE_PATH and extract paths.
Definition at line 69 of file file-explorer.hpp.
References extractPathFromEnvVar().
|
inline |
Visit a JointModelVariant through JointSetIndexesVisitor to set the indexes of the joint in the kinematic chain.
[in] | jmodel | The JointModelVariant |
[in] | id | The index of joint in the kinematic chain |
[in] | q | The index in the full model configuration space corresponding to the first degree of freedom |
[in] | v | The index in the full model tangent space corresponding to the first joint tangent space degree |
Definition at line 239 of file joint-basic-visitors.hxx.
Referenced by JointModelBase< JointModelPrismatic< _Scalar, _Options, axis > >::finiteDifferenceIncrement().
|
inline |
Visit a JointModelVariant through JointShortnameVisitor to get the shortname of the derived joint model.
jmodel | The JointModelVariant we want the shortname of the type held in |
Definition at line 256 of file joint-basic-visitors.hxx.
Referenced by JointModelBase< JointModelPrismatic< _Scalar, _Options, axis > >::finiteDifferenceIncrement(), and JointModelComposite::setIndexes_impl().
|
inline |
Computes the skew representation of a given 3d vector, i.e. the antisymmetric matrix representation of the cross product operator ( \( [v]_{\cross} x = v \cross x \))
[in] | v | a vector of dimension 3. |
[out] | M | the skew matrix representation of dimension 3x3. |
Definition at line 34 of file skew.hpp.
Referenced by SpecialEuclideanOperation< 3 >::nv(), ForceSetTpl< _Scalar, _Options >::se3Action(), ForceSetTpl< _Scalar, _Options >::Block::se3Action(), ForceSetTpl< _Scalar, _Options >::se3ActionInverse(), ForceSetTpl< _Scalar, _Options >::Block::se3ActionInverse(), and skew().
|
inline |
|
inline |
Computes the square cross product linear operator C(u,v) such that for any vector w, \( u \times ( v \times w ) = C(u,v) w \).
[in] | u | a 3 dimensional vector. |
[in] | v | a 3 dimensional vector. |
[out] | C | the skew square matrix representation of dimension 3x3. |
Definition at line 158 of file skew.hpp.
Referenced by skewSquare().
|
inline |
Computes the square cross product linear operator C(u,v) such that for any vector w, \( u \times ( v \times w ) = C(u,v) w \).
[in] | u | A 3 dimensional vector. |
[in] | v | A 3 dimensional vector. |
Definition at line 184 of file skew.hpp.
References skewSquare().
|
inline |
Squared distance between two configuration vectors.
[in] | model | Model we want to compute the distance |
[in] | q0 | Configuration 0 (size model.nq) |
[in] | q1 | Configuration 1 (size model.nq) |
Definition at line 106 of file joint-configuration.hxx.
References Model::joints, and Model::njoints.
Referenced by LieGroupBase< Derived >::distance().
|
inline |
Visit a JointDataVariant through JointUInertiaVisitor to get the U matrix of the inertia matrix decomposition.
[in] | jdata | The jdata |
Definition at line 340 of file joint-basic-visitors.hxx.
|
inline |
Visit a JointDataVariant through JointUDInvInertiaVisitor to get U*D^{-1} matrix of the inertia matrix decomposition.
[in] | jdata | The jdata |
Definition at line 371 of file joint-basic-visitors.hxx.
|
inline |
Inverse of skew operator. From a given skew-symmetric matrix M of dimension 3x3, it extracts the supporting vector, i.e. the entries of M. Mathematically speacking, it computes \( v \) such that \( M x = v \cross x \).
[in] | M | a 3x3 skew symmetric matrix. |
[out] | v | the 3d vector representation of M. |
Definition at line 74 of file skew.hpp.
Referenced by unSkew().
|
inline |
Inverse of skew operator. From a given skew-symmetric matrix M of dimension 3x3, it extracts the supporting vector, i.e. the entries of M. Mathematically speacking, it computes \( v \) such that \( M x = v \cross x \).
[in] | M | a 3x3 matrix. |
Definition at line 100 of file skew.hpp.
References unSkew().
|
inline |
Updates the placement of the given frame.
[in] | model | The kinematic model. |
data | Data associated to model. | |
[in] | frame_id | Id of the operational Frame. |
Definition at line 47 of file frames.hxx.
References Model::frames, Data::oMf, Data::oMi, FrameTpl< _Scalar, _Options >::parent, and FrameTpl< _Scalar, _Options >::placement.
Updates the placement of each frame contained in the model.
[in] | model | The kinematic model. |
data | Data associated to model. |
Definition at line 29 of file frames.hxx.
References Model::check(), Model::frames, Model::nframes, Data::oMf, Data::oMi, FrameTpl< _Scalar, _Options >::parent, and FrameTpl< _Scalar, _Options >::placement.
Referenced by framesForwardKinematics().
|
inline |
Apply a forward kinematics and update the placement of the geometry objects.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | geomModel | The geometry model containing the collision objects. |
[out] | geomData | The geometry data containing the placements of the collision objects. See oMg field in GeometryData. |
[in] | q | The joint configuration vector (dim model.nq). |
Definition at line 28 of file algorithm/geometry.hxx.
References Model::check(), and forwardKinematics().
Referenced by computeCollisions(), and computeDistances().
|
inline |
Update the placement of the geometry objects according to the current joint placements contained in data.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
[in] | geomModel | The geometry model containing the collision objects. |
[out] | geomData | The geometry data containing the placements of the collision objects. See oMg field in GeometryData. |
Definition at line 41 of file algorithm/geometry.hxx.
References Model::check(), GeometryData::collisionObjects, GeometryModel::geometryObjects, GeometryModel::ngeoms, GeometryData::oMg, and Data::oMi.
Referenced by ur5x4::loadRobot().
Update the global placement of the joints oMi according to the relative placements of the joints.
[in] | model | The model structure of the rigid body system. |
[in] | data | The data structure of the rigid body system. |
Definition at line 59 of file kinematics.hxx.
References Model::check(), Data::liMi, Model::njoints, Data::oMi, and Model::parents.