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();
114 return self.rotor_inertias(rotor_inertias);
117 return self.gear_ratios(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 Eigen::VectorXd rotor_inertias(const Robot &self)
Definition: robot-wrapper.hpp:107
static Eigen::Vector3d com_vel(const Robot &self, const pinocchio::Data &data)
Definition: robot-wrapper.hpp:123
static pinocchio::SE3 position(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::JointIndex &index)
Definition: robot-wrapper.hpp:141
void visit(PyClass &cl) const
Definition: robot-wrapper.hpp:40
pinocchio::SE3 SE3
Definition: trajectory-base.hpp:34
static Eigen::VectorXd gear_ratios(const Robot &self)
Definition: robot-wrapper.hpp:110
static pinocchio::Motion velocity(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::JointIndex &index)
Definition: robot-wrapper.hpp:144
static Eigen::Vector3d angularMomentumTimeVariation(const Robot &self, const pinocchio::Data &data)
Definition: robot-wrapper.hpp:171
static bool set_gear_ratios(Robot &self, Eigen::VectorXd &gear_ratios)
Definition: robot-wrapper.hpp:116
Eigen::Matrix< double, 3, Eigen::Dynamic > Matrix3x
Definition: robot-wrapper.hpp:36
static Matrix3x Jcom(const Robot &self, const pinocchio::Data &data)
Definition: robot-wrapper.hpp:129
static void computeAllTerms(const Robot &self, pinocchio::Data &data, const Eigen::VectorXd &q, const Eigen::VectorXd &v)
Definition: robot-wrapper.hpp:132
static pinocchio::Data data(const Robot &self)
Definition: robot-wrapper.hpp:103
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
static Eigen::Vector3d com(const Robot &self, const pinocchio::Data &data)
Definition: robot-wrapper.hpp:120
static Eigen::Vector3d com_acc(const Robot &self, const pinocchio::Data &data)
Definition: robot-wrapper.hpp:126
static pinocchio::Motion frameClassicAcceleration(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::FrameIndex &index)
Definition: robot-wrapper.hpp:159
static pinocchio::Model model(const Robot &self)
Definition: robot-wrapper.hpp:100
Definition: robot-wrapper.hpp:32
static pinocchio::Motion frameClassicAccelerationWorldOriented(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::FrameIndex &index)
Definition: robot-wrapper.hpp:168
Wrapper for a robot based on pinocchio.
Definition: robot-wrapper.hpp:40
static Eigen::VectorXd nonLinearEffects(const Robot &self, const pinocchio::Data &data)
Definition: robot-wrapper.hpp:138
static pinocchio::Motion frameAccelerationWorldOriented(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::FrameIndex &index)
Definition: robot-wrapper.hpp:165
Definition: robot-wrapper.hpp:63
static Eigen::MatrixXd mass(Robot &self, pinocchio::Data &data)
Definition: robot-wrapper.hpp:135
static void setGravity(Robot &self, const pinocchio::Motion &gravity)
Definition: robot-wrapper.hpp:174
Definition: constraint-bound.hpp:26
Definition: robot-wrapper.hpp:62
static pinocchio::Motion frameVelocityWorldOriented(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::FrameIndex &index)
Definition: robot-wrapper.hpp:162
static void expose(const std::string &class_name)
Definition: robot-wrapper.hpp:177
static pinocchio::Motion acceleration(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::JointIndex &index)
Definition: robot-wrapper.hpp:147
static bool set_rotor_inertias(Robot &self, Eigen::VectorXd &rotor_inertias)
Definition: robot-wrapper.hpp:113
std::vector< std::string > std_vec
Definition: robot-wrapper.hpp:35
static pinocchio::Motion frameAcceleration(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::FrameIndex &index)
Definition: robot-wrapper.hpp:156
static pinocchio::SE3 framePosition(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::FrameIndex &index)
Definition: robot-wrapper.hpp:150
static pinocchio::Motion frameVelocity(const Robot &self, const pinocchio::Data &data, const pinocchio::Model::FrameIndex &index)
Definition: robot-wrapper.hpp:153