18#ifndef __tsid_python_task_joint_bounds_hpp__ 19#define __tsid_python_task_joint_bounds_hpp__ 30namespace bp = boost::python;
32template <
typename Task>
34 :
public boost::python::def_visitor<TaskJointBoundsPythonVisitor<Task> > {
35 template <
class PyClass>
38 cl.def(bp::init<std::string, robots::RobotWrapper&, double>(
39 (bp::arg(
"name"), bp::arg(
"robot"), bp::arg(
"Time step")),
40 "Default Constructor"))
41 .add_property(
"dim", &Task::dim,
"return dimension size")
44 .def(
"setVelocityBounds",
46 bp::args(
"lower",
"upper"))
47 .def(
"setAccelerationBounds",
49 bp::args(
"lower",
"upper"))
51 bp::args(
"t",
"q",
"v",
"data"))
54 "getAccelerationLowerBounds",
57 bp::return_value_policy<bp::copy_const_reference>()))
59 "getAccelerationUpperBounds",
62 bp::return_value_policy<bp::copy_const_reference>()))
63 .add_property(
"getVelocityLowerBounds",
66 bp::return_value_policy<bp::copy_const_reference>()))
67 .add_property(
"getVelocityUpperBounds",
70 bp::return_value_policy<bp::copy_const_reference>()))
73 static std::string
name(Task& self) {
74 std::string
name = self.name();
78 const Eigen::VectorXd& q,
79 const Eigen::VectorXd& v,
80 pinocchio::Data& data) {
81 self.compute(t, q, v, data);
83 self.getConstraint().lowerBound(),
84 self.getConstraint().upperBound());
89 self.getConstraint().lowerBound(),
90 self.getConstraint().upperBound());
94 return self.getAccelerationLowerBounds();
97 return self.getAccelerationUpperBounds();
100 return self.getVelocityLowerBounds();
103 return self.getVelocityUpperBounds();
106 return self.setTimeStep(dt);
109 const Eigen::VectorXd upper) {
110 return self.setVelocityBounds(lower, upper);
113 const Eigen::VectorXd upper) {
114 return self.setAccelerationBounds(lower, upper);
116 static void expose(
const std::string& class_name) {
117 std::string doc =
"Task info.";
118 bp::class_<Task>(class_name.c_str(), doc.c_str(), bp::no_init)
Definition constraint-bound.hpp:13
Definition constraint-bound.hpp:26
Definition constraint-bound.hpp:25
Definition task-joint-bounds.hpp:34
static math::ConstraintBound getConstraint(const Task &self)
Definition task-joint-bounds.hpp:87
static const Eigen::VectorXd & getAccelerationUpperBounds(const Task &self)
Definition task-joint-bounds.hpp:96
static void setAccelerationBounds(Task &self, const Eigen::VectorXd lower, const Eigen::VectorXd upper)
Definition task-joint-bounds.hpp:112
static void expose(const std::string &class_name)
Definition task-joint-bounds.hpp:116
static void setVelocityBounds(Task &self, const Eigen::VectorXd lower, const Eigen::VectorXd upper)
Definition task-joint-bounds.hpp:108
static const Eigen::VectorXd & getAccelerationLowerBounds(const Task &self)
Definition task-joint-bounds.hpp:93
void visit(PyClass &cl) const
Definition task-joint-bounds.hpp:37
static const Eigen::VectorXd & getVelocityLowerBounds(const Task &self)
Definition task-joint-bounds.hpp:99
static const Eigen::VectorXd & getVelocityUpperBounds(const Task &self)
Definition task-joint-bounds.hpp:102
static std::string name(Task &self)
Definition task-joint-bounds.hpp:73
static void setTimeStep(Task &self, const double dt)
Definition task-joint-bounds.hpp:105
static math::ConstraintBound compute(Task &self, const double t, const Eigen::VectorXd &q, const Eigen::VectorXd &v, pinocchio::Data &data)
Definition task-joint-bounds.hpp:77