TPIK  1.0
Task Priority Inverse Kinematics
Loading...
Searching...
No Matches
iCAT.h
Go to the documentation of this file.
1#ifndef __iCAT_H__
2#define __iCAT_H__
3
4#include "TPIK.h"
5#include <eigen3/Eigen/Dense>
6#include <iostream>
7
8namespace tpik {
9/*
10* @brief iCAT Class derived from the tpik::TPIK abstract class.
11* @details Implementation of the iCAT (Inequality Constraints Activation and Task) algorithm. It implements the pure virtual method ComputeYStep of
12* the tpik::TPIK class to compute the inverse kinematic of a single priority level.
13*/
14class iCAT : public TPIK {
15public:
16 /*
17 * @brief Class constructor.
18 * @param[in] DoF: Degrees of Freedom.
19 */
20 iCAT(int DoF);
21 /*
22 * @brief Class default de-constructor.
23 */
24 ~iCAT() override;
25 /*
26 * @brief Implementation of the pure virtual method that computes the inverse kinematic control for a single priority level.
27 * @param[in] J: Jacobian Matrix;
28 * @param[in] A: Activation Function (Ai*Ae);
29 * @param[in] x_dot: Reference;
30 * @param[in] regularizationData rml::RegularizationData struct.
31 */
32 void ComputeVelocities(const Eigen::MatrixXd& J, const Eigen::MatrixXd& A, const Eigen::VectorXd& x_dot, rml::RegularizationData& regularizationData) override;
33
34protected:
35 /*
36 * @brief Method saturating the y taking into account the saturation performed for the higher priority levels.
37 */
38 void Saturate();
39};
40}
41#endif
Definition TPIK.h:13
Definition iCAT.h:14
iCAT(int DoF)
void Saturate()
~iCAT() override
void ComputeVelocities(const Eigen::MatrixXd &J, const Eigen::MatrixXd &A, const Eigen::VectorXd &x_dot, rml::RegularizationData &regularizationData) override
Definition Action.h:9