YARP
Yet Another Robot Platform
 
Loading...
Searching...
No Matches
ImplementJointCoupling.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_IJOINTCOUPLINGIMPL_H
7#define YARP_DEV_IJOINTCOUPLINGIMPL_H
8
10#include <yarp/dev/api.h>
11
12#include <vector>
13#include <string>
14
15namespace yarp::dev {
16class ImplementJointCoupling;
17}
18
19class YARP_dev_API yarp::dev::ImplementJointCoupling: public IJointCoupling
20{
21public:
22 /* Constructor.
23 */
25
29 virtual ~ImplementJointCoupling() = default;
30
31 void initialise(yarp::sig::VectorOf<size_t> coupled_physical_joints,
32 yarp::sig::VectorOf<size_t> coupled_actuated_axes,
33 std::vector<std::string> physical_joint_names,
34 std::vector<std::string> actuated_axes_names,
35 std::vector<std::pair<double, double>> coupled_physical_joint_limits);
36 bool getNrOfPhysicalJoints(size_t& nrOfPhysicalJoints) override final;
37 bool getNrOfActuatedAxes(size_t& nrOfActuatedAxes) override final;
38 bool getCoupledPhysicalJoints(yarp::sig::VectorOf<size_t>& coupPhysJointsIndexes) override final;
39 bool getCoupledActuatedAxes(yarp::sig::VectorOf<size_t>& coupActAxesIndexes) override final;
40 bool getPhysicalJointName(size_t physicalJointIndex, std::string& physicalJointName) override final;
41 bool getActuatedAxisName(size_t actuatedAxisIndex, std::string& actuatedAxisName) override final;
42 bool getPhysicalJointLimits(size_t physicalJointIndex, double& min, double& max) override final;
43protected:
44 bool checkPhysicalJointIsCoupled(size_t physicalJointIndex);
45
48 std::vector<std::string> m_physicalJointNames;
49 std::vector<std::string> m_actuatedAxesNames;
50 std::vector<std::pair<double, double>> m_physicalJointLimits;
51 unsigned int m_controllerPeriod;
52 unsigned int m_couplingSize;
53
54};
55
56#endif // YARP_DEV_IJOINTCOUPLINGIMPL_H
bool getNrOfActuatedAxes(size_t &nrOfActuatedAxes) override final
std::vector< std::pair< double, double > > m_physicalJointLimits
bool getCoupledActuatedAxes(yarp::sig::VectorOf< size_t > &coupActAxesIndexes) override final
bool getCoupledPhysicalJoints(yarp::sig::VectorOf< size_t > &coupPhysJointsIndexes) override final
bool getPhysicalJointName(size_t physicalJointIndex, std::string &physicalJointName) override final
bool getActuatedAxisName(size_t actuatedAxisIndex, std::string &actuatedAxisName) override final
std::vector< std::string > m_physicalJointNames
std::vector< std::string > m_actuatedAxesNames
bool getNrOfPhysicalJoints(size_t &nrOfPhysicalJoints) override final
yarp::sig::VectorOf< size_t > m_coupledPhysicalJoints
yarp::sig::VectorOf< size_t > m_coupledActuatedAxes
bool checkPhysicalJointIsCoupled(size_t physicalJointIndex)
virtual ~ImplementJointCoupling()=default
Destructor.
void initialise(yarp::sig::VectorOf< size_t > coupled_physical_joints, yarp::sig::VectorOf< size_t > coupled_actuated_axes, std::vector< std::string > physical_joint_names, std::vector< std::string > actuated_axes_names, std::vector< std::pair< double, double > > coupled_physical_joint_limits)
bool getPhysicalJointLimits(size_t physicalJointIndex, double &min, double &max) override final
For streams capable of holding different kinds of content, check what they actually have.
Definition jointData.cpp:13
The main, catch-all namespace for YARP.
Definition dirs.h:16
#define YARP_dev_API
Definition api.h:18