wbc
RobotModelHyrodyn.hpp
Go to the documentation of this file.
1#ifndef ROBOTMODELHYRODYN_HPP
2#define ROBOTMODELHYRODYN_HPP
3
5
6#include <hyrodyn/robot_model_hyrodyn.hpp>
7#include <wbc/types/JointCommand.hpp>
8
9namespace wbc{
10
12private:
14
15protected:
16 hyrodyn::RobotModel_HyRoDyn hyrodyn;
17 Eigen::VectorXd tmp_ydd;
18
19 void clear();
20 void addFloatingBaseToURDF(urdf::ModelInterfaceSharedPtr& robot_urdf, const std::string &world_frame_id = "world");
21public:
23 virtual ~RobotModelHyrodyn();
24
30 virtual bool configure(const RobotModelConfig& cfg);
31
42 virtual void update(const Eigen::VectorXd& joint_positions,
43 const Eigen::VectorXd& joint_velocities,
44 const Eigen::VectorXd& joint_accelerations,
45 const types::Pose& fb_pose,
46 const types::Twist& fb_twist,
47 const types::SpatialAcceleration& fb_acc);
48
51 virtual const types::Pose &pose(const std::string &frame_id);
52
55 virtual const types::Twist &twist(const std::string &frame_id);
56
59 virtual const types::SpatialAcceleration &acceleration(const std::string &frame_id);
60
67 virtual const Eigen::MatrixXd &spaceJacobian(const std::string &frame_id);
68
73 virtual const Eigen::MatrixXd &bodyJacobian(const std::string &frame_id);
74
79 virtual const Eigen::MatrixXd &comJacobian();
80
86 virtual const types::SpatialAcceleration &spatialAccelerationBias(const std::string &frame_id);
87
89 virtual const Eigen::MatrixXd &jointSpaceInertiaMatrix();
90
92 virtual const Eigen::VectorXd &biasForces();
93
95 virtual const types::RigidBodyState& centerOfMass();
96
98 hyrodyn::RobotModel_HyRoDyn *hyrodynHandle(){return &hyrodyn;}
99
103 virtual const Eigen::VectorXd& inverseDynamics(const Eigen::VectorXd& qdd_ref = Eigen::VectorXd(),
104 const std::vector<types::Wrench>& f_ext = std::vector<types::Wrench>());
105};
106
107}
108
109#endif
virtual const types::RigidBodyState & centerOfMass()
Return centers of mass expressed in world frame.
Definition RobotModelHyrodyn.cpp:487
virtual const types::Twist & twist(const std::string &frame_id)
Definition RobotModelHyrodyn.cpp:313
hyrodyn::RobotModel_HyRoDyn * hyrodynHandle()
Return pointer to the internal hyrodyn model.
Definition RobotModelHyrodyn.hpp:98
virtual const Eigen::MatrixXd & jointSpaceInertiaMatrix()
Returns the joint space mass-inertia matrix, which is nj x nj, where nj is the number of joints + num...
Definition RobotModelHyrodyn.cpp:440
virtual const Eigen::MatrixXd & comJacobian()
Returns the CoM Jacobian for the robot, which maps the robot joint velocities to linear spatial veloc...
Definition RobotModelHyrodyn.cpp:401
virtual const Eigen::VectorXd & inverseDynamics(const Eigen::VectorXd &qdd_ref=Eigen::VectorXd(), const std::vector< types::Wrench > &f_ext=std::vector< types::Wrench >())
Compute tau from internal state.
Definition RobotModelHyrodyn.cpp:510
virtual const Eigen::MatrixXd & spaceJacobian(const std::string &frame_id)
Returns the Space Jacobian for the given frame. The order of the Jacobian's columns will be the same ...
Definition RobotModelHyrodyn.cpp:345
virtual const Eigen::MatrixXd & bodyJacobian(const std::string &frame_id)
Returns the Body Jacobian for the given frame. The order of the Jacobian's columns will be the same a...
Definition RobotModelHyrodyn.cpp:373
virtual bool configure(const RobotModelConfig &cfg)
This will read the robot model from the given URDF file and initialize all members accordingly.
Definition RobotModelHyrodyn.cpp:138
virtual ~RobotModelHyrodyn()
Definition RobotModelHyrodyn.cpp:14
virtual const types::Pose & pose(const std::string &frame_id)
Definition RobotModelHyrodyn.cpp:297
Eigen::VectorXd tmp_ydd
Definition RobotModelHyrodyn.hpp:17
virtual const Eigen::VectorXd & biasForces()
Returns the bias force vector, which is nj x 1, where nj is the number of joints + number of floating...
Definition RobotModelHyrodyn.cpp:462
virtual const types::SpatialAcceleration & spatialAccelerationBias(const std::string &frame_id)
Returns the spatial acceleration bias, i.e. the term Jdot*qdot. The linear part of the acceleration w...
Definition RobotModelHyrodyn.cpp:420
virtual void update(const Eigen::VectorXd &joint_positions, const Eigen::VectorXd &joint_velocities, const Eigen::VectorXd &joint_accelerations, const types::Pose &fb_pose, const types::Twist &fb_twist, const types::SpatialAcceleration &fb_acc)
Update kinematics/dynamics.
Definition RobotModelHyrodyn.cpp:217
RobotModelHyrodyn()
Definition RobotModelHyrodyn.cpp:11
void addFloatingBaseToURDF(urdf::ModelInterfaceSharedPtr &robot_urdf, const std::string &world_frame_id="world")
Definition RobotModelHyrodyn.cpp:24
hyrodyn::RobotModel_HyRoDyn hyrodyn
Definition RobotModelHyrodyn.hpp:16
virtual const types::SpatialAcceleration & acceleration(const std::string &frame_id)
Definition RobotModelHyrodyn.cpp:329
void clear()
Definition RobotModelHyrodyn.cpp:17
RobotModel()
Definition RobotModel.cpp:7
urdf::ModelInterfaceSharedPtr robot_urdf
Definition RobotModel.hpp:72
Definition Pose.hpp:9
Definition RigidBodyState.hpp:10
Definition SpatialAcceleration.hpp:8
Definition Twist.hpp:8
Definition ContactsAccelerationConstraint.cpp:3
Robot Model configuration class, containts information like urdf file, type of robot model to be load...
Definition RobotModelConfig.hpp:13
Definition RobotModel.hpp:350