sot-core  4.11.8
Hierarchical task solver plug-in for dynamic-graph.
admittance-control-op-point.hh
Go to the documentation of this file.
1 /*
2  * Copyright 2019
3  *
4  * LAAS-CNRS
5  *
6  * NoĆ«lie Ramuzat
7  * This file is part of sot-core.
8  * See license file.
9  */
10 
11 #ifndef __sot_core_admittance_control_op_point_H__
12 #define __sot_core_admittance_control_op_point_H__
13 
14 /* --------------------------------------------------------------------- */
15 /* --- API ------------------------------------------------------------- */
16 /* --------------------------------------------------------------------- */
17 
18 #if defined(WIN32)
19 #if defined(admittance_control_op_point_EXPORTS)
20 #define ADMITTANCECONTROLOPPOINT_EXPORT __declspec(dllexport)
21 #else
22 #define ADMITTANCECONTROLOPPOINT_EXPORT __declspec(dllimport)
23 #endif
24 #else
25 #define ADMITTANCECONTROLOPPOINT_EXPORT
26 #endif
27 
28 /* --------------------------------------------------------------------- */
29 /* --- INCLUDE --------------------------------------------------------- */
30 /* --------------------------------------------------------------------- */
31 
32 #include <dynamic-graph/signal-helper.h>
33 
35 
36 #include "pinocchio/spatial/force.hpp"
37 #include "pinocchio/spatial/motion.hpp"
38 #include "pinocchio/spatial/se3.hpp"
39 
40 namespace dynamicgraph {
41 namespace sot {
42 namespace core {
43 
44 /* --------------------------------------------------------------------- */
45 /* --- CLASS ----------------------------------------------------------- */
46 /* --------------------------------------------------------------------- */
47 
60  : public ::dynamicgraph::Entity {
61  DYNAMIC_GRAPH_ENTITY_DECL();
62 
63  public:
64  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
65 
66  /* --- CONSTRUCTOR ---- */
67  AdmittanceControlOpPoint(const std::string &name);
73  void init(const double &dt);
74 
75  /* --- SIGNALS --- */
77  DECLARE_SIGNAL_IN(Kp, dynamicgraph::Vector);
79  DECLARE_SIGNAL_IN(Kd, dynamicgraph::Vector);
81  DECLARE_SIGNAL_IN(dqSaturation, dynamicgraph::Vector);
83  DECLARE_SIGNAL_IN(force, dynamicgraph::Vector);
85  DECLARE_SIGNAL_IN(w_forceDes, dynamicgraph::Vector);
91 
93  DECLARE_SIGNAL_INNER(w_force, dynamicgraph::Vector);
95  DECLARE_SIGNAL_INNER(w_dq, dynamicgraph::Vector);
96 
98  DECLARE_SIGNAL_OUT(dq, dynamicgraph::Vector);
99 
100  /* --- COMMANDS --- */
104  void resetDq();
105 
106  /* --- ENTITY INHERITANCE --- */
107  virtual void display(std::ostream &os) const;
108 
109  protected:
111  int m_n;
115  dynamicgraph::Vector m_w_dq;
117  double m_dt;
118  // Weight of the end-effector
119  double m_mass;
120 
121 }; // class AdmittanceControlOpPoint
122 
123 } // namespace core
124 } // namespace sot
125 } // namespace dynamicgraph
126 
127 #endif // #ifndef __sot_core_admittance_control_op_point_H__
#define ADMITTANCECONTROLOPPOINT_EXPORT
Definition: admittance-control-op-point.hh:25
Admittance controller for an operational point wrt to a force sensor. It can be a point of the model ...
Definition: admittance-control-op-point.hh:60
int m_n
Dimension of the force signals and of the output.
Definition: admittance-control-op-point.hh:111
DECLARE_SIGNAL_IN(w_forceDes, dynamicgraph::Vector)
6d desired force of the end-effector in the world frame
DECLARE_SIGNAL_IN(sensorPose, dynamicgraph::sot::MatrixHomogeneous)
Current position (matrixHomogeneous) of the given force sensor.
DECLARE_SIGNAL_IN(Kd, dynamicgraph::Vector)
Derivative gain (6d) for the error on the force.
virtual void display(std::ostream &os) const
DECLARE_SIGNAL_IN(dqSaturation, dynamicgraph::Vector)
Value of the saturation to apply on the velocity output.
DECLARE_SIGNAL_IN(opPose, dynamicgraph::sot::MatrixHomogeneous)
Current position (matrixHomogeneous) of the given operational point.
double m_dt
Time step of the control.
Definition: admittance-control-op-point.hh:117
DECLARE_SIGNAL_IN(force, dynamicgraph::Vector)
6d force given by the sensor in its local frame
DECLARE_SIGNAL_INNER(w_dq, dynamicgraph::Vector)
Internal intergration computed in the world frame.
bool m_initSucceeded
True if the entity has been successfully initialized.
Definition: admittance-control-op-point.hh:113
DECLARE_SIGNAL_OUT(dq, dynamicgraph::Vector)
Velocity reference for the end-effector in the local frame.
double m_mass
Definition: admittance-control-op-point.hh:119
void init(const double &dt)
Initialize the entity.
DECLARE_SIGNAL_INNER(w_force, dynamicgraph::Vector)
6d force given by the sensor in the world frame
EIGEN_MAKE_ALIGNED_OPERATOR_NEW AdmittanceControlOpPoint(const std::string &name)
DECLARE_SIGNAL_IN(Kp, dynamicgraph::Vector)
Gain (6d) for the integration of the error on the force.
dynamicgraph::Vector m_w_dq
Internal state.
Definition: admittance-control-op-point.hh:115
Eigen::Transform< double, 3, Eigen::Affine > SOT_CORE_EXPORT MatrixHomogeneous
Definition: matrix-geometry.hh:75
Definition: abstract-sot-external-interface.hh:17