33 #ifndef CDYNAMICSSCL_HPP_
34 #define CDYNAMICSSCL_HPP_
36 #include <scl/dynamics/CDynamicsBase.hpp>
37 #include <scl/data_structs/SRigidBodyDyn.hpp>
39 #include <sutil/CMappedTree.hpp>
86 const Eigen::VectorXd& arg_q);
97 const Eigen::VectorXd& arg_q);
112 Eigen::Affine3d& arg_T,
119 const Eigen::VectorXd& arg_q);
132 Eigen::MatrixXd& arg_J,
137 const Eigen::VectorXd& arg_q,
139 const Eigen::Vector3d& arg_pos_local);
150 Eigen::MatrixXd& arg_J,
154 const Eigen::VectorXd& arg_q,
156 const Eigen::Vector3d& arg_pos_local)
const;
166 Eigen::MatrixXd& arg_J,
173 const Eigen::VectorXd& arg_q,
175 const Eigen::Vector3d& arg_pos_local,
178 const bool arg_recompute_transforms=
true)
188 const Eigen::VectorXd& arg_q)
const
193 for(it = arg_tree.
begin(), ite = arg_tree.end(); it!=ite; ++it)
194 { flag = flag &&
computeJacobian(it->J_com_,*it, arg_q, it->link_ds_->com_); }
208 const Eigen::VectorXd& arg_q)
213 ret_Mgc.setZero(dof, dof);
214 for(it = arg_tree.
begin(), ite = arg_tree.end(); it!=ite; ++it)
216 if(it->link_ds_->is_root_){
continue; }
217 ret_Mgc += it->link_ds_->mass_ * (it->J_com_.block(0,0,3,dof).transpose() * it->J_com_.block(0,0,3,dof));
218 ret_Mgc += it->J_com_.block(3,0,3,dof).transpose() * it->link_ds_->inertia_ * it->J_com_.block(3,0,3,dof);
230 const Eigen::VectorXd& arg_q)
236 ret_FgravGC.setZero(dof);
237 for(it = arg_tree.
begin(), ite = arg_tree.end(); it!=ite; ++it)
239 if(it->link_ds_->is_root_){
continue; }
253 const Eigen::VectorXd& arg_q,
255 const Eigen::VectorXd& arg_dq);
262 const Eigen::VectorXd& arg_q);
278 sFloat arg_collision_time,
virtual sBool computeJacobian(Eigen::MatrixXd &arg_J, const SRigidBodyDyn &arg_link, const Eigen::VectorXd &arg_q, const Eigen::Vector3d &arg_pos_local) const
Definition: CDynamicsScl.cpp:245
virtual sBool computeTransformToAncestor(Eigen::Affine3d &arg_T, SRigidBodyDyn &arg_link, const SRigidBodyDyn *arg_ancestor, const Eigen::VectorXd &arg_q)
Definition: CDynamicsScl.cpp:135
Definition: SRobotParsed.hpp:51
Definition: SGcModel.hpp:53
virtual sBool computeJacobianWithTransforms(Eigen::MatrixXd &arg_J, SRigidBodyDyn &arg_link, const Eigen::VectorXd &arg_q, const Eigen::Vector3d &arg_pos_local)
Definition: CDynamicsScl.cpp:212
sBool computeJacobianComForAllLinks(sutil::CMappedTree< std::string, SRigidBodyDyn > &arg_tree, const Eigen::VectorXd &arg_q) const
Definition: CDynamicsScl.hpp:184
const SRobotParsed * robot_parsed_data_
Definition: CDynamicsBase.hpp:313
virtual sBool computeTransform(SRigidBodyDyn &arg_link, const Eigen::VectorXd &arg_q)
Definition: CDynamicsScl.cpp:86
virtual sBool computeImpulseForce(const SRobotSensors &arg_sensor_data, const SGcModel &arg_gc_model, sFloat arg_coeff_rest, sFloat arg_collision_time, scl::SForceContact &ret_force_)
Definition: CDynamicsScl.cpp:404
Definition: CDynamicsBase.hpp:55
virtual sBool computeGCModel(const SRobotSensors *arg_sensor_data, SGcModel *arg_gc_model)
Definition: CDynamicsScl.cpp:46
sBool has_been_init_
Definition: CDynamicsBase.hpp:310
bool sBool
Definition: DataTypes.hpp:54
CDynamicsScl()
Definition: CDynamicsScl.hpp:286
sUInt dof_
Definition: SRobotParsed.hpp:83
virtual sBool init(const SRobotParsed &arg_robot_data)
Definition: CDynamicsScl.cpp:423
Eigen::Vector3d gravity_
Definition: SRobotParsed.hpp:86
virtual sFloat computeEnergyKinetic(sutil::CMappedTree< std::string, SRigidBodyDyn > &arg_tree, const Eigen::VectorXd &arg_q, const Eigen::VectorXd &arg_dq)
Definition: CDynamicsScl.cpp:333
iterator begin()
Definition: CMappedList.hpp:486
Definition: CDynamicsScl.hpp:57
sBool computeInertiaGC(Eigen::MatrixXd &ret_Mgc, sutil::CMappedTree< std::string, SRigidBodyDyn > &arg_tree, const Eigen::VectorXd &arg_q)
Definition: CDynamicsScl.hpp:204
sBool computeForceGravityGC(Eigen::VectorXd &ret_FgravGC, sutil::CMappedTree< std::string, SRigidBodyDyn > &arg_tree, const Eigen::VectorXd &arg_q)
Definition: CDynamicsScl.hpp:226
Definition: CMappedTree.hpp:66
virtual ~CDynamicsScl()
Definition: CDynamicsScl.hpp:289
virtual sFloat computeEnergyPotential(sutil::CMappedTree< std::string, SRigidBodyDyn > &arg_tree, const Eigen::VectorXd &arg_q)
Definition: CDynamicsScl.cpp:373
double sFloat
Definition: DataTypes.hpp:72
virtual sBool computeTransformsForAllLinks(sutil::CMappedTree< std::string, SRigidBodyDyn > &arg_tree, const Eigen::VectorXd &arg_q)
Definition: CDynamicsScl.cpp:171
virtual sBool computeJacobian(Eigen::MatrixXd &arg_J, SRigidBodyDyn &arg_link, const SRigidBodyDyn *arg_ancestor, const Eigen::VectorXd &arg_q, const Eigen::Vector3d &arg_pos_local, const bool arg_recompute_transforms=true)
Definition: CDynamicsScl.hpp:164
Definition: SRigidBodyDyn.hpp:56
Definition: SRobotIO.hpp:49