Track an exact cubic spline, that is a curve passing exactly through waypoints in position, with optional initial and final velocity and acceleration.
More...
|
| ExactCubicTrajectoryTask (const mc_rbdyn::RobotFrame &frame, double duration, double stiffness, double weight, const sva::PTransformd &target, const std::vector< std::pair< double, Eigen::Vector3d >> &posWp={}, const Eigen::Vector3d &init_vel=Eigen::Vector3d::Zero(), const Eigen::Vector3d &init_acc=Eigen::Vector3d::Zero(), const Eigen::Vector3d &end_vel=Eigen::Vector3d::Zero(), const Eigen::Vector3d &end_acc=Eigen::Vector3d::Zero(), const std::vector< std::pair< double, Eigen::Matrix3d >> &oriWp={}) |
| Trajectory following an exact cubic spline with given initial and final acceleration/velocity. The curve will pass exactly through the specified position waypoints (see posWaypoints) and will interpolate between orientation waypoints. Initial and final acceleration/velocity will also be enforced. More...
|
|
| ExactCubicTrajectoryTask (const mc_rbdyn::Robots &robots, unsigned int robotIndex, const std::string &surfaceName, double duration, double stiffness, double weight, const sva::PTransformd &target, const std::vector< std::pair< double, Eigen::Vector3d >> &posWp={}, const Eigen::Vector3d &init_vel=Eigen::Vector3d::Zero(), const Eigen::Vector3d &init_acc=Eigen::Vector3d::Zero(), const Eigen::Vector3d &end_vel=Eigen::Vector3d::Zero(), const Eigen::Vector3d &end_acc=Eigen::Vector3d::Zero(), const std::vector< std::pair< double, Eigen::Matrix3d >> &oriWp={}) |
| Trajectory following an exact cubic spline with given initial and final acceleration/velocity. The curve will pass exactly through the specified position waypoints (see posWaypoints) and will interpolate between orientation waypoints. Initial and final acceleration/velocity will also be enforced. More...
|
|
const mc_trajectory::ExactCubic & | spline () const |
| const accessor to the underlying spline (used by SplineTrajectoryTask) More...
|
|
mc_trajectory::ExactCubic & | spline () |
| accessor to the underlying spline (used by SplineTrajectoryTask) More...
|
|
void | addToGUI (mc_rtc::gui::StateBuilder &gui) override |
| Add interactive GUI elements to control the curve waypoints. More...
|
|
void | posWaypoints (const std::vector< std::pair< double, Eigen::Vector3d >> &posWp) |
| Waypoints in position. The curve will pass exactly through these waypoints. More...
|
|
void | constraints (const Eigen::Vector3d &init_vel, const Eigen::Vector3d &init_acc, const Eigen::Vector3d &end_vel, const Eigen::Vector3d &end_acc) |
| Initial and final velocity and acceleration constraints for the curve. More...
|
|
| SplineTrajectoryTask (const mc_rbdyn::RobotFrame &frame, double duration, double stiffness, double weight, const Eigen::Matrix3d &target, const std::vector< std::pair< double, Eigen::Matrix3d >> &oriWp={}) |
| Constructor. More...
|
|
void | load (mc_solver::QPSolver &solver, const mc_rtc::Configuration &config) override |
| Load parameters from a Configuration object. More...
|
|
std::function< bool(const mc_tasks::MetaTask &, std::string &)> | buildCompletionCriteria (double dt, const mc_rtc::Configuration &config) const override |
|
void | oriWaypoints (const std::vector< std::pair< double, Eigen::Matrix3d >> &oriWp) |
| Sets the orientation waypoints. More...
|
|
bool | timeElapsed () const |
| Whether the trajectory has finished. More...
|
|
Eigen::VectorXd | eval () const override |
| Returns the transformError between current robot surface pose and its final target. More...
|
|
virtual Eigen::VectorXd | evalTracking () const |
| Returns the trajectory tracking error: transformError between the current robot surface pose and its next desired pose along the trajectory error. More...
|
|
void | target (const sva::PTransformd &target) |
| Sets the curve target pose. Translation target will be handled by the Derived curve, while orientation target is interpolated here. More...
|
|
const sva::PTransformd | target () const |
| Gets the target pose (position/orientation) More...
|
|
void | displaySamples (unsigned s) |
| Number of points to sample on the spline for the gui display. More...
|
|
unsigned | displaySamples () const |
| Number of samples for displaying the spline. More...
|
|
void | pause (bool paused) |
| Allows to pause the task. More...
|
|
bool | pause () const noexcept |
|
double | currentTime () const noexcept |
|
double | duration () const noexcept |
| Returns the trajectory's duration. More...
|
|
void | dimWeight (const Eigen::VectorXd &dimW) override |
| Sets the dimensional weights (controls the importance of orientation/translation). More...
|
|
Eigen::VectorXd | dimWeight () const override |
| Gets the dimensional weights (orientation/translation) More...
|
|
void | dimWeight (const Eigen::VectorXd &dimW) override |
| Sets the dimensional weights (controls the importance of orientation/translation). More...
|
|
Eigen::VectorXd | dimWeight () const override |
| Sets the dimensional weights (controls the importance of orientation/translation). More...
|
|
void | stiffness (double stiffness) |
| Set the task stiffness/damping. More...
|
|
void | stiffness (const Eigen::VectorXd &stiffness) |
| Set dimensional stiffness. More...
|
|
void | stiffness (double stiffness) |
| Set the task stiffness/damping. More...
|
|
void | stiffness (const Eigen::VectorXd &stiffness) |
| Set dimensional stiffness. More...
|
|
double | stiffness () const |
| Get the current task stiffness. More...
|
|
void | damping (double damping) |
| Set the task damping, leaving its stiffness unchanged. More...
|
|
void | damping (const Eigen::VectorXd &damping) |
| Set dimensional damping. More...
|
|
void | damping (double damping) |
| Set the task damping, leaving its stiffness unchanged. More...
|
|
void | damping (const Eigen::VectorXd &damping) |
| Set dimensional damping. More...
|
|
double | damping () const |
| Get the current task damping. More...
|
|
void | setGains (double stiffness, double damping) |
| Set both stiffness and damping. More...
|
|
void | setGains (const Eigen::VectorXd &stiffness, const Eigen::VectorXd &damping) |
| Set dimensional stiffness and damping. More...
|
|
void | dimWeightInterpolation (const std::vector< std::pair< double, Eigen::Vector6d >> &dimWeights) |
|
const std::vector< std::pair< double, Eigen::Vector6d > > & | dimWeightInterpolation () const noexcept |
| Sets the dimensional weights (controls the importance of orientation/translation). More...
|
|
void | stiffnessInterpolation (const std::vector< std::pair< double, Eigen::Vector6d >> &stiffnessGains) |
|
const std::vector< std::pair< double, Eigen::Vector6d > > & | stiffnessInterpolation () const noexcept |
| Sets the dimensional weights (controls the importance of orientation/translation). More...
|
|
void | dampingInterpolation (const std::vector< std::pair< double, Eigen::Vector6d >> &dampingGains) |
|
const std::vector< std::pair< double, Eigen::Vector6d > > & | dampingInterpolation () const noexcept |
| Sets the dimensional weights (controls the importance of orientation/translation). More...
|
|
| TrajectoryTaskGeneric (const mc_rbdyn::Robots &robots, unsigned int robotIndex, double stiffness, double weight) |
| Constructor (auto damping) More...
|
|
| TrajectoryTaskGeneric (const mc_rbdyn::RobotFrame &frame, double stiffness, double weight) |
| Constructor (auto damping) More...
|
|
virtual | ~TrajectoryTaskGeneric ()=default |
|
void | reset () override |
| Reset task target velocity and acceleration to zero. More...
|
|
void | refVel (const Eigen::VectorXd &vel) |
| Set the trajectory reference velocity. More...
|
|
const Eigen::VectorXd & | refVel () const |
| Get the trajectory reference velocity. More...
|
|
void | refAccel (const Eigen::VectorXd &accel) |
| Set the trajectory reference acceleration. More...
|
|
const Eigen::VectorXd & | refAccel () const |
| Get the trajectory reference acceleration. More...
|
|
void | stiffness (double stiffness) |
| Set the task stiffness/damping. More...
|
|
void | stiffness (const Eigen::VectorXd &stiffness) |
| Set dimensional stiffness. More...
|
|
void | damping (double damping) |
| Set the task damping, leaving its stiffness unchanged. More...
|
|
void | damping (const Eigen::VectorXd &damping) |
| Set dimensional damping. More...
|
|
void | setGains (double stiffness, double damping) |
| Set both stiffness and damping. More...
|
|
void | setGains (const Eigen::VectorXd &stiffness, const Eigen::VectorXd &damping) |
| Set dimensional stiffness and damping. More...
|
|
double | stiffness () const |
| Get the current task stiffness. More...
|
|
double | damping () const |
| Get the current task damping. More...
|
|
const Eigen::VectorXd & | dimStiffness () const |
| Get the current task dimensional stiffness. More...
|
|
const Eigen::VectorXd & | dimDamping () const |
| Get the current task dimensional damping. More...
|
|
void | weight (double w) |
| Set the task weight. More...
|
|
double | weight () const |
| Returns the task weight. More...
|
|
Eigen::VectorXd | dimWeight () const override |
| Get the current task's dim weight vector. More...
|
|
void | selectActiveJoints (const std::vector< std::string > &activeJointsName, const std::map< std::string, std::vector< std::array< int, 2 >>> &activeDofs={}, bool checkJoints=true) |
| Create an active joints selector. More...
|
|
void | selectActiveJoints (mc_solver::QPSolver &solver, const std::vector< std::string > &activeJointsName, const std::map< std::string, std::vector< std::array< int, 2 >>> &activeDofs={}) override |
| Create an active joints selector. More...
|
|
void | selectUnactiveJoints (const std::vector< std::string > &unactiveJointsName, const std::map< std::string, std::vector< std::array< int, 2 >>> &unactiveDofs={}, bool checkJoints=true) |
| Create an unactive joints selector. More...
|
|
void | selectUnactiveJoints (mc_solver::QPSolver &solver, const std::vector< std::string > &unactiveJointsName, const std::map< std::string, std::vector< std::array< int, 2 >>> &unactiveDofs={}) override |
| Create an unactive joints selector. More...
|
|
virtual void | resetJointsSelector () |
|
void | resetJointsSelector (mc_solver::QPSolver &solver) override |
| Reset active joints selection. More...
|
|
Eigen::VectorXd | eval () const override |
| Returns the task error. More...
|
|
Eigen::VectorXd | speed () const override |
| Returns the task velocity. More...
|
|
const Eigen::VectorXd & | normalAcc () const |
|
| MetaTask () |
|
virtual | ~MetaTask () |
|
const std::string & | type () const |
|
virtual void | name (const std::string &name) |
|
const std::string & | name () const |
|
size_t | iterInSolver () const noexcept |
| Get the number of iterations since the task was added to the solver. More...
|
|
void | resetIterInSolver () noexcept |
| Set the number of iterations since the task was added to the solver to zero. More...
|
|
void | incrementIterInSolver () noexcept |
| Increment the number of iterations since the task was added to the solver. More...
|
|
Backend | backend () const noexcept |
|
Track an exact cubic spline, that is a curve passing exactly through waypoints in position, with optional initial and final velocity and acceleration.
SplineTrajectoryTask takes care of much of the logic (task target updates, orientation waypoint handling, etc.), and brings in all the functionalities from TrajectoryTaskGeneric. This ExactCubicTrajectoryTask only handles specific aspect of the ExactCubic curve.