19 #ifndef _osaRobot1394_h
20 #define _osaRobot1394_h
26 #ifndef SAW_ROBOT_IO_1394_WO_CISST
30 #include <boost/shared_ptr.hpp>
31 #include <Eigen/Dense>
40 namespace sawRobotIO1394 {
57 const size_t maxConsecutiveCurrentSafetyViolations = 100,
58 const size_t maxConsecutivePotsToEncodersViolations = 200);
62 void SetBoards(
const std::vector<osaActuatorMapping> & actuatorBoards,
63 const std::vector<osaBrakeMapping> & brakeBoards);
125 bool Valid(
void)
const;
144 std::string
Name(
void)
const;
331 #endif // _osaRobot1394_h
void EnableBoardsPower(void)
void GetJointTypes(prmJointTypeVec &jointTypes) const
vctDoubleVec mActuatorTimestamp
Definition: osaRobot1394.h:290
size_t NumberOfBrakes(void) const
std::map< int, AmpIO * >::const_iterator unique_board_const_iterator
Definition: osaRobot1394.h:197
vctDoubleVec mJointTorque
Definition: osaRobot1394.h:290
vctDoubleVec mEffortToCurrentScales
Definition: osaRobot1394.h:216
vctDoubleVec mBrakeCurrentCommand
Definition: osaRobot1394.h:290
vctDoubleVec mActuatorTemperature
Definition: osaRobot1394.h:290
Typedef for dynamic vectors.
const vctDoubleVec & PotPosition(void) const
prmJointTypeVec mJointType
Robot type.
Definition: osaRobot1394.h:248
vctDoubleVec mEncoderVelocityDxDt
Definition: osaRobot1394.h:290
vctIntVec mEncoderPositionBits
Definition: osaRobot1394.h:275
void SetEncoderPosition(const vctDoubleVec &pos)
Encoder Control.
size_t mCurrentSafetyViolationsMaximum
Definition: osaRobot1394.h:321
vctIntVec mEncoderVelocityBitsNow
Definition: osaRobot1394.h:275
vctDoubleVec mPotPosition
Definition: osaRobot1394.h:290
vctIntVec mEncoderVelocityBits
Definition: osaRobot1394.h:275
vctDoubleVec mActuatorBitsToCurrentScales
Definition: osaRobot1394.h:216
void SetSingleEncoderPosition(const int index, const double pos=0)
vctDoubleVec mActuatorBitsToCurrentOffsets
Definition: osaRobot1394.h:216
vctDoubleVec mEncoderPosition
Definition: osaRobot1394.h:290
vctDoubleVec mJointVelocity
Definition: osaRobot1394.h:290
void SetActuatorPower(const bool &enabled)
vctDoubleVec mBrakeReleasingTimer
Definition: osaRobot1394.h:209
bool mBrakeReleasing
Definition: osaRobot1394.h:208
vctDoubleVec mBitsToVoltageOffsets
Definition: osaRobot1394.h:216
size_t mPotsToEncodersViolationsMaximum
Definition: osaRobot1394.h:325
vctDoubleVec mEncoderDPosition
Definition: osaRobot1394.h:290
std::map< int, AmpIO * > mUniqueBoards
Definition: osaRobot1394.h:195
vctDoubleVec mJointPosition
Definition: osaRobot1394.h:290
vctDoubleVec mBrakeCurrentFeedback
Definition: osaRobot1394.h:290
void ClipBrakeCurrent(vctDoubleVec ¤ts)
vctDoubleVec mPotsToEncodersError
Definition: osaRobot1394.h:290
vctDoubleVec mBitsToDPositionOffsets
Definition: osaRobot1394.h:216
void SetEncoderPositionBits(const vctIntVec &bits)
vctDoubleVec mBitsToPositionScales
Definition: osaRobot1394.h:216
bool SafetyRelay(void) const
bool mWatchdogStatus
Definition: osaRobot1394.h:254
vctDoubleVec mBrakeTemperature
Definition: osaRobot1394.h:290
size_t mNumberOfActuators
Definition: osaRobot1394.h:202
void SetSingleEncoderPositionBits(const int index, const int bits=0)
void ActuatorCurrentToBits(const vctDoubleVec ¤ts, vctIntVec &bits) const
unsigned short mSafetyRelay
Definition: osaRobot1394.h:261
vctBoolVec mEncoderOverflow
Definition: osaRobot1394.h:264
const vctDoubleVec & BrakeTimeStamp(void) const
vctDoubleVec mActuatorEffortCommandLimits
Definition: osaRobot1394.h:239
void SetBrakeCurrentBits(const vctIntVec &bits)
vctDoubleVec mPotVoltage
Definition: osaRobot1394.h:290
vctDoubleVec mBitsToVoltageScales
Definition: osaRobot1394.h:216
void EncoderBitsToVelocity(const vctIntVec &bits, vctDoubleVec &vel) const
const vctDoubleVec & EncoderPosition(void) const
std::vector< osaBrakeMapping > mBrakeInfo
Definition: osaRobot1394.h:194
bool mValid
State Members.
Definition: osaRobot1394.h:254
vctDoubleVec mActuatorEffortFeedback
Definition: osaRobot1394.h:290
vctDoubleVec mActuatorCurrentCommandLimits
Definition: osaRobot1394.h:239
vctDoubleVec mActuatorCurrentCommand
Definition: osaRobot1394.h:290
const vctBoolVec & ActuatorPowerStatus(void) const
vctDoubleVec mVoltageToPositionOffsets
Definition: osaRobot1394.h:216
Definition: osaConfiguration1394.h:105
void SetBoards(const std::vector< osaActuatorMapping > &actuatorBoards, const std::vector< osaBrakeMapping > &brakeBoards)
vctIntVec mActuatorCurrentBitsCommand
Definition: osaRobot1394.h:284
bool mPreviousWatchdogStatus
Definition: osaRobot1394.h:254
vctDoubleVec mEncoderDTime
Definition: osaRobot1394.h:290
vctBoolVec mBrakePowerEnabled
Definition: osaRobot1394.h:264
void DisableBoardPower(void)
void SetActuatorEffort(const vctDoubleVec &efforts)
size_t mSerialNumber
Definition: osaRobot1394.h:205
vctIntVec mActuatorCurrentBitsFeedback
Definition: osaRobot1394.h:284
vctDoubleVec mEncoderVelocitySoftware
Definition: osaRobot1394.h:290
osaPot1394Location mPotType
Definition: osaRobot1394.h:249
vctDoubleVec mBrakeEngagedCurrent
Definition: osaRobot1394.h:290
void GetActuatorEffortCommandLimits(vctDoubleVec &limits) const
bool mPowerStatus
Definition: osaRobot1394.h:254
void Configure(const osaRobot1394Configuration &config)
void CalibrateEncoderOffsetsFromPots(void)
void ClipActuatorCurrent(vctDoubleVec ¤ts)
vctIntVec mBrakeCurrentBitsCommand
Definition: osaRobot1394.h:284
void SetActuatorCurrent(const vctDoubleVec ¤ts)
size_t mNumberOfBrakes
Definition: osaRobot1394.h:204
vctDoubleVec mBitsToPositionOffsets
Definition: osaRobot1394.h:216
vctDoubleVec mEncoderPositionPrev
Definition: osaRobot1394.h:290
std::map< int, AmpIO * >::iterator unique_board_iterator
Definition: osaRobot1394.h:196
void EncoderBitsToPosition(const vctIntVec &bits, vctDoubleVec &pos) const
bool WatchdogStatus(void) const
void SetActuatorCurrentBits(const vctIntVec &bits)
bool mIsAllBoardsFirmWareFour
Definition: osaRobot1394.h:254
vctDoubleVec mBrakeTimestamp
Definition: osaRobot1394.h:290
void EnablePower(void)
Power / Safety Control.
osaRobot1394Configuration GetConfiguration(void) const
void SetJointEffort(const vctDoubleVec &efforts)
Actuator Control.
vctIntVec mBrakeCurrentBitsFeedback
Definition: osaRobot1394.h:284
vctBoolVec mActuatorPowerEnabled
Definition: osaRobot1394.h:264
void PotBitsToVoltage(const vctIntVec &bits, vctDoubleVec &voltages) const
Conversions for potentiometers.
std::string Name(void) const
vctDoubleVec mBrakeReleasedCurrent
Definition: osaRobot1394.h:290
static const size_t WATCHDOG_MS_TO_COUNT
Watchdog counts per ms (note counter width, e.g. 16 bits)
Definition: osaRobot1394.h:52
const vctBoolVec & BrakePowerStatus(void) const
const vctDoubleVec & EncoderVelocitySoftware(void) const
void SetBrakePower(const bool &enabled)
void ActuatorCurrentToEffort(const vctDoubleVec ¤ts, vctDoubleVec &efforts) const
vctDoubleVec mBrakeReleaseCurrent
Definition: osaRobot1394.h:290
void BrakeCurrentToBits(const vctDoubleVec ¤ts, vctIntVec &bits) const
Conversions for brake commands.
vctBoolVec mActuatorPowerStatus
Definition: osaRobot1394.h:264
void GetJointEffortCommandLimits(vctDoubleVec &limits) const
size_t NumberOfJoints(void) const
vctDoubleVec mBrakeReleaseTime
Definition: osaRobot1394.h:290
vctDoubleVec mBrakeCurrentFeedbackLimits
Definition: osaRobot1394.h:239
vctDoubleVec mVelocitySlopeToZero
Definition: osaRobot1394.h:290
void ActuatorEffortToCurrent(const vctDoubleVec &efforts, vctDoubleVec ¤ts) const
Conversions for actuator current commands and measurements.
size_t mNumberOfJoints
Definition: osaRobot1394.h:203
vctIntVec mEncoderPositionBitsPrev
Definition: osaRobot1394.h:275
size_t SerialNumber(void) const
vctBoolVec mBrakePowerStatus
Definition: osaRobot1394.h:264
void EncoderBitsToDPosition(const vctIntVec &bits, vctDoubleVec &dpos) const
vctDoubleVec mActuatorTimestampChange
Definition: osaRobot1394.h:290
const vctDoubleVec & BrakeCurrentFeedback(void) const
void SetPotsToEncodersTolerance(const vctDoubleVec &tolerances)
void EncoderPositionToBits(const vctDoubleVec &pos, vctIntVec &bits) const
Conversions for encoders.
void ClipActuatorEffort(vctDoubleVec &efforts)
void BrakeBitsToCurrent(const vctIntVec &bits, vctDoubleVec ¤ts) const
const vctDoubleVec & EncoderVelocity(void) const
void ActuatorBitsToCurrent(const vctIntVec &bits, vctDoubleVec ¤ts) const
vctDoubleVec mJointEffortCommandLimits
Definition: osaRobot1394.h:239
void SetBrakeCurrent(const vctDoubleVec ¤ts)
Brake Control.
vctDoubleVec mActuatorCurrentToBitsOffsets
Definition: osaRobot1394.h:216
size_t NumberOfActuators(void) const
void EncoderBitsToDTime(const vctIntVec &bits, vctDoubleVec &dt) const
vctIntVec mEncoderDPositionBits
Definition: osaRobot1394.h:275
vctBoolVec mPreviousEncoderOverflow
Definition: osaRobot1394.h:264
const vctDoubleVec & ActuatorCurrentFeedback(void) const
vctIntVec mPotBits
Definition: osaRobot1394.h:275
std::vector< osaActuatorMapping > mActuatorInfo
Board Objects.
Definition: osaRobot1394.h:193
vctDoubleVec mBitsToVecocityScales
Definition: osaRobot1394.h:216
bool mUsePotsForSafetyCheck
Definition: osaRobot1394.h:250
vctBoolVec mDigitalInputs
Definition: osaRobot1394.h:264
vctDoubleVec mActuatorCurrentFeedbackLimits
Definition: osaRobot1394.h:239
vctIntVec mCountsPerTurn
Vectors of actuator properties.
Definition: osaRobot1394.h:213
size_t mCurrentSafetyViolationsCounter
Definition: osaRobot1394.h:321
vctDoubleVec mActuatorCurrentFeedback
Definition: osaRobot1394.h:290
void SetWatchdogPeriod(const double &periodInSeconds)
vctDoubleVec mActuatorCurrentToBitsScales
Definition: osaRobot1394.h:216
osaPot1394Location
Defines where the potentiometers are positioned, if any.
Definition: osaConfiguration1394.h:51
osaRobot1394Configuration mConfiguration
Robot Configuration.
Definition: osaRobot1394.h:200
Definition: osaRobot1394.h:48
std::string mName
Definition: osaRobot1394.h:201
vctDoubleVec mPotsToEncodersTolerance
Definition: osaRobot1394.h:239
vctDoubleVec mBrakeBitsToCurrentOffsets
Definition: osaRobot1394.h:216
vctBoolVec mEncoderChannelsA
Definition: osaRobot1394.h:264
bool mPreviousPowerStatus
Definition: osaRobot1394.h:254
vctDoubleVec mEncoderVelocity
Definition: osaRobot1394.h:290
vctDoubleVec mBrakeBitsToCurrentScales
Definition: osaRobot1394.h:216
vctDoubleVec mBitsToDTimeScales
Definition: osaRobot1394.h:216
vctDoubleVec mBrakeCurrentCommandLimits
Definition: osaRobot1394.h:239
vctDoubleVec mBitsToVelocityOffsets
Definition: osaRobot1394.h:216
vctDoubleVec mVoltageToPositionScales
Definition: osaRobot1394.h:216
vctDoubleVec mBrakeCurrentToBitsOffsets
Definition: osaRobot1394.h:216
const vctDoubleVec & ActuatorTimeStamp(void) const
vctDoubleVec mBrakeCurrentToBitsScales
Definition: osaRobot1394.h:216
vctIntVec mEncoderDTimeBits
Definition: osaRobot1394.h:275
bool PowerStatus(void) const
void PotVoltageToPosition(const vctDoubleVec &voltages, vctDoubleVec &pos) const
void UsePotsForSafetyCheck(const bool &usePotsForSafetyCheck)
Use potentiometers for safety.
vctBoolVec mPotsToEncodersErrorFlag
Definition: osaRobot1394.h:264
void GetActuatorCurrentCommandLimits(vctDoubleVec &limits) const
size_t mPotsToEncodersViolationsCounter
Definition: osaRobot1394.h:325
vctDoubleVec mActuatorEffortCommand
Definition: osaRobot1394.h:290
vctDoubleVec mBitsToDTimeOffsets
Definition: osaRobot1394.h:216
osaRobot1394(const osaRobot1394Configuration &config, const size_t maxConsecutiveCurrentSafetyViolations=100, const size_t maxConsecutivePotsToEncodersViolations=200)
vctDoubleVec mBitsToDPositionScales
Definition: osaRobot1394.h:216
void WriteSafetyRelay(const bool &enabled)