18 #ifndef __tsid_python_task_joint_hpp__ 19 #define __tsid_python_task_joint_hpp__ 32 template <
typename TaskJo
int>
34 :
public boost::python::def_visitor<
35 TaskJointPosturePythonVisitor<TaskJoint> > {
36 template <
class PyClass>
39 cl.def(bp::init<std::string, robots::RobotWrapper&>(
40 (bp::arg(
"name"), bp::arg(
"robot")),
"Default Constructor"))
41 .add_property(
"dim", &TaskJoint::dim,
"return dimension size")
45 "getDesiredAcceleration",
48 bp::return_value_policy<bp::copy_const_reference>()),
53 bp::return_value_policy<bp::copy_const_reference>()),
59 .add_property(
"position_error",
62 bp::return_value_policy<bp::copy_const_reference>()))
63 .add_property(
"velocity_error",
66 bp::return_value_policy<bp::copy_const_reference>()))
67 .add_property(
"position",
70 bp::return_value_policy<bp::copy_const_reference>()))
71 .add_property(
"velocity",
74 bp::return_value_policy<bp::copy_const_reference>()))
75 .add_property(
"position_ref",
78 bp::return_value_policy<bp::copy_const_reference>()))
79 .add_property(
"velocity_ref",
82 bp::return_value_policy<bp::copy_const_reference>()))
86 bp::return_value_policy<bp::copy_const_reference>()))
90 bp::return_value_policy<bp::copy_const_reference>()))
94 bp::args(
"t",
"q",
"v",
"data"))
98 static std::string
name(TaskJoint&
self) {
99 std::string
name =
self.name();
103 const Eigen::VectorXd&
q,
104 const Eigen::VectorXd&
v,
106 self.compute(t, q, v, data);
120 self.setReference(ref);
123 return self.getDesiredAcceleration();
125 static const Eigen::VectorXd&
getmask(
const TaskJoint&
self) {
126 return self.getMask();
128 static void setmask(TaskJoint&
self,
const Eigen::VectorXd mask) {
129 return self.setMask(mask);
132 const Eigen::VectorXd
dv) {
133 return self.getAcceleration(dv);
136 return self.position_error();
139 return self.velocity_error();
141 static const Eigen::VectorXd&
position(
const TaskJoint&
self) {
142 return self.position();
144 static const Eigen::VectorXd&
velocity(
const TaskJoint&
self) {
145 return self.velocity();
148 return self.position_ref();
151 return self.velocity_ref();
153 static const Eigen::VectorXd&
Kp(TaskJoint&
self) {
return self.Kp(); }
154 static const Eigen::VectorXd&
Kd(TaskJoint&
self) {
return self.Kd(); }
155 static void setKp(TaskJoint&
self, const ::Eigen::VectorXd
Kp) {
158 static void setKd(TaskJoint&
self, const ::Eigen::VectorXd Kv) {
161 static void expose(
const std::string& class_name) {
162 std::string doc =
"TaskJoint info.";
163 bp::class_<TaskJoint>(class_name.c_str(), doc.c_str(), bp::no_init)
172 #endif // ifndef __tsid_python_task_joint_hpp__
static void setKd(TaskJoint &self, const ::Eigen::VectorXd Kv)
static void setReference(TaskJoint &self, const trajectories::TrajectorySample &ref)
static const Eigen::VectorXd & getmask(const TaskJoint &self)
static Eigen::VectorXd getAcceleration(TaskJoint &self, const Eigen::VectorXd dv)
void def(const char *name, Func func)
static const Eigen::VectorXd & position_error(const TaskJoint &self)
void visit(PyClass &cl) const
static const Eigen::VectorXd & velocity_ref(const TaskJoint &self)
static void expose(const std::string &class_name)
static const Eigen::VectorXd & position_ref(const TaskJoint &self)
static void setKp(TaskJoint &self, const ::Eigen::VectorXd Kp)
static const Eigen::VectorXd & velocity(const TaskJoint &self)
static void setmask(TaskJoint &self, const Eigen::VectorXd mask)
static math::ConstraintEquality compute(TaskJoint &self, const double t, const Eigen::VectorXd &q, const Eigen::VectorXd &v, pinocchio::Data &data)
static const Eigen::VectorXd & getDesiredAcceleration(const TaskJoint &self)
static std::string name(TaskJoint &self)
static const Eigen::VectorXd & position(const TaskJoint &self)
static const Eigen::VectorXd & Kp(TaskJoint &self)
static math::ConstraintEquality getConstraint(const TaskJoint &self)
static const Eigen::VectorXd & Kd(TaskJoint &self)
static const Eigen::VectorXd & velocity_error(const TaskJoint &self)