4 template<
typename TRAIT>
8 template<
typename TRAIT>
10 inertiaProps( & inertia ),
11 motionTransforms( & transforms )
31 template <
typename TRAIT>
39 link1_AI = inertiaProps->getTensor_link1();
40 link1_p = - fext[
LINK1];
41 link2_AI = inertiaProps->getTensor_link2();
42 link2_p = - fext[
LINK2];
43 link3_AI = inertiaProps->getTensor_link3();
44 link3_p = - fext[
LINK3];
45 link4_AI = inertiaProps->getTensor_link4();
46 link4_p = - fext[
LINK4];
47 link5_AI = inertiaProps->getTensor_link5();
48 link5_p = - fext[
LINK5];
49 link6_AI = inertiaProps->getTensor_link6();
50 link6_p = - fext[
LINK6];
66 link2_v = (motionTransforms-> fr_link2_X_fr_link1) * link1_v;
70 iit::rbd::motionCrossProductMx<SCALAR>(link2_v, vcross);
78 link3_v = (motionTransforms-> fr_link3_X_fr_link2) * link2_v;
82 iit::rbd::motionCrossProductMx<SCALAR>(link3_v, vcross);
90 link4_v = (motionTransforms-> fr_link4_X_fr_link3) * link3_v;
94 iit::rbd::motionCrossProductMx<SCALAR>(link4_v, vcross);
102 link5_v = (motionTransforms-> fr_link5_X_fr_link4) * link4_v;
106 iit::rbd::motionCrossProductMx<SCALAR>(link5_v, vcross);
114 link6_v = (motionTransforms-> fr_link6_X_fr_link5) * link5_v;
118 iit::rbd::motionCrossProductMx<SCALAR>(link6_v, vcross);
131 link6_U = link6_AI.col(
rbd::AZ);
135 pa = link6_p + Ia_r * link6_c + link6_U * link6_u/link6_D;
138 link5_p += (motionTransforms-> fr_link6_X_fr_link5).transpose() * pa;
142 link5_U = link5_AI.col(
rbd::AZ);
146 pa = link5_p + Ia_r * link5_c + link5_U * link5_u/link5_D;
149 link4_p += (motionTransforms-> fr_link5_X_fr_link4).transpose() * pa;
153 link4_U = link4_AI.col(
rbd::AZ);
157 pa = link4_p + Ia_r * link4_c + link4_U * link4_u/link4_D;
160 link3_p += (motionTransforms-> fr_link4_X_fr_link3).transpose() * pa;
164 link3_U = link3_AI.col(
rbd::AZ);
168 pa = link3_p + Ia_r * link3_c + link3_U * link3_u/link3_D;
171 link2_p += (motionTransforms-> fr_link3_X_fr_link2).transpose() * pa;
175 link2_U = link2_AI.col(
rbd::AZ);
179 pa = link2_p + Ia_r * link2_c + link2_U * link2_u/link2_D;
182 link1_p += (motionTransforms-> fr_link2_X_fr_link1).transpose() * pa;
186 link1_U = link1_AI.col(
rbd::AZ);
192 link1_a = (motionTransforms-> fr_link1_X_fr_link0).col(
rbd::LZ) *
SCALAR(iit::rbd::g);
193 qdd(
JA) = (link1_u - link1_U.dot(link1_a)) / link1_D;
196 link2_a = (motionTransforms-> fr_link2_X_fr_link1) * link1_a + link2_c;
197 qdd(
JB) = (link2_u - link2_U.dot(link2_a)) / link2_D;
200 link3_a = (motionTransforms-> fr_link3_X_fr_link2) * link2_a + link3_c;
201 qdd(
JC) = (link3_u - link3_U.dot(link3_a)) / link3_D;
204 link4_a = (motionTransforms-> fr_link4_X_fr_link3) * link3_a + link4_c;
205 qdd(
JD) = (link4_u - link4_U.dot(link4_a)) / link4_D;
208 link5_a = (motionTransforms-> fr_link5_X_fr_link4) * link4_a + link5_c;
209 qdd(
JE) = (link5_u - link5_U.dot(link5_a)) / link5_D;
212 link6_a = (motionTransforms-> fr_link6_X_fr_link5) * link5_a + link6_c;
213 qdd(
JF) = (link6_u - link6_U.dot(link6_a)) / link6_D;
CoreS::Matrix66 Matrix66S
Definition: forward_dynamics.h:49
Definition: declarations.h:38
void compute_Ia_revolute(const MatrixBase< D1 > &IA, const Vec6< typename D1::Scalar > &U, const typename D1::Scalar &D, const MatrixBase< D2 > &Ia_const)
Definition: robcogen_commons.h:595
Definition: declarations.h:37
iit::testirb4600::tpl::MotionTransforms< TRAIT > MTransforms
Definition: forward_dynamics.h:52
CoreS::ForceVector Force
Definition: forward_dynamics.h:44
iit::testirb4600::tpl::JointState< SCALAR > JointState
Definition: forward_dynamics.h:48
Definition: declarations.h:27
Definition: declarations.h:31
ForwardDynamics(iit::testirb4600::dyn::tpl::InertiaProperties< TRAIT > &in, MTransforms &tr)
Definition: forward_dynamics.impl.h:9
Force< DScalar > vxIv(const Velocity< DScalar > &v, const MatrixBase< Derived > &I)
Definition: robcogen_commons.h:58
void fd(JointState &qdd, const JointState &q, const JointState &qd, const JointState &tau, const ExtForces &fext=zeroExtForces)
Definition: forward_dynamics.h:168
Definition: inertia_properties.h:25
Definition: declarations.h:40
Definition: link_data_map.h:12
Definition: declarations.h:36
Definition: declarations.h:30
Definition: declarations.h:26
Definition: declarations.h:29
Definition: declarations.h:28
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef TRAIT::Scalar SCALAR
Definition: forward_dynamics.h:39
Definition: declarations.h:41
Definition: declarations.h:39
void ctransform_Ia_revolute(const MatrixBase< D1 > &Ia_A, const MatrixBase< D2 > &XM, const MatrixBase< D3 > &Ia_B_const)
Definition: robcogen_commons.h:315
Definition: forward_dynamics.h:34