YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
IJointCoupling.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006-2023 Istituto Italiano di Tecnologia (IIT)
3 * SPDX-License-Identifier: BSD-3-Clause
4 */
5
6#ifndef YARP_DEV_IJOINTCOUPLING_H
7#define YARP_DEV_IJOINTCOUPLING_H
8
9#include <yarp/dev/api.h>
10#include <yarp/os/Vocab.h>
11#include <yarp/sig/Vector.h>
12
13namespace yarp::dev {
14class IJointCoupling;
15}
59class YARP_dev_API yarp::dev::IJointCoupling
60{
61public:
65 virtual ~IJointCoupling() {}
66
75 virtual bool convertFromPhysicalJointsToActuatedAxesPos(const yarp::sig::Vector& physJointsPos, yarp::sig::Vector& actAxesPos) = 0;
76
90 virtual bool convertFromPhysicalJointsToActuatedAxesVel(const yarp::sig::Vector& physJointsPos, const yarp::sig::Vector& physJointsVel, yarp::sig::Vector& actAxesVel) = 0;
91
106 virtual bool convertFromPhysicalJointsToActuatedAxesAcc(const yarp::sig::Vector& physJointsPos, const yarp::sig::Vector& physJointsVel, const yarp::sig::Vector& physJointsAcc, yarp::sig::Vector& actAxesAcc) = 0;
107
116 virtual bool convertFromPhysicalJointsToActuatedAxesTrq(const yarp::sig::Vector& physJointsPos, const yarp::sig::Vector& physJointsTrq, yarp::sig::Vector& actAxesTrq) = 0;
117
125 virtual bool convertFromActuatedAxesToPhysicalJointsPos(const yarp::sig::Vector& actAxesPos, yarp::sig::Vector& physJointsPos) = 0;
126
140 virtual bool convertFromActuatedAxesToPhysicalJointsVel(const yarp::sig::Vector& actAxesPos, const yarp::sig::Vector& actAxesVel, yarp::sig::Vector& physJointsVel) = 0;
141
157 virtual bool convertFromActuatedAxesToPhysicalJointsAcc(const yarp::sig::Vector& actAxesPos, const yarp::sig::Vector& actAxesVel, const yarp::sig::Vector& actAxesAcc, yarp::sig::Vector& physJointsAcc) = 0;
158
167 virtual bool convertFromActuatedAxesToPhysicalJointsTrq(const yarp::sig::Vector& actAxesPos, const yarp::sig::Vector& actAxesTrq, yarp::sig::Vector& physJointsTrq) = 0;
168
169 // In some case, for a given coupling several "physical joints" ad "actuated axis"
170 // may be related in a obvious way, i.e. the position and torque of given physical
171 // joint could be equal to the position and torque of given actuated axis.
172 // In that case "physical joints" ad "actuated axis" are typically identified by the
173 // same name. The getCoupled***() methods return the indices of the "actuated axis"
174 // and "physical joints" that are coupled in a non-obvious way
175
182 virtual bool getNrOfPhysicalJoints(size_t& nrOfPhysicalJoints) = 0;
183
190 virtual bool getNrOfActuatedAxes(size_t& nrOfActuatedAxes) = 0;
191
198 virtual bool getCoupledPhysicalJoints(yarp::sig::VectorOf<size_t>& coupPhysJointsIndexes)=0;
199
207 virtual bool getCoupledActuatedAxes(yarp::sig::VectorOf<size_t>& coupActAxesIndexes)=0;
208
217 virtual bool getActuatedAxisName(size_t actuatedAxisIndex, std::string& actuatedAxisName)=0;
218
227 virtual bool getPhysicalJointName(size_t physicalJointIndex, std::string& physicalJointName)=0;
228
238 virtual bool getPhysicalJointLimits(size_t physicalJointIndex, double& min, double& max)=0;
239};
240
241#endif // YARP_DEV_IJOINTCOUPLING_H
contains the definition of a Vector type
For streams capable of holding different kinds of content, check what they actually have.
The main, catch-all namespace for YARP.
Definition dirs.h:16
#define YARP_dev_API
Definition api.h:18