27#ifndef __embObjMotionControlh__
28#define __embObjMotionControlh__
38#include <yarp/os/Bottle.h>
39#include <yarp/os/BufferedPort.h>
40#include <yarp/os/Timer.h>
41#include <yarp/dev/DeviceDriver.h>
42#include <yarp/dev/PolyDriver.h>
43#include <yarp/dev/ControlBoardHelper.h>
45#include <yarp/dev/IVirtualAnalogSensor.h>
47#include<yarp/dev/ImplementJointFault.h>
66#ifdef NETWORK_PERFORMANCE_BENCHMARK
72#undef VERIFY_ROP_SETIMPEDANCE
74#undef VERIFY_ROP_SETPOSITIONRAW
82#define EMBOBJMC_DONT_USE_MAIS
132Watchdog(): _count(0), _isStarted(false), _threshold(60000), _time(0), _abstime(
yarp::os::Time::now()){;}
133Watchdog(uint32_t threshold):_count(0), _isStarted(false), _threshold(threshold), _time(0), _abstime(
yarp::os::Time::now()){;}
142void start() {_count = 0; _time = yarp::os::Time::now(); _isStarted =
true;}
148void setThreshold(uint8_t txrateOfRegularROPs){
if(txrateOfRegularROPs != 0) _threshold = _threshold / txrateOfRegularROPs;}
158 double _motorTempPrev;
160 int32_t _initCounter;
161 std::vector<double> _initTempBuffer;
163 TemperatureFilter(): _threshold(20), _isStarted(false), _initCounter(50), _initTempBuffer(0), _motorTempPrev(0){;}
164 TemperatureFilter(uint32_t threshold, int32_t initCounter): _threshold(threshold), _isStarted(false), _initCounter(initCounter), _initTempBuffer(0), _motorTempPrev(0){;}
179 int median_pos = std::ceil(_initTempBuffer.size() / 2) -1;
180 _motorTempPrev = _initTempBuffer.at(median_pos);
185 _initTempBuffer.push_back(temperature);
204 std::vector<BufferedPort<Bottle>*>
ports;
231 public IPidControlRaw,
232 public IControlCalibrationRaw,
233 public IAmplifierControlRaw,
234 public IEncodersTimedRaw,
235 public IMotorEncodersRaw,
236 public ImplementEncodersTimed,
237 public ImplementMotorEncoders,
239 public ImplementMotor,
240 public IPositionControlRaw,
241 public IVelocityControlRaw,
242 public IControlModeRaw,
243 public ImplementControlMode,
244 public IControlLimitsRaw,
245 public IImpedanceControlRaw,
246 public ImplementImpedanceControl,
247 public ImplementControlLimits,
248 public ImplementAmplifierControl,
249 public ImplementPositionControl,
250 public ImplementControlCalibration,
251 public ImplementPidControl,
252 public ImplementVelocityControl,
253 public ITorqueControlRaw,
254 public ImplementTorqueControl,
255 public IVirtualAnalogSensor,
256 public IPositionDirectRaw,
257 public ImplementPositionDirect,
258 public IInteractionModeRaw,
259 public ImplementInteractionMode,
260 public IRemoteVariablesRaw,
261 public ImplementRemoteVariables,
263 public ImplementAxisInfo,
264 public IPWMControlRaw,
265 public ImplementPWMControl,
266 public ICurrentControlRaw,
267 public ImplementCurrentControl,
269 public IJointFaultRaw,
270 public ImplementJointFault,
278 ControlBoardHelper* _measureConverter;
289 double * _gearbox_M2J;
290 double * _gearbox_E2J;
292 std::vector<eomc::kalmanFilterParams_t> _kalman_params;
295 std::vector<std::unique_ptr<eomc::ITemperatureSensor>> _temperatureSensorsVector;
299 std::vector<eomc::encoder_t> _jointEncs;
300 std::vector<eomc::encoder_t> _motorEncs;
302 std::vector<eomc::rotorLimits_t> _rotorsLimits;
303 std::vector<eomc::jointLimits_t> _jointsLimits;
304 std::vector<eomc::motorCurrentLimits_t> _currentLimits;
305 std::vector<eomc::temperatureLimits_t> _temperatureLimits;
307 std::vector<eomc::JointsSet> _jsets;
308 std::vector<int> _joint2set;
309 std::vector<eomc::timeouts_t> _timeouts;
311 std::vector<eomc::impedanceParameters_t> _impedance_params;
312 std::vector<eomc::lugreParameters_t> _lugre_params;
323 std::vector<eomc::axisInfo_t> _axesInfo;
331#ifdef VERIFY_ROP_SETIMPEDANCE
332 uint32_t *impedanceSignature;
335#ifdef VERIFY_ROP_SETPOSITIONRAW
336 uint32_t *refRawSignature;
337 bool *sendingDirects;
342 double SAFETY_THRESHOLD;
349 double *_ref_command_positions;
351 double *_ref_command_speeds;
352 double *_ref_positions;
354 double *_encodersStamp;
355 bool *checking_motiondone;
356 #define MAX_POSITION_MOVE_INTERVAL 0.080
357 double *_last_position_move_time;
358 eOmc_impedance_t *_cacheImpedance;
359 std::vector<yarp::dev::eomc::Watchdog> _temperatureSensorErrorWatchdog;
360 std::vector<yarp::dev::eomc::Watchdog> _temperatureExceededLimitWatchdog;
361 std::vector<yarp::dev::eomc::TemperatureFilter> _temperatureSpikesFilter;
363 std::map<std::string, rawValuesKeyMetadata> _rawValuesMetadataMap;
364 std::vector<std::int32_t> _rawDataAuxVector;
366#ifdef NETWORK_PERFORMANCE_BENCHMARK
367 Tools:Emb_RensponseTimingVerifier m_responseTimingVerifier;
372 std::string getBoardInfo(
void);
373 bool askRemoteValue(eOprotID32_t id32,
void* value, uint16_t& size);
375 bool askRemoteValues(eOprotEndpoint_t ep, eOprotEntity_t entity, eOprotTag_t tag, std::vector<T>& values);
376 bool checkRemoteControlModeStatus(
int joint,
int target_mode);
381 bool verifyUserControlLawConsistencyInJointSet(
eomc::PidInfo *ipdInfo);
383 bool verifyTorquePidshasSameUnitTypes(yarp::dev::PidFeedbackUnitsEnum &fbk_pidunits, yarp::dev::PidOutputUnitsEnum& out_pidunits);
384 bool verifyUseMotorSpeedFbkInJointSet(
int useMotorSpeedFbk []);
385 bool updatedJointsetsCfgWithControlInfo(
void);
386 bool saveCouplingsData(
void);
387 void debugUtil_printJointsetInfo(
void);
389 bool isTorqueControlEnabled(
int joint);
390 bool isVelocityControlEnabled(
int joint);
392 bool iNeedCouplingsInfo(
void);
394 bool getJointConfiguration(
int joint, eOmc_joint_config_t *jntCfg_ptr);
395 bool getMotorConfiguration(
int axis, eOmc_motor_config_t *motCfg_ptr);
396 bool getGerabox_E2J(
int joint,
double *gearbox_E2J_ptr);
397 bool getJointEncTolerance(
int joint,
double *jEncTolerance_ptr);
398 bool getMotorEncTolerance(
int axis,
double *mEncTolerance_ptr);
399 void updateDeadZoneWithDefaultValues(
void);
400 bool getJointDeadZoneRaw(
int j,
double &jntDeadZone);
405 bool fromConfig(yarp::os::Searchable &config);
406 int fromConfig_NumOfJoints(yarp::os::Searchable &config);
407 bool fromConfig_getGeneralInfo(yarp::os::Searchable &config);
408 bool fromConfig_Step2(yarp::os::Searchable &config);
409 bool fromConfig_readServiceCfg(yarp::os::Searchable &config);
411 bool alloc(
int njoints);
418 bool helper_setPosPidRaw(
int j,
const Pid &pid);
419 bool helper_getPosPidRaw(
int j, Pid *pid);
420 bool helper_getPosPidsRaw(Pid *pid);
423 bool helper_setTrqPidRaw(
int j,
const Pid &pid);
424 bool helper_getTrqPidRaw(
int j, Pid *pid);
425 bool helper_getTrqPidsRaw(Pid *pid);
428 bool helper_setVelPidRaw(
int j,
const Pid &pid);
429 bool helper_getVelPidRaw(
int j, Pid *pid);
430 bool helper_getVelPidsRaw(Pid *pid);
433 bool helper_setCurPidRaw(
int j,
const Pid &pid);
434 bool helper_getCurPidRaw(
int j, Pid *pid);
435 bool helper_getCurPidsRaw(Pid *pid);
438 bool helper_setSpdPidRaw(
int j,
const Pid &pid);
439 bool helper_getSpdPidRaw(
int j, Pid *pid);
440 bool helper_getSpdPidsRaw(Pid *pid);
442 bool checkCalib14RotationParam(int32_t calib_param4);
445 bool getRawData_core(std::string key, std::vector<std::int32_t> &
data);
454 virtual bool open(yarp::os::Searchable &par);
455 virtual bool close();
459 virtual bool update(eOprotID32_t id32,
double timestamp,
void *rxdata);
460 virtual bool getEntityName(uint32_t entityId, std::string &entityName);
461 virtual bool getEncoderTypeName(uint32_t jomoId, eOmc_position_t pos, std::string &encoderTypeName)
override;
464 virtual bool setPidRaw(
const PidControlTypeEnum& pidtype,
int j,
const Pid &pid)
override;
465 virtual bool setPidsRaw(
const PidControlTypeEnum& pidtype,
const Pid *pids)
override;
466 virtual bool setPidReferenceRaw(
const PidControlTypeEnum& pidtype,
int j,
double ref)
override;
467 virtual bool setPidReferencesRaw(
const PidControlTypeEnum& pidtype,
const double *refs)
override;
468 virtual bool setPidErrorLimitRaw(
const PidControlTypeEnum& pidtype,
int j,
double limit)
override;
469 virtual bool setPidErrorLimitsRaw(
const PidControlTypeEnum& pidtype,
const double *limits)
override;
470 virtual bool getPidErrorRaw(
const PidControlTypeEnum& pidtype,
int j,
double *err)
override;
471 virtual bool getPidErrorsRaw(
const PidControlTypeEnum& pidtype,
double *errs)
override;
472 virtual bool getPidOutputRaw(
const PidControlTypeEnum& pidtype,
int j,
double *
out)
override;
473 virtual bool getPidOutputsRaw(
const PidControlTypeEnum& pidtype,
double *outs)
override;
474 virtual bool getPidRaw(
const PidControlTypeEnum& pidtype,
int j, Pid *pid)
override;
475 virtual bool getPidsRaw(
const PidControlTypeEnum& pidtype, Pid *pids)
override;
476 virtual bool getPidReferenceRaw(
const PidControlTypeEnum& pidtype,
int j,
double *ref)
override;
477 virtual bool getPidReferencesRaw(
const PidControlTypeEnum& pidtype,
double *refs)
override;
478 virtual bool getPidErrorLimitRaw(
const PidControlTypeEnum& pidtype,
int j,
double *limit)
override;
480 virtual bool resetPidRaw(
const PidControlTypeEnum& pidtype,
int j)
override;
481 virtual bool disablePidRaw(
const PidControlTypeEnum& pidtype,
int j)
override;
482 virtual bool enablePidRaw(
const PidControlTypeEnum& pidtype,
int j)
override;
483 virtual bool setPidOffsetRaw(
const PidControlTypeEnum& pidtype,
int j,
double v)
override;
484 virtual bool isPidEnabledRaw(
const PidControlTypeEnum& pidtype,
int j,
bool* enabled)
override;
487 virtual bool getAxes(
int *ax)
override;
502 virtual bool stopRaw(
int j)
override;
503 virtual bool stopRaw()
override;
507 virtual bool positionMoveRaw(
const int n_joint,
const int *joints,
const double *refs)
override;
508 virtual bool relativeMoveRaw(
const int n_joint,
const int *joints,
const double *deltas)
override;
509 virtual bool checkMotionDoneRaw(
const int n_joint,
const int *joints,
bool *flags)
override;
510 virtual bool setRefSpeedsRaw(
const int n_joint,
const int *joints,
const double *spds)
override;
512 virtual bool getRefSpeedsRaw(
const int n_joint,
const int *joints,
double *spds)
override;
514 virtual bool stopRaw(
const int n_joint,
const int *joints)
override;
537 virtual bool getControlModesRaw(
const int n_joint,
const int *joints,
int *modes)
override;
539 virtual bool setControlModesRaw(
const int n_joint,
const int *joints,
int *modes)
override;
583 virtual bool getAxisNameRaw(
int axis, std::string& name)
override;
613 virtual bool getPWMRaw(
int j,
double* val)
override;
626#ifdef IMPLEMENT_DEBUG_INTERFACE
630 virtual bool setParameterRaw(
int j,
unsigned int type,
double value)
override;
631 virtual bool getParameterRaw(
int j,
unsigned int type,
double *value)
override;
632 virtual bool setDebugParameterRaw(
int j,
unsigned int index,
double value)
override;
633 virtual bool setDebugReferencePositionRaw(
int j,
double value)
override;
634 virtual bool getDebugParameterRaw(
int j,
unsigned int index,
double *value)
override;
635 virtual bool getDebugReferencePositionRaw(
int j,
double *value)
override;
639 virtual bool setLimitsRaw(
int axis,
double min,
double max)
override;
640 virtual bool getLimitsRaw(
int axis,
double *min,
double *max)
override;
642 virtual bool setVelLimitsRaw(
int axis,
double min,
double max)
override;
643 virtual bool getVelLimitsRaw(
int axis,
double *min,
double *max)
override;
652 virtual bool setRefTorquesRaw(
const int n_joint,
const int *joints,
const double *t)
override;
660 virtual bool velocityMoveRaw(
const int n_joint,
const int *joints,
const double *spds)
override;
663 virtual bool getRefVelocitiesRaw(
const int n_joint,
const int *joints,
double *refs)
override;
667 virtual bool getImpedanceRaw(
int j,
double *stiffness,
double *damping)
override;
668 virtual bool setImpedanceRaw(
int j,
double stiffness,
double damping)
override;
671 virtual bool getCurrentImpedanceLimitRaw(
int j,
double *min_stiff,
double *max_stiff,
double *min_damp,
double *max_damp)
override;
675 virtual bool setPositionsRaw(
const int n_joint,
const int *joints,
const double *refs)
override;
679 virtual bool getRefPositionsRaw(
const int n_joint,
const int *joints,
double *refs)
override;
683 virtual bool getInteractionModesRaw(
int n_joints,
int *joints, yarp::dev::InteractionModeEnum* modes)
override;
686 virtual bool setInteractionModesRaw(
int n_joints,
int *joints, yarp::dev::InteractionModeEnum* modes)
override;
717 virtual bool setRefCurrentsRaw(
const int n_joint,
const int *joints,
const double *t)
override;
728 virtual bool getRawDataMap(std::map<std::string, std::vector<std::int32_t>> &map)
override;
729 virtual bool getRawData(std::string key, std::vector<std::int32_t> &
data)
override;
730 virtual bool getKeys(std::vector<std::string> &keys)
override;
embObjMotionControl : driver for iCub motor control boards EMS on a ETH bus.
virtual bool getPidReferenceRaw(const PidControlTypeEnum &pidtype, int j, double *ref) override
virtual bool setVelLimitsRaw(int axis, double min, double max) override
virtual bool setMaxCurrentRaw(int j, double val) override
virtual bool getMotorEncoderRaw(int m, double *v) override
virtual bool enablePidRaw(const PidControlTypeEnum &pidtype, int j) override
virtual bool getRawData(std::string key, std::vector< std::int32_t > &data) override
virtual bool setPidErrorLimitsRaw(const PidControlTypeEnum &pidtype, const double *limits) override
virtual bool setRefSpeedsRaw(const double *spds) override
virtual bool getEncoderTypeName(uint32_t jomoId, eOmc_position_t pos, std::string &encoderTypeName) override
virtual bool getTorqueRangesRaw(double *min, double *max) override
virtual bool getControlModesRaw(int *v) override
virtual bool getRefCurrentRaw(int j, double *t) override
virtual bool setInteractionModeRaw(int j, yarp::dev::InteractionModeEnum _mode) override
virtual bool getPidOutputRaw(const PidControlTypeEnum &pidtype, int j, double *out) override
virtual bool getInteractionModesRaw(int n_joints, int *joints, yarp::dev::InteractionModeEnum *modes) override
virtual bool setInteractionModesRaw(int n_joints, int *joints, yarp::dev::InteractionModeEnum *modes) override
bool getRotorEncoderTypeRaw(int j, int &type)
virtual bool setRefAccelerationsRaw(const double *accs) override
virtual bool disablePidRaw(const PidControlTypeEnum &pidtype, int j) override
virtual bool getImpedanceRaw(int j, double *stiffness, double *damping) override
virtual bool update(eOprotID32_t id32, double timestamp, void *rxdata)
virtual bool setPidOffsetRaw(const PidControlTypeEnum &pidtype, int j, double v) override
virtual bool getPowerSupplyVoltageRaw(int j, double *val) override
virtual bool setPidsRaw(const PidControlTypeEnum &pidtype, const Pid *pids) override
virtual bool getPidErrorLimitRaw(const PidControlTypeEnum &pidtype, int j, double *limit) override
virtual bool setPeakCurrentRaw(int m, const double val) override
virtual bool enableAmpRaw(int j) override
bool getHasRotorEncoderRaw(int j, int &ret)
virtual bool setRefTorqueRaw(int j, double t) override
virtual bool relativeMoveRaw(int j, double delta) override
virtual bool disableAmpRaw(int j) override
virtual bool getRefVelocityRaw(const int joint, double *ref) override
virtual bool getEncodersRaw(double *encs) override
virtual bool getLastJointFaultRaw(int j, int &fault, std::string &message) override
virtual bool getDutyCyclesRaw(double *v) override
virtual bool getPidReferencesRaw(const PidControlTypeEnum &pidtype, double *refs) override
virtual bool getMotorEncoderAccelerationsRaw(double *accs) override
virtual bool resetMotorEncoderRaw(int m) override
virtual bool checkMotionDoneRaw(bool *flag) override
virtual bool getPWMLimitRaw(int j, double *val) override
virtual bool getControlModeRaw(int j, int *v) override
virtual bool getPWMRaw(int j, double *val) override
bool getRotorLimitsRaw(int j, double *rotorMin, double *rotorMax)
virtual bool getTorqueRaw(int j, double *t) override
virtual bool getMotorEncodersRaw(double *encs) override
virtual bool open(yarp::os::Searchable &par)
virtual bool getEncodersTimedRaw(double *encs, double *stamps) override
bool getHasHallSensorRaw(int j, int &ret)
bool getJointEncoderResolutionRaw(int m, double &jntres)
virtual bool getRefSpeedsRaw(double *spds) override
virtual bool getInteractionModeRaw(int j, yarp::dev::InteractionModeEnum *_mode) override
virtual bool getEntityName(uint32_t entityId, std::string &entityName)
virtual eth::iethresType_t type()
bool getTemperatureSensorTypeRaw(int j, std::string &ret)
virtual bool getCurrentRangesRaw(double *min, double *max) override
virtual bool getLimitsRaw(int axis, double *min, double *max) override
virtual bool setPidReferenceRaw(const PidControlTypeEnum &pidtype, int j, double ref) override
virtual bool updateVirtualAnalogSensorMeasure(yarp::sig::Vector &fTorques) override
virtual bool setImpedanceRaw(int j, double stiffness, double damping) override
virtual bool setRemoteVariableRaw(std::string key, const yarp::os::Bottle &val) override
virtual bool getCurrentsRaw(double *vals) override
virtual bool getTorqueRangeRaw(int j, double *min, double *max) override
virtual bool getTorquesRaw(double *t) override
virtual bool getAmpStatusRaw(int *st) override
virtual yarp::dev::VAS_status getVirtualAnalogSensorStatus(int ch) override
bool getHasTempSensorsRaw(int j, int &ret)
virtual bool setRefCurrentsRaw(const double *t) override
virtual bool getTargetPositionRaw(const int joint, double *ref) override
virtual bool setMotorEncoderCountsPerRevolutionRaw(int m, const double cpr) override
virtual bool getGearboxRatioRaw(int m, double *gearbox) override
virtual bool resetEncodersRaw() override
virtual bool getTemperatureLimitRaw(int m, double *temp) override
virtual bool setCalibrationParametersRaw(int axis, const CalibrationParameters ¶ms) override
virtual bool getRawDataMap(std::map< std::string, std::vector< std::int32_t > > &map) override
virtual bool setNominalCurrentRaw(int m, const double val) override
virtual bool setMotorTorqueParamsRaw(int j, const MotorTorqueParameters params) override
virtual bool setRefCurrentRaw(int j, double t) override
virtual bool setTemperatureLimitRaw(int m, const double temp) override
virtual bool getRemoteVariableRaw(std::string key, yarp::os::Bottle &val) override
virtual bool calibrationDoneRaw(int j) override
virtual bool getEncoderTimedRaw(int j, double *encs, double *stamp) override
virtual bool getMetadataMap(rawValuesKeyMetadataMap &metamap) override
virtual bool getAxisNameRaw(int axis, std::string &name) override
virtual bool setPWMLimitRaw(int j, const double val) override
virtual bool getRefAccelerationRaw(int j, double *acc) override
virtual bool resetPidRaw(const PidControlTypeEnum &pidtype, int j) override
virtual bool getPidRaw(const PidControlTypeEnum &pidtype, int j, Pid *pid) override
virtual bool setPositionRaw(int j, double ref) override
virtual bool getRefSpeedRaw(int j, double *ref) override
virtual bool setPidErrorLimitRaw(const PidControlTypeEnum &pidtype, int j, double limit) override
virtual bool setControlModesRaw(const int n_joint, const int *joints, int *modes) override
bool getRotorEncoderResolutionRaw(int m, double &rotres)
virtual bool setRefDutyCycleRaw(int j, double v) override
virtual bool getImpedanceOffsetRaw(int j, double *offset) override
bool getWholeImpedanceRaw(int j, eOmc_impedance_t &imped)
virtual bool getEncoderSpeedsRaw(double *spds) override
virtual bool setPositionsRaw(const int n_joint, const int *joints, const double *refs) override
virtual bool resetMotorEncodersRaw() override
bool getJointEncoderTypeRaw(int j, int &type)
virtual bool getNumberOfMotorEncodersRaw(int *num) override
virtual bool getPidErrorLimitsRaw(const PidControlTypeEnum &pidtype, double *limits) override
virtual bool setMotorEncoderRaw(int m, const double val) override
virtual bool stopRaw() override
virtual bool getMotorEncoderTimedRaw(int m, double *encs, double *stamp) override
virtual bool setEncoderRaw(int j, double val) override
virtual bool resetEncoderRaw(int j) override
virtual bool setPidRaw(const PidControlTypeEnum &pidtype, int j, const Pid &pid) override
virtual bool getRefAccelerationsRaw(double *accs) override
virtual bool getPidOutputsRaw(const PidControlTypeEnum &pidtype, double *outs) override
virtual bool getRefPositionsRaw(double *refs) override
virtual bool getJointTypeRaw(int axis, yarp::dev::JointTypeEnum &type) override
virtual bool calibrateAxisWithParamsRaw(int axis, unsigned int type, double p1, double p2, double p3) override
virtual bool getNominalCurrentRaw(int m, double *val) override
virtual bool initialised()
virtual bool setRefTorquesRaw(const double *t) override
virtual bool getRefDutyCyclesRaw(double *v) override
virtual bool getCurrentRaw(int j, double *val) override
bool getMotorPolesRaw(int j, int &poles)
virtual bool getCurrentRangeRaw(int j, double *min, double *max) override
virtual bool getRefTorquesRaw(double *t) override
virtual bool setEncodersRaw(const double *vals) override
virtual bool getEncoderRaw(int j, double *v) override
virtual bool getKeys(std::vector< std::string > &keys) override
virtual bool setControlModeRaw(const int j, const int mode) override
virtual bool positionMoveRaw(int j, double ref) override
bool getKinematicMJRaw(int j, double &rotres)
virtual bool setLimitsRaw(int axis, double min, double max) override
virtual bool getEncoderAccelerationRaw(int j, double *spds) override
virtual bool getMotorTorqueParamsRaw(int j, MotorTorqueParameters *params) override
virtual bool getTemperatureRaw(int m, double *val) override
virtual int getNumberOfKeys() override
virtual bool setPidReferencesRaw(const PidControlTypeEnum &pidtype, const double *refs) override
virtual bool getCurrentImpedanceLimitRaw(int j, double *min_stiff, double *max_stiff, double *min_damp, double *max_damp) override
virtual bool getVelLimitsRaw(int axis, double *min, double *max) override
virtual bool getRefTorqueRaw(int j, double *t) override
virtual bool getNumberOfMotorsRaw(int *num) override
virtual bool setRefSpeedRaw(int j, double sp) override
virtual bool getMotorEncoderSpeedsRaw(double *spds) override
virtual bool getMaxCurrentRaw(int j, double *val) override
virtual bool getTemperaturesRaw(double *vals) override
virtual bool getMotorEncoderCountsPerRevolutionRaw(int m, double *v) override
virtual bool getEncoderAccelerationsRaw(double *accs) override
virtual bool getPidsRaw(const PidControlTypeEnum &pidtype, Pid *pids) override
virtual bool getRemoteVariablesListRaw(yarp::os::Bottle *listOfKeys) override
bool getTorqueControlFilterType(int j, int &type)
virtual bool getRefCurrentsRaw(double *t) override
virtual bool getPidErrorRaw(const PidControlTypeEnum &pidtype, int j, double *err) override
virtual bool setImpedanceOffsetRaw(int j, double offset) override
virtual bool getRefDutyCycleRaw(int j, double *v) override
virtual bool getMotorEncodersTimedRaw(double *encs, double *stamps) override
virtual int getVirtualAnalogSensorChannels() override
bool getRotorIndexOffsetRaw(int j, double &rotorOffset)
virtual bool setMotorEncodersRaw(const double *vals) override
virtual bool isPidEnabledRaw(const PidControlTypeEnum &pidtype, int j, bool *enabled) override
virtual bool setRefAccelerationRaw(int j, double acc) override
virtual bool getEncoderSpeedRaw(int j, double *sp) override
virtual bool getMotorEncoderSpeedRaw(int m, double *sp) override
virtual bool getMotorEncoderAccelerationRaw(int m, double *spds) override
virtual bool getAxes(int *ax) override
virtual bool getRefPositionRaw(const int joint, double *ref) override
virtual bool setRefDutyCyclesRaw(const double *v) override
virtual bool getKeyMetadata(std::string key, rawValuesKeyMetadata &meta) override
virtual bool velocityMoveRaw(int j, double sp) override
virtual bool getPeakCurrentRaw(int m, double *val) override
virtual bool getPidErrorsRaw(const PidControlTypeEnum &pidtype, double *errs) override
virtual bool getRefVelocitiesRaw(double *refs) override
virtual bool getTargetPositionsRaw(double *refs) override
bool getHasRotorEncoderIndexRaw(int j, int &ret)
virtual bool getDutyCycleRaw(int j, double *v) override
void updatePrevTemperature(double temperature)
TemperatureFilter(TemperatureFilter &&other) noexcept=default
TemperatureFilter & operator=(const TemperatureFilter &other)=default
TemperatureFilter(const TemperatureFilter &other)=default
TemperatureFilter & operator=(TemperatureFilter &&other) noexcept=default
TemperatureFilter(uint32_t threshold, int32_t initCounter)
uint32_t getTemperatureThreshold()
double getPrevTemperature()
void start(double temperature)
~TemperatureFilter()=default
Watchdog & operator=(const Watchdog &other)=default
void setThreshold(uint8_t txrateOfRegularROPs)
Watchdog(uint32_t threshold)
Watchdog(const Watchdog &other)=default
Watchdog(Watchdog &&other) noexcept=default
Watchdog & operator=(Watchdog &&other) noexcept=default
This file contains the definition of unique IDs for the body parts and the skin parts of the robot.
Copyright (C) 2008 RobotCub Consortium.
std::vector< BufferedPort< Bottle > * > ports
eOmn_serv_diagn_cfg_t config
bool useRawEncoderData
its value depends on environment variable "ETH_VERBOSEWHENOK"
bool pwmIsLimited
if true than do not use calibration data
int resolution
Num of error bits passable for joint encoder.
double tolerance
joint encoder type
vector< eOmc_jointset_configuration_t > jointset_cfgs
vector< vector< int > > set2joint
bool enableSkipRecalibration