33 #ifndef DART_CONSTRAINT_BALLJOINTCONSTRAINT_HPP_
34 #define DART_CONSTRAINT_BALLJOINTCONSTRAINT_HPP_
36 #include <Eigen/Dense>
42 namespace constraint {
63 const Eigen::Vector3d& _jointPos);
69 const std::string&
getType()
const override;
135 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
BallJointConstraint represents ball joint constraint between a body and the world or between two bodi...
Definition: BallJointConstraint.hpp:47
static const std::string & getStaticType()
Returns constraint type for this class.
Definition: BallJointConstraint.cpp:100
void excite() override
Excite the constraint.
Definition: BallJointConstraint.cpp:292
void unexcite() override
Unexcite the constraint.
Definition: BallJointConstraint.cpp:305
void getInformation(ConstraintInfo *_lcp) override
Fill LCP variables.
Definition: BallJointConstraint.cpp:142
const std::string & getType() const override
Returns a string representing the constraint type.
Definition: BallJointConstraint.cpp:94
Eigen::Matrix< double, 3, 6 > mJacobian1
Linear map between constraint space and Cartesian space for body1.
Definition: BallJointConstraint.hpp:122
Eigen::Vector3d mOffset2
Offset from the origin of body frame 2 to the ball joint position where the offset is expressed in bo...
Definition: BallJointConstraint.hpp:116
Eigen::Vector3d mOffset1
Offset from the origin of body frame 1 to the ball joint position where the offset is expressed in bo...
Definition: BallJointConstraint.hpp:112
BallJointConstraint(dynamics::BodyNode *_body, const Eigen::Vector3d &_jointPos)
Constructor that takes one body and the joint position in the world frame.
Definition: BallJointConstraint.cpp:44
void applyImpulse(double *_lambda) override
Apply computed constraint impulse to constrained skeletons.
Definition: BallJointConstraint.cpp:318
Eigen::Matrix< double, 3, 6 > mJacobian2
Linear map between constraint space and Cartesian space for body2.
Definition: BallJointConstraint.hpp:125
dynamics::SkeletonPtr getRootSkeleton() const override
Definition: BallJointConstraint.cpp:336
void uniteSkeletons() override
Definition: BallJointConstraint.cpp:361
void applyUnitImpulse(std::size_t _index) override
Apply unit impulse to constraint space.
Definition: BallJointConstraint.cpp:179
virtual ~BallJointConstraint()
Destructor.
Definition: BallJointConstraint.cpp:89
bool isActive() const override
Return true if this constraint is active.
Definition: BallJointConstraint.cpp:395
void update() override
Update constraint using updated Skeleton's states.
Definition: BallJointConstraint.cpp:107
double mOldX[3]
Definition: BallJointConstraint.hpp:128
std::size_t mAppliedImpulseIndex
Index of applied impulse.
Definition: BallJointConstraint.hpp:131
void getVelocityChange(double *_vel, bool _withCfm) override
Get velocity change due to the uint impulse.
Definition: BallJointConstraint.cpp:257
Eigen::Vector3d mViolation
Position constraint violation expressed in body frame 1.
Definition: BallJointConstraint.hpp:119
class JointConstraint
Definition: JointConstraint.hpp:48
BodyNode class represents a single node of the skeleton.
Definition: BodyNode.hpp:79
std::shared_ptr< Skeleton > SkeletonPtr
Definition: SmartPointer.hpp:60
Definition: BulletCollisionDetector.cpp:65
ConstraintInfo.
Definition: ConstraintBase.hpp:50