wbc
RobotModelRBDL.hpp
Go to the documentation of this file.
1#ifndef ROBOT_MODEL_RBDL_HPP
2#define ROBOT_MODEL_RBDL_HPP
3
5#include <rbdl/rbdl.h>
6
7namespace wbc {
8
10protected:
12
13 std::shared_ptr<RigidBodyDynamics::Model> rbdl_model;
14 Eigen::VectorXd tau;
15 RigidBodyDynamics::Math::MatrixNd J, H_q;
16
17 std::vector<std::string> jointNamesInRBDLOrder(const std::string &urdf_file);
19 void clear();
21 void updateFK(Eigen::VectorXd &_q,Eigen::VectorXd &_qd,Eigen::VectorXd &_qdd);
23 void updateFK(Eigen::VectorXd &_q,Eigen::VectorXd &_qd);
24
25public:
27 virtual ~RobotModelRBDL();
28
34 virtual bool configure(const RobotModelConfig& cfg);
35
46 virtual void update(const Eigen::VectorXd& joint_positions,
47 const Eigen::VectorXd& joint_velocities,
48 const Eigen::VectorXd& joint_accelerations,
49 const types::Pose& fb_pose,
50 const types::Twist& fb_twist,
51 const types::SpatialAcceleration& fb_acc);
52
55 virtual const types::Pose &pose(const std::string &frame_id);
56
59 virtual const types::Twist &twist(const std::string &frame_id);
60
63 virtual const types::SpatialAcceleration &acceleration(const std::string &frame_id);
64
70 virtual const Eigen::MatrixXd &spaceJacobian(const std::string &frame_id);
71
77 virtual const Eigen::MatrixXd &bodyJacobian(const std::string &frame_id);
78
84 virtual const Eigen::MatrixXd &comJacobian();
85
91 virtual const types::SpatialAcceleration &spatialAccelerationBias(const std::string &frame_id);
92
94 virtual const Eigen::MatrixXd &jointSpaceInertiaMatrix();
95
97 virtual const Eigen::VectorXd &biasForces();
98
100 virtual const types::RigidBodyState& centerOfMass();
101
105 virtual const Eigen::VectorXd& inverseDynamics(const Eigen::VectorXd& qdd_ref = Eigen::VectorXd(),
106 const std::vector<types::Wrench>& f_ext = std::vector<types::Wrench>());
107};
108
109}
110
111#endif
virtual const Eigen::MatrixXd & bodyJacobian(const std::string &frame_id)
Returns the Body Jacobian for the kinematic chain between root and the tip frame as full body Jacobia...
Definition RobotModelRBDL.cpp:289
virtual const types::SpatialAcceleration & acceleration(const std::string &frame_id)
Definition RobotModelRBDL.cpp:235
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 RobotModelRBDL.cpp:111
virtual bool configure(const RobotModelConfig &cfg)
This will read the robot model from the given URDF file and initialize all members accordingly.
Definition RobotModelRBDL.cpp:28
virtual const types::Twist & twist(const std::string &frame_id)
Definition RobotModelRBDL.cpp:211
virtual const Eigen::MatrixXd & jointSpaceInertiaMatrix()
Definition RobotModelRBDL.cpp:377
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 RobotModelRBDL.cpp:436
virtual ~RobotModelRBDL()
Definition RobotModelRBDL.cpp:18
RobotModelRBDL()
Definition RobotModelRBDL.cpp:14
virtual const Eigen::VectorXd & biasForces()
Definition RobotModelRBDL.cpp:394
virtual const types::RigidBodyState & centerOfMass()
Return Current center of gravity in expressed Eigen frame.
Definition RobotModelRBDL.cpp:411
void clear()
Definition RobotModelRBDL.cpp:22
std::vector< std::string > jointNamesInRBDLOrder(const std::string &urdf_file)
Eigen::VectorXd tau
Definition RobotModelRBDL.hpp:14
virtual const types::SpatialAcceleration & spatialAccelerationBias(const std::string &frame_id)
Returns the spatial acceleration bias, i.e. the term Jdot*qdot.
Definition RobotModelRBDL.cpp:350
static RobotModelRegistry< RobotModelRBDL > reg
Definition RobotModelRBDL.hpp:11
virtual const Eigen::MatrixXd & comJacobian()
Returns the CoM Jacobian for the entire robot, which maps the robot joint velocities to linear spatia...
Definition RobotModelRBDL.cpp:317
std::shared_ptr< RigidBodyDynamics::Model > rbdl_model
Definition RobotModelRBDL.hpp:13
void updateFK(Eigen::VectorXd &_q, Eigen::VectorXd &_qd, Eigen::VectorXd &_qdd)
Definition RobotModelRBDL.cpp:175
virtual const types::Pose & pose(const std::string &frame_id)
Definition RobotModelRBDL.cpp:187
virtual const Eigen::MatrixXd & spaceJacobian(const std::string &frame_id)
Returns the Space Jacobian for the kinematic chain between root and the tip frame as full body Jacobi...
Definition RobotModelRBDL.cpp:259
RigidBodyDynamics::Math::MatrixNd H_q
Definition RobotModelRBDL.hpp:15
RigidBodyDynamics::Math::MatrixNd J
Definition RobotModelRBDL.hpp:15
RobotModel()
Definition RobotModel.cpp:7
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