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>
63 #ifdef NETWORK_PERFORMANCE_BENCHMARK
69 #undef VERIFY_ROP_SETIMPEDANCE
71 #undef VERIFY_ROP_SETPOSITIONRAW
79 #define EMBOBJMC_DONT_USE_MAIS
124 Watchdog(): _count(0), _isStarted(false), _threshold(60000), _time(0){;}
125 Watchdog(uint32_t threshold):_count(0), _isStarted(false), _threshold(threshold), _time(0){;}
134 void start() {_count = 0; _time = yarp::os::Time::now(); _isStarted =
true;}
140 void setThreshold(uint8_t txrateOfRegularROPs){
if(txrateOfRegularROPs != 0) _threshold = _threshold / txrateOfRegularROPs;}
149 double _motorTempPrev;
151 int32_t _initCounter;
152 std::vector<double> _initTempBuffer;
154 TemperatureFilter(): _threshold(20), _isStarted(false), _initCounter(50), _initTempBuffer(0), _motorTempPrev(0){;}
155 TemperatureFilter(uint32_t threshold, int32_t initCounter): _threshold(threshold), _isStarted(false), _initCounter(initCounter), _initTempBuffer(0), _motorTempPrev(0){;}
170 int median_pos = std::ceil(_initTempBuffer.size() / 2) -1;
171 _motorTempPrev = _initTempBuffer.at(median_pos);
176 _initTempBuffer.push_back(temperature);
195 std::vector<BufferedPort<Bottle>*>
ports;
221 public IPidControlRaw,
222 public IControlCalibrationRaw,
223 public IAmplifierControlRaw,
224 public IEncodersTimedRaw,
225 public IMotorEncodersRaw,
226 public ImplementEncodersTimed,
227 public ImplementMotorEncoders,
229 public ImplementMotor,
230 public IPositionControlRaw,
231 public IVelocityControlRaw,
232 public IControlModeRaw,
233 public ImplementControlMode,
234 public IControlLimitsRaw,
235 public IImpedanceControlRaw,
236 public ImplementImpedanceControl,
237 public ImplementControlLimits,
238 public ImplementAmplifierControl,
239 public ImplementPositionControl,
240 public ImplementControlCalibration,
241 public ImplementPidControl,
242 public ImplementVelocityControl,
243 public ITorqueControlRaw,
244 public ImplementTorqueControl,
245 public IVirtualAnalogSensor,
246 public IPositionDirectRaw,
247 public ImplementPositionDirect,
248 public IInteractionModeRaw,
249 public ImplementInteractionMode,
250 public IRemoteVariablesRaw,
251 public ImplementRemoteVariables,
253 public ImplementAxisInfo,
254 public IPWMControlRaw,
255 public ImplementPWMControl,
256 public ICurrentControlRaw,
257 public ImplementCurrentControl,
259 public IJointFaultRaw,
260 public ImplementJointFault
267 ControlBoardHelper* _measureConverter;
278 double * _gearbox_M2J;
279 double * _gearbox_E2J;
281 std::vector<eomc::kalmanFilterParams_t> _kalman_params;
283 std::vector<std::unique_ptr<eomc::ITemperatureSensor>> _temperatureSensorsVector;
287 std::vector<eomc::encoder_t> _jointEncs;
288 std::vector<eomc::encoder_t> _motorEncs;
290 std::vector<eomc::rotorLimits_t> _rotorsLimits;
291 std::vector<eomc::jointLimits_t> _jointsLimits;
292 std::vector<eomc::motorCurrentLimits_t> _currentLimits;
293 std::vector<eomc::temperatureLimits_t> _temperatureLimits;
295 std::vector<eomc::JointsSet> _jsets;
296 std::vector<int> _joint2set;
297 std::vector<eomc::timeouts_t> _timeouts;
299 std::vector<eomc::impedanceParameters_t> _impedance_params;
310 std::vector<eomc::axisInfo_t> _axesInfo;
316 #ifdef VERIFY_ROP_SETIMPEDANCE
317 uint32_t *impedanceSignature;
320 #ifdef VERIFY_ROP_SETPOSITIONRAW
321 uint32_t *refRawSignature;
322 bool *sendingDirects;
327 double SAFETY_THRESHOLD;
334 double *_ref_command_positions;
336 double *_ref_command_speeds;
337 double *_ref_positions;
339 double *_encodersStamp;
340 bool *checking_motiondone;
341 #define MAX_POSITION_MOVE_INTERVAL 0.080
342 double *_last_position_move_time;
343 eOmc_impedance_t *_cacheImpedance;
344 std::vector<yarp::dev::eomc::Watchdog> _temperatureSensorErrorWatchdog;
345 std::vector<yarp::dev::eomc::Watchdog> _temperatureExceededLimitWatchdog;
346 std::vector<yarp::dev::eomc::TemperatureFilter> _temperatureSpikesFilter;
348 #ifdef NETWORK_PERFORMANCE_BENCHMARK
349 Tools:Emb_RensponseTimingVerifier m_responseTimingVerifier;
354 std::string getBoardInfo(
void);
355 bool askRemoteValue(eOprotID32_t id32,
void* value, uint16_t& size);
357 bool askRemoteValues(eOprotEndpoint_t ep, eOprotEntity_t entity, eOprotTag_t tag, std::vector<T>& values);
358 bool checkRemoteControlModeStatus(
int joint,
int target_mode);
363 bool verifyUserControlLawConsistencyInJointSet(
eomc::PidInfo *ipdInfo);
365 bool verifyTorquePidshasSameUnitTypes(yarp::dev::PidFeedbackUnitsEnum &fbk_pidunits, yarp::dev::PidOutputUnitsEnum& out_pidunits);
366 bool verifyUseMotorSpeedFbkInJointSet(
int useMotorSpeedFbk []);
367 bool updatedJointsetsCfgWithControlInfo(
void);
368 bool saveCouplingsData(
void);
369 void debugUtil_printJointsetInfo(
void);
371 bool isTorqueControlEnabled(
int joint);
372 bool isVelocityControlEnabled(
int joint);
374 bool iNeedCouplingsInfo(
void);
376 bool getJointConfiguration(
int joint, eOmc_joint_config_t *jntCfg_ptr);
377 bool getMotorConfiguration(
int axis, eOmc_motor_config_t *motCfg_ptr);
378 bool getGerabox_E2J(
int joint,
double *gearbox_E2J_ptr);
379 bool getJointEncTolerance(
int joint,
double *jEncTolerance_ptr);
380 bool getMotorEncTolerance(
int axis,
double *mEncTolerance_ptr);
381 void updateDeadZoneWithDefaultValues(
void);
382 bool getJointDeadZoneRaw(
int j,
double &jntDeadZone);
387 bool fromConfig(yarp::os::Searchable &config);
388 int fromConfig_NumOfJoints(yarp::os::Searchable &config);
389 bool fromConfig_getGeneralInfo(yarp::os::Searchable &config);
390 bool fromConfig_Step2(yarp::os::Searchable &config);
391 bool fromConfig_readServiceCfg(yarp::os::Searchable &config);
393 bool alloc(
int njoints);
400 bool helper_setPosPidRaw(
int j,
const Pid &pid);
401 bool helper_getPosPidRaw(
int j, Pid *pid);
402 bool helper_getPosPidsRaw(Pid *pid);
405 bool helper_setTrqPidRaw(
int j,
const Pid &pid);
406 bool helper_getTrqPidRaw(
int j, Pid *pid);
407 bool helper_getTrqPidsRaw(Pid *pid);
410 bool helper_setVelPidRaw(
int j,
const Pid &pid);
411 bool helper_getVelPidRaw(
int j, Pid *pid);
412 bool helper_getVelPidsRaw(Pid *pid);
415 bool helper_setCurPidRaw(
int j,
const Pid &pid);
416 bool helper_getCurPidRaw(
int j, Pid *pid);
417 bool helper_getCurPidsRaw(Pid *pid);
420 bool helper_setSpdPidRaw(
int j,
const Pid &pid);
421 bool helper_getSpdPidRaw(
int j, Pid *pid);
422 bool helper_getSpdPidsRaw(Pid *pid);
424 bool checkCalib14RotationParam(int32_t calib_param4);
433 virtual bool open(yarp::os::Searchable &par);
434 virtual bool close();
436 virtual bool initialised();
438 virtual bool update(eOprotID32_t id32,
double timestamp,
void *rxdata);
439 virtual bool getEntityName(uint32_t entityId, std::string &entityName);
442 virtual bool setPidRaw(
const PidControlTypeEnum& pidtype,
int j,
const Pid &pid)
override;
443 virtual bool setPidsRaw(
const PidControlTypeEnum& pidtype,
const Pid *pids)
override;
444 virtual bool setPidReferenceRaw(
const PidControlTypeEnum& pidtype,
int j,
double ref)
override;
445 virtual bool setPidReferencesRaw(
const PidControlTypeEnum& pidtype,
const double *refs)
override;
446 virtual bool setPidErrorLimitRaw(
const PidControlTypeEnum& pidtype,
int j,
double limit)
override;
447 virtual bool setPidErrorLimitsRaw(
const PidControlTypeEnum& pidtype,
const double *limits)
override;
448 virtual bool getPidErrorRaw(
const PidControlTypeEnum& pidtype,
int j,
double *err)
override;
449 virtual bool getPidErrorsRaw(
const PidControlTypeEnum& pidtype,
double *errs)
override;
450 virtual bool getPidOutputRaw(
const PidControlTypeEnum& pidtype,
int j,
double *
out)
override;
451 virtual bool getPidOutputsRaw(
const PidControlTypeEnum& pidtype,
double *outs)
override;
452 virtual bool getPidRaw(
const PidControlTypeEnum& pidtype,
int j, Pid *pid)
override;
453 virtual bool getPidsRaw(
const PidControlTypeEnum& pidtype, Pid *pids)
override;
454 virtual bool getPidReferenceRaw(
const PidControlTypeEnum& pidtype,
int j,
double *ref)
override;
455 virtual bool getPidReferencesRaw(
const PidControlTypeEnum& pidtype,
double *refs)
override;
456 virtual bool getPidErrorLimitRaw(
const PidControlTypeEnum& pidtype,
int j,
double *limit)
override;
457 virtual bool getPidErrorLimitsRaw(
const PidControlTypeEnum& pidtype,
double *limits)
override;
458 virtual bool resetPidRaw(
const PidControlTypeEnum& pidtype,
int j)
override;
459 virtual bool disablePidRaw(
const PidControlTypeEnum& pidtype,
int j)
override;
460 virtual bool enablePidRaw(
const PidControlTypeEnum& pidtype,
int j)
override;
461 virtual bool setPidOffsetRaw(
const PidControlTypeEnum& pidtype,
int j,
double v)
override;
462 virtual bool isPidEnabledRaw(
const PidControlTypeEnum& pidtype,
int j,
bool* enabled)
override;
465 virtual bool getAxes(
int *ax)
override;
466 virtual bool positionMoveRaw(
int j,
double ref)
override;
467 virtual bool positionMoveRaw(
const double *refs)
override;
468 virtual bool relativeMoveRaw(
int j,
double delta)
override;
469 virtual bool relativeMoveRaw(
const double *deltas)
override;
470 virtual bool checkMotionDoneRaw(
bool *flag)
override;
471 virtual bool checkMotionDoneRaw(
int j,
bool *flag)
override;
472 virtual bool setRefSpeedRaw(
int j,
double sp)
override;
473 virtual bool setRefSpeedsRaw(
const double *spds)
override;
474 virtual bool setRefAccelerationRaw(
int j,
double acc)
override;
475 virtual bool setRefAccelerationsRaw(
const double *accs)
override;
476 virtual bool getRefSpeedRaw(
int j,
double *ref)
override;
477 virtual bool getRefSpeedsRaw(
double *spds)
override;
478 virtual bool getRefAccelerationRaw(
int j,
double *
acc)
override;
479 virtual bool getRefAccelerationsRaw(
double *accs)
override;
480 virtual bool stopRaw(
int j)
override;
481 virtual bool stopRaw()
override;
485 virtual bool positionMoveRaw(
const int n_joint,
const int *joints,
const double *refs)
override;
486 virtual bool relativeMoveRaw(
const int n_joint,
const int *joints,
const double *deltas)
override;
487 virtual bool checkMotionDoneRaw(
const int n_joint,
const int *joints,
bool *flags)
override;
488 virtual bool setRefSpeedsRaw(
const int n_joint,
const int *joints,
const double *spds)
override;
489 virtual bool setRefAccelerationsRaw(
const int n_joint,
const int *joints,
const double *accs)
override;
490 virtual bool getRefSpeedsRaw(
const int n_joint,
const int *joints,
double *spds)
override;
491 virtual bool getRefAccelerationsRaw(
const int n_joint,
const int *joints,
double *accs)
override;
492 virtual bool stopRaw(
const int n_joint,
const int *joints)
override;
493 virtual bool getTargetPositionRaw(
const int joint,
double *ref)
override;
494 virtual bool getTargetPositionsRaw(
double *refs)
override;
495 virtual bool getTargetPositionsRaw(
const int n_joint,
const int *joints,
double *refs)
override;
498 virtual bool velocityMoveRaw(
int j,
double sp)
override;
499 virtual bool velocityMoveRaw(
const double *sp)
override;
503 virtual bool setCalibrationParametersRaw(
int axis,
const CalibrationParameters& params)
override;
504 virtual bool calibrateAxisWithParamsRaw(
int axis,
unsigned int type,
double p1,
double p2,
double p3)
override;
505 virtual bool calibrationDoneRaw(
int j)
override;
511 virtual bool getControlModeRaw(
int j,
int *v)
override;
512 virtual bool getControlModesRaw(
int *v)
override;
515 virtual bool getControlModesRaw(
const int n_joint,
const int *joints,
int *modes)
override;
516 virtual bool setControlModeRaw(
const int j,
const int mode)
override;
517 virtual bool setControlModesRaw(
const int n_joint,
const int *joints,
int *modes)
override;
518 virtual bool setControlModesRaw(
int *modes)
override;
521 virtual bool resetEncoderRaw(
int j)
override;
522 virtual bool resetEncodersRaw()
override;
523 virtual bool setEncoderRaw(
int j,
double val)
override;
524 virtual bool setEncodersRaw(
const double *vals)
override;
525 virtual bool getEncoderRaw(
int j,
double *v)
override;
526 virtual bool getEncodersRaw(
double *
encs)
override;
527 virtual bool getEncoderSpeedRaw(
int j,
double *sp)
override;
528 virtual bool getEncoderSpeedsRaw(
double *spds)
override;
529 virtual bool getEncoderAccelerationRaw(
int j,
double *spds)
override;
530 virtual bool getEncoderAccelerationsRaw(
double *accs)
override;
533 virtual bool getEncodersTimedRaw(
double *
encs,
double *stamps)
override;
534 virtual bool getEncoderTimedRaw(
int j,
double *
encs,
double *stamp)
override;
537 virtual bool getNumberOfMotorEncodersRaw(
int * num)
override;
538 virtual bool resetMotorEncoderRaw(
int m)
override;
539 virtual bool resetMotorEncodersRaw()
override;
540 virtual bool setMotorEncoderRaw(
int m,
const double val)
override;
541 virtual bool setMotorEncodersRaw(
const double *vals)
override;
542 virtual bool getMotorEncoderRaw(
int m,
double *v)
override;
543 virtual bool getMotorEncodersRaw(
double *
encs)
override;
544 virtual bool getMotorEncoderSpeedRaw(
int m,
double *sp)
override;
545 virtual bool getMotorEncoderSpeedsRaw(
double *spds)
override;
546 virtual bool getMotorEncoderAccelerationRaw(
int m,
double *spds)
override;
547 virtual bool getMotorEncoderAccelerationsRaw(
double *accs)
override;
548 virtual bool getMotorEncodersTimedRaw(
double *
encs,
double *stamps)
override;
549 virtual bool getMotorEncoderTimedRaw(
int m,
double *
encs,
double *stamp)
override;
550 virtual bool getMotorEncoderCountsPerRevolutionRaw(
int m,
double *v)
override;
551 virtual bool setMotorEncoderCountsPerRevolutionRaw(
int m,
const double cpr)
override;
555 virtual bool getRemoteVariableRaw(std::string key, yarp::os::Bottle& val)
override;
556 virtual bool setRemoteVariableRaw(std::string key,
const yarp::os::Bottle& val)
override;
557 virtual bool getRemoteVariablesListRaw(yarp::os::Bottle* listOfKeys)
override;
561 virtual bool getAxisNameRaw(
int axis, std::string& name)
override;
562 virtual bool getJointTypeRaw(
int axis, yarp::dev::JointTypeEnum& type)
override;
566 bool getRotorEncoderResolutionRaw(
int m,
double &rotres) ;
567 bool getJointEncoderResolutionRaw(
int m,
double &jntres) ;
568 bool getJointEncoderTypeRaw(
int j,
int &type) ;
569 bool getRotorEncoderTypeRaw(
int j,
int &type) ;
570 bool getKinematicMJRaw(
int j,
double &rotres) ;
571 bool getTemperatureSensorTypeRaw(
int j, std::string& ret) ;
572 bool getHasTempSensorsRaw(
int j,
int& ret) ;
573 bool getHasHallSensorRaw(
int j,
int& ret) ;
574 bool getHasRotorEncoderRaw(
int j,
int& ret) ;
575 bool getHasRotorEncoderIndexRaw(
int j,
int& ret) ;
576 bool getMotorPolesRaw(
int j,
int& poles) ;
577 bool getRotorIndexOffsetRaw(
int j,
double& rotorOffset) ;
578 bool getTorqueControlFilterType(
int j,
int& type) ;
579 bool getRotorLimitsRaw(
int j,
double *rotorMin,
double *rotorMax) ;
580 bool getWholeImpedanceRaw(
int j, eOmc_impedance_t &imped);
583 virtual bool enableAmpRaw(
int j)
override;
584 virtual bool disableAmpRaw(
int j)
override;
585 virtual bool getCurrentsRaw(
double *vals)
override;
586 virtual bool getCurrentRaw(
int j,
double *val)
override;
587 virtual bool setMaxCurrentRaw(
int j,
double val)
override;
588 virtual bool getMaxCurrentRaw(
int j,
double *val)
override;
589 virtual bool getAmpStatusRaw(
int *st)
override;
590 virtual bool getAmpStatusRaw(
int j,
int *st)
override;
591 virtual bool getPWMRaw(
int j,
double* val)
override;
592 virtual bool getPWMLimitRaw(
int j,
double* val)
override;
593 virtual bool setPWMLimitRaw(
int j,
const double val)
override;
594 virtual bool getPowerSupplyVoltageRaw(
int j,
double* val)
override;
599 virtual yarp::dev::VAS_status getVirtualAnalogSensorStatus(
int ch)
override;
600 virtual int getVirtualAnalogSensorChannels()
override;
601 virtual bool updateVirtualAnalogSensorMeasure(yarp::sig::Vector &fTorques)
override;
602 virtual bool updateVirtualAnalogSensorMeasure(
int j,
double &fTorque)
override;
604 #ifdef IMPLEMENT_DEBUG_INTERFACE
608 virtual bool setParameterRaw(
int j,
unsigned int type,
double value)
override;
609 virtual bool getParameterRaw(
int j,
unsigned int type,
double *value)
override;
610 virtual bool setDebugParameterRaw(
int j,
unsigned int index,
double value)
override;
611 virtual bool setDebugReferencePositionRaw(
int j,
double value)
override;
612 virtual bool getDebugParameterRaw(
int j,
unsigned int index,
double *value)
override;
613 virtual bool getDebugReferencePositionRaw(
int j,
double *value)
override;
617 virtual bool setLimitsRaw(
int axis,
double min,
double max)
override;
618 virtual bool getLimitsRaw(
int axis,
double *
min,
double *
max)
override;
620 virtual bool setVelLimitsRaw(
int axis,
double min,
double max)
override;
621 virtual bool getVelLimitsRaw(
int axis,
double *
min,
double *
max)
override;
624 virtual bool getTorqueRaw(
int j,
double *t)
override;
625 virtual bool getTorquesRaw(
double *t)
override;
626 virtual bool getTorqueRangeRaw(
int j,
double *
min,
double *
max)
override;
627 virtual bool getTorqueRangesRaw(
double *
min,
double *
max)
override;
628 virtual bool setRefTorquesRaw(
const double *t)
override;
629 virtual bool setRefTorqueRaw(
int j,
double t)
override;
630 virtual bool setRefTorquesRaw(
const int n_joint,
const int *joints,
const double *t)
override;
631 virtual bool getRefTorquesRaw(
double *t)
override;
632 virtual bool getRefTorqueRaw(
int j,
double *t)
override;
633 virtual bool getMotorTorqueParamsRaw(
int j, MotorTorqueParameters *params)
override;
634 virtual bool setMotorTorqueParamsRaw(
int j,
const MotorTorqueParameters params)
override;
638 virtual bool velocityMoveRaw(
const int n_joint,
const int *joints,
const double *spds)
override;
639 virtual bool getRefVelocityRaw(
const int joint,
double *ref)
override;
640 virtual bool getRefVelocitiesRaw(
double *refs)
override;
641 virtual bool getRefVelocitiesRaw(
const int n_joint,
const int *joints,
double *refs)
override;
645 virtual bool getImpedanceRaw(
int j,
double *stiffness,
double *damping)
override;
646 virtual bool setImpedanceRaw(
int j,
double stiffness,
double damping)
override;
647 virtual bool setImpedanceOffsetRaw(
int j,
double offset)
override;
648 virtual bool getImpedanceOffsetRaw(
int j,
double *
offset)
override;
649 virtual bool getCurrentImpedanceLimitRaw(
int j,
double *min_stiff,
double *max_stiff,
double *min_damp,
double *max_damp)
override;
652 virtual bool setPositionRaw(
int j,
double ref)
override;
653 virtual bool setPositionsRaw(
const int n_joint,
const int *joints,
const double *refs)
override;
654 virtual bool setPositionsRaw(
const double *refs)
override;
655 virtual bool getRefPositionRaw(
const int joint,
double *ref)
override;
656 virtual bool getRefPositionsRaw(
double *refs)
override;
657 virtual bool getRefPositionsRaw(
const int n_joint,
const int *joints,
double *refs)
override;
660 virtual bool getInteractionModeRaw(
int j, yarp::dev::InteractionModeEnum* _mode)
override;
661 virtual bool getInteractionModesRaw(
int n_joints,
int *joints, yarp::dev::InteractionModeEnum* modes)
override;
662 virtual bool getInteractionModesRaw(yarp::dev::InteractionModeEnum* modes)
override;
663 virtual bool setInteractionModeRaw(
int j, yarp::dev::InteractionModeEnum _mode)
override;
664 virtual bool setInteractionModesRaw(
int n_joints,
int *joints, yarp::dev::InteractionModeEnum* modes)
override;
665 virtual bool setInteractionModesRaw(yarp::dev::InteractionModeEnum* modes)
override;
668 virtual bool getNumberOfMotorsRaw(
int * num)
override;
669 virtual bool getTemperatureRaw(
int m,
double* val)
override;
670 virtual bool getTemperaturesRaw(
double *vals)
override;
671 virtual bool getTemperatureLimitRaw(
int m,
double *temp)
override;
672 virtual bool setTemperatureLimitRaw(
int m,
const double temp)
override;
673 virtual bool getPeakCurrentRaw(
int m,
double *val)
override;
674 virtual bool setPeakCurrentRaw(
int m,
const double val)
override;
675 virtual bool getNominalCurrentRaw(
int m,
double *val)
override;
676 virtual bool setNominalCurrentRaw(
int m,
const double val)
override;
677 virtual bool getGearboxRatioRaw(
int m,
double *gearbox)
override;
680 virtual bool setRefDutyCycleRaw(
int j,
double v)
override;
681 virtual bool setRefDutyCyclesRaw(
const double *v)
override;
682 virtual bool getRefDutyCycleRaw(
int j,
double *v)
override;
683 virtual bool getRefDutyCyclesRaw(
double *v)
override;
684 virtual bool getDutyCycleRaw(
int j,
double *v)
override;
685 virtual bool getDutyCyclesRaw(
double *v)
override;
691 virtual bool getCurrentRangeRaw(
int j,
double *
min,
double *
max)
override;
692 virtual bool getCurrentRangesRaw(
double *
min,
double *
max)
override;
693 virtual bool setRefCurrentsRaw(
const double *t)
override;
694 virtual bool setRefCurrentRaw(
int j,
double t)
override;
695 virtual bool setRefCurrentsRaw(
const int n_joint,
const int *joints,
const double *t)
override;
696 virtual bool getRefCurrentsRaw(
double *t)
override;
697 virtual bool getRefCurrentRaw(
int j,
double *t)
override;
703 virtual bool getLastJointFaultRaw(
int j,
int& fault, std::string& message)
override;
embObjMotionControl : driver for iCub motor control boards EMS on a ETH bus.
void updatePrevTemperature(double temperature)
TemperatureFilter(TemperatureFilter &&other) noexcept=default
TemperatureFilter(const TemperatureFilter &other)=default
TemperatureFilter(uint32_t threshold, int32_t initCounter)
TemperatureFilter & operator=(TemperatureFilter &&other) noexcept=default
uint32_t getTemperatureThreshold()
double getPrevTemperature()
void start(double temperature)
~TemperatureFilter()=default
TemperatureFilter & operator=(const TemperatureFilter &other)=default
void setThreshold(uint8_t txrateOfRegularROPs)
Watchdog(uint32_t threshold)
Watchdog & operator=(Watchdog &&other) noexcept=default
Watchdog(const Watchdog &other)=default
Watchdog & operator=(const Watchdog &other)=default
Watchdog(Watchdog &&other) noexcept=default
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