kinematics-dynamics
Loading...
Searching...
No Matches
StreamingDevice.hpp
1#ifndef __STREAMING_DEVICE_HPP__
2#define __STREAMING_DEVICE_HPP__
3
4#include <map>
5#include <string>
6#include <vector>
7
8#include <yarp/os/Searchable.h>
9#include <yarp/os/Value.h>
10#include <yarp/dev/PolyDriver.h>
11
12#include "ICartesianControl.h"
13#include "CentroidTransform.hpp"
14
15namespace roboticslab
16{
17
18class StreamingDevice;
19class CentroidTransform;
20
27{
28public:
35 static StreamingDevice * makeDevice(const std::string & deviceName, yarp::os::Searchable & config);
36
37private:
39};
40
46class StreamingDevice : protected yarp::dev::PolyDriver
47{
48 friend CentroidTransform;
49
50public:
51 using PolyDriver::isValid;
52
57 StreamingDevice(yarp::os::Searchable & config);
58
60 virtual ~StreamingDevice();
61
66 virtual bool acquireInterfaces() = 0;
67
75 virtual bool initialize(const ICartesianControl::config_map_t & params)
76 {
77 return true;
78 }
79
84 virtual bool acquireData() = 0;
85
91 virtual bool transformData(double scaling);
92
99 {
100 return actuatorState;
101 }
102
108 virtual bool hasValidMovementData() const;
109
114 virtual void sendMovementCommand(double timestamp) = 0;
115
119 virtual void stopMotion()
120 {}
121
127 {
128 this->iCartesianControl = iCartesianControl;
129 }
130
131protected:
132 ICartesianControl * iCartesianControl {nullptr};
133
134 std::vector<double> data;
135 std::vector<bool> fixedAxes;
136
137 ICartesianControl::Actuator actuatorState;
138
139private:
143 void configureFixedAxes(const yarp::os::Value & v);
144};
145
154{
155public:
158 : StreamingDevice(yarp::os::Value::getNullValue())
159 {}
160
161 bool acquireInterfaces() override
162 {
163 return false;
164 }
165
166 bool acquireData() override
167 {
168 return false;
169 }
170
171 void sendMovementCommand(double timestamp) override
172 {}
173
174 void stopMotion() override
175 {}
176};
177
178} // namespace roboticslab
179
180#endif // __STREAMING_DEVICE_HPP__
Definition CentroidTransform.hpp:22
Abstract base class for a cartesian controller.
Definition ICartesianControl.h:22
Actuator
Actuator control vocabs.
Definition ICartesianControl.h:72
Represents an invalid device.
Definition StreamingDevice.hpp:154
void stopMotion() override
Sends a movement command that would stop motion.
Definition StreamingDevice.hpp:174
bool acquireInterfaces() override
Acquires plugin interfaces.
Definition StreamingDevice.hpp:161
bool acquireData() override
Acquires data from remote device.
Definition StreamingDevice.hpp:166
void sendMovementCommand(double timestamp) override
Sends movement command to the cartesian controller.
Definition StreamingDevice.hpp:171
InvalidDevice()
Creates an invalid device.
Definition StreamingDevice.hpp:157
Factory class for creating instances of StreamingDevice.
Definition StreamingDevice.hpp:27
static StreamingDevice * makeDevice(const std::string &deviceName, yarp::os::Searchable &config)
Creates a new YARP device handle.
Definition StreamingDevice.cpp:16
Abstract class for a YARP streaming device.
Definition StreamingDevice.hpp:47
virtual bool transformData(double scaling)
Performs required operations on stored data.
Definition StreamingDevice.cpp:66
virtual bool acquireData()=0
Acquires data from remote device.
virtual bool initialize(const ICartesianControl::config_map_t &params)
Perform any custom initialization needed. This method is called after the successful creation of the ...
Definition StreamingDevice.hpp:75
virtual bool hasValidMovementData() const
Checks whether the device may forward acquired and processed data to the controller.
Definition StreamingDevice.cpp:83
virtual ICartesianControl::Actuator getActuatorState()
If actuator command data is available, return its current state.
Definition StreamingDevice.hpp:98
virtual void sendMovementCommand(double timestamp)=0
Sends movement command to the cartesian controller.
virtual bool acquireInterfaces()=0
Acquires plugin interfaces.
virtual void stopMotion()
Sends a movement command that would stop motion.
Definition StreamingDevice.hpp:119
void setCartesianControllerHandle(ICartesianControl *iCartesianControl)
Stores handle to an ICartesianControl instance.
Definition StreamingDevice.hpp:126
virtual ~StreamingDevice()
Destructor.
Definition StreamingDevice.cpp:61
void configureFixedAxes(const yarp::os::Value &v)
Stores vector of values representing axes that are always fixed.
Definition StreamingDevice.cpp:101
The main, catch-all namespace for Robotics Lab UC3M.
Definition groups.dox:6