DART 6.10.1
Loading...
Searching...
No Matches
WeldJoint.hpp
Go to the documentation of this file.
1/*
2 * Copyright (c) 2011-2021, The DART development contributors
3 * All rights reserved.
4 *
5 * The list of contributors can be found at:
6 * https://github.com/dartsim/dart/blob/master/LICENSE
7 *
8 * This file is provided under the following "BSD-style" License:
9 * Redistribution and use in source and binary forms, with or
10 * without modification, are permitted provided that the following
11 * conditions are met:
12 * * Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 * * Redistributions in binary form must reproduce the above
15 * copyright notice, this list of conditions and the following
16 * disclaimer in the documentation and/or other materials provided
17 * with the distribution.
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
19 * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
20 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
23 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
26 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
29 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 * POSSIBILITY OF SUCH DAMAGE.
31 */
32
33#ifndef DART_DYNAMICS_WELDJOINT_HPP_
34#define DART_DYNAMICS_WELDJOINT_HPP_
35
36#include <string>
37
38#include <Eigen/Dense>
39
41
42namespace dart {
43namespace dynamics {
44
46class WeldJoint : public ZeroDofJoint
47{
48public:
49 friend class Skeleton;
50
59
60 WeldJoint(const WeldJoint&) = delete;
61
63 virtual ~WeldJoint();
64
67
68 // Documentation inherited
69 const std::string& getType() const override;
70
72 static const std::string& getStaticType();
73
74 // Documentation inherited
75 bool isCyclic(std::size_t _index) const override;
76
77 // Documentation inherited
78 void setTransformFromParentBodyNode(const Eigen::Isometry3d& _T) override;
79
80 // Documentation inherited
81 void setTransformFromChildBodyNode(const Eigen::Isometry3d& _T) override;
82
83protected:
86
87 // Documentation inherited
88 Joint* clone() const override;
89
90 //----------------------------------------------------------------------------
91 // Recursive algorithms
92 //----------------------------------------------------------------------------
93
94 // Documentation inherited
95 void updateRelativeTransform() const override;
96
97 // Documentation inherited
98 void updateRelativeSpatialVelocity() const override;
99
100 // Documentation inherited
101 void updateRelativeSpatialAcceleration() const override;
102
103 // Documentation inherited
104 void updateRelativePrimaryAcceleration() const override;
105
106 // Documentation inherited
107 void updateRelativeJacobian(bool = true) const override;
108
109 // Documentation inherited
110 void updateRelativeJacobianTimeDeriv() const override;
111};
112
113} // namespace dynamics
114} // namespace dart
115
116#endif // DART_DYNAMICS_WELDJOINT_HPP_
#define DART_DEFINE_ALIGNED_SHARED_OBJECT_CREATOR(class_name)
Definition Memory.hpp:155
BodyPropPtr properties
Definition SdfParser.cpp:80
class Joint
Definition Joint.hpp:60
class Skeleton
Definition Skeleton.hpp:59
class WeldJoint
Definition WeldJoint.hpp:47
void setTransformFromChildBodyNode(const Eigen::Isometry3d &_T) override
Set transformation from child body node to this joint.
Definition WeldJoint.cpp:91
void updateRelativeSpatialVelocity() const override
Update spatial velocity of the child BodyNode relative to the parent BodyNode expressed in the child ...
Definition WeldJoint.cpp:120
void updateRelativeJacobian(bool=true) const override
Update spatial Jacobian of the child BodyNode relative to the parent BodyNode expressed in the child ...
Definition WeldJoint.cpp:140
void updateRelativePrimaryAcceleration() const override
Update J * of this joint.
Definition WeldJoint.cpp:134
WeldJoint(const WeldJoint &)=delete
const std::string & getType() const override
Gets a string representing the joint type.
Definition WeldJoint.cpp:57
static const std::string & getStaticType()
Get joint type for this class.
Definition WeldJoint.cpp:63
virtual ~WeldJoint()
Destructor.
Definition WeldJoint.cpp:51
bool isCyclic(std::size_t _index) const override
Get whether a generalized coordinate is cyclic.
Definition WeldJoint.cpp:70
void updateRelativeTransform() const override
Update transform of the child BodyNode relative to the parent BodyNode expressed in the child BodyNod...
Definition WeldJoint.cpp:114
void updateRelativeJacobianTimeDeriv() const override
Update time derivative of spatial Jacobian of the child BodyNode relative to the parent BodyNode expr...
Definition WeldJoint.cpp:146
void updateRelativeSpatialAcceleration() const override
Update spatial acceleration of the child BodyNode relative to the parent BodyNode expressed in the ch...
Definition WeldJoint.cpp:127
void setTransformFromParentBodyNode(const Eigen::Isometry3d &_T) override
Set transformation from parent body node to this joint.
Definition WeldJoint.cpp:82
Joint * clone() const override
Create a clone of this Joint.
Definition WeldJoint.cpp:108
Properties getWeldJointProperties() const
Get the Properties of this WeldJoint.
Definition WeldJoint.cpp:76
class ZeroDofJoint
Definition ZeroDofJoint.hpp:48
Definition BulletCollisionDetector.cpp:65
Definition WeldJoint.hpp:52
Definition ZeroDofJoint.hpp:51
Definition JointAspect.hpp:112