YARP
Yet Another Robot Platform
IImpedanceControl.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5
6#ifndef YARP_DEV_IIMPEDANCECONTROL_H
7#define YARP_DEV_IIMPEDANCECONTROL_H
8
9#include <yarp/dev/api.h>
10#include <yarp/os/Vocab.h>
11
12namespace yarp::dev {
13class IImpedanceControlRaw;
14class IImpedanceControl;
15}
16
23{
24public:
29
35 virtual bool getAxes(int *ax) = 0;
36
40 virtual bool getImpedanceRaw(int j, double *stiffness, double *damping)=0;
41
45 virtual bool setImpedanceRaw(int j, double stiffness, double damping)=0;
46
50 virtual bool setImpedanceOffsetRaw(int j, double offset)=0;
51
55 virtual bool getImpedanceOffsetRaw(int j, double* offset)=0;
56
60 virtual bool getCurrentImpedanceLimitRaw(int j, double *min_stiff, double *max_stiff, double *min_damp, double *max_damp)=0;
61};
62
63
70{
71public:
75 virtual ~IImpedanceControl() {}
76
82 virtual bool getAxes(int *ax) = 0;
83
87 virtual bool getImpedance(int j, double *stiffness, double *damping)=0;
88
92 virtual bool setImpedance(int j, double stiffness, double damping)=0;
93
97 virtual bool setImpedanceOffset(int j, double offset)=0;
98
102 virtual bool getImpedanceOffset(int j, double* offset)=0;
103
107 virtual bool getCurrentImpedanceLimit(int j, double *min_stiff, double *max_stiff, double *min_damp, double *max_damp)=0;
108
109};
110
111//interface
113
116
117#endif // YARP_DEV_IIMPEDANCECONTROL_H
constexpr yarp::conf::vocab32_t VOCAB_IMPEDANCE
constexpr yarp::conf::vocab32_t VOCAB_VELOCITY
constexpr yarp::conf::vocab32_t VOCAB_POSITION
Interface for control boards implementing impedance control.
virtual bool getAxes(int *ax)=0
Get the number of controlled axes.
virtual bool getImpedanceOffsetRaw(int j, double *offset)=0
Get current force Offset for a specific joint.
virtual bool setImpedanceOffsetRaw(int j, double offset)=0
Set current force Offset for a specific joint.
virtual bool getImpedanceRaw(int j, double *stiffness, double *damping)=0
Get current impedance parameters (stiffness,damping,offset) for a specific joint.
virtual ~IImpedanceControlRaw()
Destructor.
virtual bool getCurrentImpedanceLimitRaw(int j, double *min_stiff, double *max_stiff, double *min_damp, double *max_damp)=0
Get the current impedandance limits for a specific joint.
virtual bool setImpedanceRaw(int j, double stiffness, double damping)=0
Set current impedance parameters (stiffness,damping) for a specific joint.
Interface for control boards implementing impedance control.
virtual bool setImpedance(int j, double stiffness, double damping)=0
Set current impedance gains (stiffness,damping) for a specific joint.
virtual bool getImpedanceOffset(int j, double *offset)=0
Get current force Offset for a specific joint.
virtual bool setImpedanceOffset(int j, double offset)=0
Set current force Offset for a specific joint.
virtual bool getImpedance(int j, double *stiffness, double *damping)=0
Get current impedance gains (stiffness,damping,offset) for a specific joint.
virtual bool getCurrentImpedanceLimit(int j, double *min_stiff, double *max_stiff, double *min_damp, double *max_damp)=0
Get the current impedandance limits for a specific joint.
virtual bool getAxes(int *ax)=0
Get the number of controlled axes.
virtual ~IImpedanceControl()
Destructor.
std::int32_t vocab32_t
Definition: numeric.h:78
For streams capable of holding different kinds of content, check what they actually have.
constexpr yarp::conf::vocab32_t createVocab32(char a, char b=0, char c=0, char d=0)
Create a vocab from chars.
Definition: Vocab.h:27
The main, catch-all namespace for YARP.
Definition: dirs.h:16
#define YARP_dev_API
Definition: api.h:18