SCL
1.0
Standard Control Library : Control, dynamics, physics, and simulation
|
#include <SForce.hpp>
Public Member Functions | |
SForceContact () | |
virtual | ~SForceContact () |
virtual const std::string & | getType () const |
virtual const std::string & | getName () const |
virtual bool | hasBeenInit () const |
Public Attributes | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW const SRobotParsed * | other_robot_ |
std::string | other_link_name_ |
const SRigidBodyDyn * | other_rbd_ |
Eigen::MatrixXd | other_J_ |
Eigen::Vector6d | p_pre_ |
Eigen::Vector6d | other_p_pre_ |
Eigen::Vector6d | p_curr_ |
Eigen::Vector6d | other_p_curr_ |
sFloat | coeff_restitution_ |
sFloat | time_impulse_ |
sFloat | energy_collision_ |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW const SRobotParsed * | robot_ |
std::string | link_name_ |
const SRigidBodyDyn * | rbd_ |
Eigen::Vector6d | force_ |
Eigen::Vector3d | pos_ |
Eigen::Vector3d | direction_ |
Eigen::MatrixXd | J_ |
std::string | name_ |
sBool | has_been_init_ |
Protected Member Functions | |
SForceContact (std::string arg_subclass_type) | |
Protected Attributes | |
std::string | type_ |
In addition to a simple force, a contact force also describes potential force impulses during a collision and stores references to the object that is in contact.
NOTE : In the event of a contact with the ground (an object of infinite inertia) the "other" data types will be set to NULL and ignored. This is because it makes no sense for the "other" object to move.
WARNING : In case of a plastic (energy dissipating) collision with an object of infinite inertia, it is not feasible to resolve the conservation of momentum requirements with the information contained in this object. Instead: Fixed manipulator: You may assume that the ground was part of the object itself. As such, all collision forces are internal and things are ok. Floating manipulator : This is not rigidly connected to the ground. As such it must use some form of propulsion to stabilize its base. The propulsion mechanism must then conserve momentum.
|
inline |
Default constructor. Sets stuff to zero
|
inlinevirtual |
Default destructor. Does nothing
|
inlineprotected |
Typed constructor (called by subclasses). Sets stuff to zero
|
inlinevirtualinherited |
Get the object's type
|
inlinevirtualinherited |
Get the object's type
|
inlinevirtualinherited |
Get the object's type
sFloat scl::SForceContact::coeff_restitution_ |
The coefficient of restitution of the collision. This will determine how much energy is lost. 0 ==> No energy is lost (to non-conservative forces) 1 ==> All energy is lost
|
inherited |
The direction along which the force is applied.
sFloat scl::SForceContact::energy_collision_ |
Energy lost in the collision impulse so far
|
inherited |
The force vector [fx, fy, fz, fwx, fwy, fwz]
|
inherited |
Whether the object is ready for use
|
inherited |
The Jacobian of the point. Useful for converting the applied force into a set of generalized forces. Ie. J' * f
NOTE : This must be an [ndof x 6] sized Matrix to translate an [fx, fy, fz, fwx, fwy, fwz] force vector into joint torques.
|
inherited |
The link on which this force acts
|
inherited |
The object's name
Eigen::MatrixXd scl::SForceContact::other_J_ |
The Jacobian of the contact point for the other robot. Useful for converting the applied force into a set of generalized forces. Ie. J' * f
NOTE : This must be an [ndof x 6] sized Matrix to translate an [fx, fy, fz, fwx, fwy, fwz] force vector into joint torques.
std::string scl::SForceContact::other_link_name_ |
The link of the other robot at which contact is make
const SRigidBodyDyn* scl::SForceContact::other_rbd_ |
A pointer to the dynamic engine's object for this link
EIGEN_MAKE_ALIGNED_OPERATOR_NEW const SRobotParsed* scl::SForceContact::other_robot_ |
The other object that the robot makes contact with
Eigen::Vector6d scl::SForceContact::p_curr_ |
The operational point momentum of the objects at the current time. NOTE : Momentum is conserved during a collision.
Eigen::Vector6d scl::SForceContact::p_pre_ |
The operational point momentum of the objects before the contact/collision event. NOTE : Momentum is conserved during a collision.
|
inherited |
The point (wrt the link's coordinate frame) where the force acts
|
inherited |
A pointer to the dynamic engine's object for this link
|
inherited |
Its parent robot
sFloat scl::SForceContact::time_impulse_ |
The duration of the collision impulse force (typically the time since the start of the collision)
|
protectedinherited |
The object's type. Should only be set by the constructor