wbc
RobotModelPinocchio.hpp
Go to the documentation of this file.
1#ifndef ROBOT_MODEL_PINOCCHIO_HPP
2#define ROBOT_MODEL_PINOCCHIO_HPP
3
5#include <pinocchio/multibody/fwd.hpp>
6#include <pinocchio/parsers/urdf.hpp>
7
8namespace wbc {
9
11protected:
13
14 pinocchio::Model model;
15 typedef std::shared_ptr<pinocchio::Data> DataPtr;
17
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:
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
71 virtual const Eigen::MatrixXd &spaceJacobian(const std::string &frame_id);
72
79 virtual const Eigen::MatrixXd &bodyJacobian(const std::string &frame_id);
80
86 virtual const Eigen::MatrixXd &comJacobian();
87
93 virtual const types::SpatialAcceleration &spatialAccelerationBias(const std::string &frame_id);
94
96 virtual const Eigen::MatrixXd &jointSpaceInertiaMatrix();
97
99 virtual const Eigen::VectorXd &biasForces();
100
102 virtual const types::RigidBodyState& centerOfMass();
103
107 virtual const Eigen::VectorXd& inverseDynamics(const Eigen::VectorXd& qdd_ref = Eigen::VectorXd(),
108 const std::vector<types::Wrench>& f_ext = std::vector<types::Wrench>());
109
111 pinocchio::Model *getInternalModel();
112};
113
114}
115
116#endif
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 RobotModelPinocchio.cpp:421
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 RobotModelPinocchio.cpp:276
static RobotModelRegistry< RobotModelPinocchio > reg
Definition RobotModelPinocchio.hpp:12
virtual const Eigen::VectorXd & biasForces()
Compute and return the bias force vector, which is nj x 1, where nj is the number of joints of the sy...
Definition RobotModelPinocchio.cpp:383
virtual const types::RigidBodyState & centerOfMass()
Compute and return center of mass expressed in base frame.
Definition RobotModelPinocchio.cpp:399
pinocchio::Model model
Definition RobotModelPinocchio.hpp:14
virtual const Eigen::MatrixXd & comJacobian()
Returns the CoM Jacobian for the entire robot, which maps the robot joint velocities to linear spatia...
Definition RobotModelPinocchio.cpp:320
RobotModelPinocchio()
Definition RobotModelPinocchio.cpp:16
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 RobotModelPinocchio.cpp:117
DataPtr data
Definition RobotModelPinocchio.hpp:16
virtual const Eigen::MatrixXd & jointSpaceInertiaMatrix()
Compute and return the joint space mass-inertia matrix, which is nj x nj, where nj is the number of j...
Definition RobotModelPinocchio.cpp:364
virtual const types::SpatialAcceleration & acceleration(const std::string &frame_id)
Definition RobotModelPinocchio.cpp:248
virtual const types::Twist & twist(const std::string &frame_id)
Definition RobotModelPinocchio.cpp:220
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 RobotModelPinocchio.cpp:298
std::shared_ptr< pinocchio::Data > DataPtr
Definition RobotModelPinocchio.hpp:15
virtual const types::SpatialAcceleration & spatialAccelerationBias(const std::string &frame_id)
Returns the spatial acceleration bias, i.e. the term Jdot*qdot.
Definition RobotModelPinocchio.cpp:338
virtual const types::Pose & pose(const std::string &frame_id)
Definition RobotModelPinocchio.cpp:195
~RobotModelPinocchio()
Definition RobotModelPinocchio.cpp:20
void clear()
Definition RobotModelPinocchio.cpp:23
void updateFK(Eigen::VectorXd &_q, Eigen::VectorXd &_qd, Eigen::VectorXd &_qdd)
Definition RobotModelPinocchio.cpp:183
virtual bool configure(const RobotModelConfig &cfg)
This will read the robot model from the given URDF file and initialize all members accordingly.
Definition RobotModelPinocchio.cpp:29
pinocchio::Model * getInternalModel()
Definition RobotModelPinocchio.cpp:439
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