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;
 
  734    virtual bool getAxesNames(std::string key, std::vector<std::string> &axesNames) 
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 getAxesNames(std::string key, std::vector< std::string > &axesNames) 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