3 #ifndef __TECHNOSOFT_IPOS_EMBEDDED_HPP__
4 #define __TECHNOSOFT_IPOS_EMBEDDED_HPP__
9 #include "TechnosoftIposBase.hpp"
10 #include "embedded-pid/InterpolatedPositionBuffer.hpp"
24 bool open(yarp::os::Searchable & config)
override;
25 bool close()
override;
33 bool getControlModeRaw(
int j,
int * mode)
override;
34 bool setControlModeRaw(
int j,
int mode)
override;
38 bool positionMoveRaw(
int j,
double ref)
override;
39 bool relativeMoveRaw(
int j,
double delta)
override;
40 bool checkMotionDoneRaw(
int j,
bool * flag)
override;
41 bool setRefSpeedRaw(
int j,
double sp)
override;
42 bool setRefAccelerationRaw(
int j,
double acc)
override;
43 bool getRefSpeedRaw(
int j,
double * ref)
override;
44 bool getRefAccelerationRaw(
int j,
double * acc)
override;
45 bool stopRaw(
int j)
override;
46 bool getTargetPositionRaw(
int joint,
double * ref)
override;
50 bool setPositionRaw(
int j,
double ref)
override;
51 bool getRefPositionRaw(
int joint,
double * ref)
override;
55 bool getRemoteVariableRaw(std::string key, yarp::os::Bottle & val)
override;
56 bool setRemoteVariableRaw(std::string key,
const yarp::os::Bottle & val)
override;
57 bool getRemoteVariablesListRaw(yarp::os::Bottle * listOfKeys)
override;
61 bool velocityMoveRaw(
int j,
double sp)
override;
62 bool getRefVelocityRaw(
int joint,
double * vel)
override;
65 void interpretModesOfOperation(std::int8_t modesOfOperation)
override;
66 void interpretIpStatus(std::uint16_t ipStatus)
override;
67 void onPositionLimitTriggered()
override;
68 void reset()
override;
74 std::bitset<16> ipStatus;
76 std::atomic<bool> ipMotionStarted {
false};
77 std::atomic<bool> ipBufferFilled {
false};
78 std::atomic<bool> ipBufferEnabled {
false};
80 std::atomic<bool> enableSync {
false};
81 std::atomic<bool> enableCsv {
false};
83 std::atomic<double> targetPosition {0.0};
84 std::atomic<double> targetVelocity {0.0};
Base class for a PT/PVT buffer of setpoints.
Definition: InterpolatedPositionBuffer.hpp:23
Base class for all proxied TechnosoftIpos implementations.
Definition: TechnosoftIposBase.hpp:72
A TechnosoftIposBase implementation using the firmware-embedded PID.
Definition: TechnosoftIposEmbedded.hpp:20
bool synchronize(double timestamp) override
Perform synchronized action on CAN master's request.
Definition: ICanBusSharerImpl.cpp:9
The main, catch-all namespace for Robotics Lab UC3M.
Definition: groups.dox:6