Go to the documentation of this file.
18 #ifndef __tsid_python_robot_wrapper_hpp__
19 #define __tsid_python_robot_wrapper_hpp__
29 namespace bp = boost::python;
31 template<
typename Robot>
33 :
public boost::python::def_visitor< RobotPythonVisitor<Robot> >
36 typedef Eigen::Matrix<double,3,Eigen::Dynamic>
Matrix3x;
38 template<
class PyClass >
43 .def(bp::init<std::string, std_vec, bool>((bp::arg(
"filename"), bp::arg(
"package_dir"), bp::arg(
"verbose")),
"Default constructor without RootJoint."))
44 .def(bp::init<std::string, std_vec, pinocchio::JointModelVariant &, bool>((bp::arg(
"filename"), bp::arg(
"package_dir"), bp::arg(
"roottype"), bp::arg(
"verbose")),
"Default constructor with RootJoint."))
45 .def(bp::init<pinocchio::Model, bool>((bp::arg(
"Pinocchio Model"), bp::arg(
"verbose")),
"Default constructor from pinocchio model without RootJoint."))
46 .def(bp::init<pinocchio::Model, robots::RobotWrapper::RootJointType, bool>((bp::arg(
"Pinocchio Model"), bp::arg(
"rootJoint"), bp::arg(
"verbose")),
"Default constructor from pinocchio model with RootJoint."))
48 .add_property(
"nq", &Robot::nq)
49 .add_property(
"nv", &Robot::nv)
50 .add_property(
"na", &Robot::na)
51 .add_property(
"nq_actuated", &Robot::nq_actuated)
52 .add_property(
"is_fixed_base", &Robot::is_fixed_base)
85 static boost::shared_ptr<Robot>
makeClass(
const std::string &filename,
86 const std::vector<std::string>
88 bp::object & bpObject,
91 pinocchio::JointModelFreeFlyer root_joint =
92 bp::extract<pinocchio::JointModelFreeFlyer>(bpObject)();
100 static pinocchio::Model
model (
const Robot &
self){
108 return self.rotor_inertias();
111 return self.gear_ratios();
121 return self.com(
data);
124 return self.com_vel(
data);
127 return self.com_acc(
data);
130 return self.Jcom(
data);
133 self.computeAllTerms(
data, q, v);
136 return self.mass(
data);
139 return self.nonLinearEffects(
data);
142 return self.position(
data, index);
145 return self.velocity(
data, index);
148 return self.acceleration(
data, index);
151 return self.framePosition(
data, index);
154 return self.frameVelocity(
data, index);
157 return self.frameAcceleration(
data, index);
160 return self.frameClassicAcceleration(
data, index);
163 return self.frameVelocityWorldOriented(
data, index);
166 return self.frameAccelerationWorldOriented(
data, index);
169 return self.frameClassicAccelerationWorldOriented(
data, index);
172 return self.angularMomentumTimeVariation(
data);
174 static void setGravity(Robot &
self,
const pinocchio::Motion & gravity){
175 return self.setGravity(gravity);
177 static void expose(
const std::string & class_name)
179 std::string doc =
"Robot Wrapper info.";
180 bp::class_<Robot>(class_name.c_str(),
185 bp::enum_<robots::RobotWrapper::RootJointType>(
"RootJointType")
196 #endif // ifndef __tsid_python_robot_wrapper_hpp__
static boost::shared_ptr< Robot > makeClass(const std::string &filename, const std::vector< std::string > &stdvec, bp::object &bpObject, bool verbose)
Definition: robot-wrapper.hpp:85
Definition: robot-wrapper.hpp:32
static Eigen::VectorXd nonLinearEffects(const Robot &self, const pinocchio::Data &data)
Definition: robot-wrapper.hpp:138
static Eigen::Vector3d com_acc(const Robot &self, const pinocchio::Data &data)
Definition: robot-wrapper.hpp:126
static Eigen::VectorXd gear_ratios(const Robot &self)
Definition: robot-wrapper.hpp:110
static pinocchio::Motion frameVelocity(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::FrameIndex &index)
Definition: robot-wrapper.hpp:153
static bool set_gear_ratios(Robot &self, Eigen::VectorXd &gear_ratios)
Definition: robot-wrapper.hpp:116
static Eigen::Vector3d com_vel(const Robot &self, const pinocchio::Data &data)
Definition: robot-wrapper.hpp:123
static pinocchio::Motion frameVelocityWorldOriented(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::FrameIndex &index)
Definition: robot-wrapper.hpp:162
@ FLOATING_BASE_SYSTEM
Definition: robot-wrapper.hpp:63
static pinocchio::Data data(const Robot &self)
Definition: robot-wrapper.hpp:103
std::vector< std::string > std_vec
Definition: robot-wrapper.hpp:35
static pinocchio::Motion frameAccelerationWorldOriented(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::FrameIndex &index)
Definition: robot-wrapper.hpp:165
static pinocchio::Motion acceleration(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::JointIndex &index)
Definition: robot-wrapper.hpp:147
pinocchio::SE3 SE3
Definition: trajectory-base.hpp:34
@ FIXED_BASE_SYSTEM
Definition: robot-wrapper.hpp:62
static pinocchio::Model model(const Robot &self)
Definition: robot-wrapper.hpp:100
static void expose(const std::string &class_name)
Definition: robot-wrapper.hpp:177
static void setGravity(Robot &self, const pinocchio::Motion &gravity)
Definition: robot-wrapper.hpp:174
static pinocchio::Motion velocity(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::JointIndex &index)
Definition: robot-wrapper.hpp:144
static Eigen::VectorXd rotor_inertias(const Robot &self)
Definition: robot-wrapper.hpp:107
static Eigen::Vector3d com(const Robot &self, const pinocchio::Data &data)
Definition: robot-wrapper.hpp:120
static pinocchio::SE3 framePosition(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::FrameIndex &index)
Definition: robot-wrapper.hpp:150
static pinocchio::SE3 position(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::JointIndex &index)
Definition: robot-wrapper.hpp:141
static Eigen::Vector3d angularMomentumTimeVariation(const Robot &self, const pinocchio::Data &data)
Definition: robot-wrapper.hpp:171
Definition: constraint-bound.hpp:26
static Matrix3x Jcom(const Robot &self, const pinocchio::Data &data)
Definition: robot-wrapper.hpp:129
Wrapper for a robot based on pinocchio.
Definition: robot-wrapper.hpp:40
static pinocchio::Motion frameClassicAccelerationWorldOriented(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::FrameIndex &index)
Definition: robot-wrapper.hpp:168
void visit(PyClass &cl) const
Definition: robot-wrapper.hpp:40
static void computeAllTerms(const Robot &self, pinocchio::Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v)
Definition: robot-wrapper.hpp:132
Eigen::Matrix< double, 3, Eigen::Dynamic > Matrix3x
Definition: robot-wrapper.hpp:36
static Eigen::MatrixXd mass(Robot &self, pinocchio::Data &data)
Definition: robot-wrapper.hpp:135
static pinocchio::Motion frameClassicAcceleration(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::FrameIndex &index)
Definition: robot-wrapper.hpp:159
static bool set_rotor_inertias(Robot &self, Eigen::VectorXd &rotor_inertias)
Definition: robot-wrapper.hpp:113
static pinocchio::Motion frameAcceleration(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::FrameIndex &index)
Definition: robot-wrapper.hpp:156