Laelaps  2.3.5
RoadNarrows Robotics Small Outdoor Mobile Robot Project
laelaps::LaeRptRobotStatus Class Reference

Robot global status report. More...

#include <laeReports.h>

Public Types

typedef std::vector< LaeRptMotorHealthVecMotorHealth
 
typedef std::vector< LaeRptMotorCtlrHealthVecMotorCtlrHealth
 

Public Member Functions

 LaeRptRobotStatus ()
 Default constructor.
 
 LaeRptRobotStatus (const LaeRptRobotStatus &src)
 Copy constructor.
 
 ~LaeRptRobotStatus ()
 Destructor.
 
LaeRptRobotStatus operator= (const LaeRptRobotStatus &rhs)
 Assignment operator. More...
 
void clear ()
 Clear report.
 
void generate (LaeRobot *pRobot)
 Generate report. More...
 

Public Attributes

LaeRobotMode m_eRobotMode
 robot operating mode
 
LaeTriState m_eIsEStopped
 robot is [not] emergency stopped
 
LaeTriState m_eAreDrivesPowered
 motor are [not] powered
 
LaeTriState m_eIsMotionPossible
 motion is [not] possible
 
LaeTriState m_eIsInMotion
 robot is [not] moving
 
LaeTriState m_eIsInError
 robot is [not] in error condition
 
int m_nErrorCode
 laelaps error code
 
double m_fBatterySoC
 battery state of charge (0%-100%)
 
bool m_bIsCharging
 battery is [not] being charged
 
double m_fCurrent
 estimated robot draw (A)
 
double m_fVoltage
 average battery voltage (V)
 
double m_fTemperature
 interior average temperature (C)
 
LaeTriState m_eAuxBattEn
 auxilliary battery power enable
 
LaeTriState m_eAux5VEn
 auxilliary 5V power enable
 
LaeAlarmInfo m_alarms
 system alarms and warnings
 
VecMotorCtlrHealth m_vecCtlrHealth
 motors controllers' health
 
VecMotorHealth m_vecMotorHealth
 motors' health
 

Detailed Description

Robot global status report.

Definition at line 163 of file laeReports.h.

Member Function Documentation

void LaeRptRobotStatus::generate ( LaeRobot pRobot)

Generate report.

Parameters
pRobotPointer to the robot.

Definition at line 221 of file laeReports.cxx.

References laelaps::LaeRobot::canMove(), laelaps::LaeKinematics::getPlatform(), laelaps::LaeKinematics::getPowertrainMap(), laelaps::LaeRptMotorCtlrHealth::m_alarms, laelaps::LaeRptMotorHealth::m_alarms, laelaps::LaePowertrain::m_attr, laelaps::LaePlatform::m_ctlr, laelaps::LaeMotorCtlrState::m_fBoardTemp, laelaps::LaeMotorCtlrState::m_fMainVolts, laelaps::LaePowertrainState::m_fTemp, laelaps::LaeRptMotorCtlrHealth::m_fTemperature, laelaps::LaeRptMotorHealth::m_fTemperature, laelaps::LaeRptMotorCtlrHealth::m_fVoltage, laelaps::LaeRptMotorHealth::m_fVoltage, laelaps::LaePowertrainState::m_fVolts, laelaps::LaeRobot::m_kin, laelaps::LaePowertrainAttr::m_nMotorId, laelaps::LaePowertrain::m_state, laelaps::LaeMotorCtlrState::m_strName, laelaps::LaeRptMotorCtlrHealth::m_strName, laelaps::LaeRptMotorHealth::m_strName, and laelaps::LaePowertrain::m_strName.

Referenced by laelaps::LaeRobot::getRobotStatus().

222 {
223  // ---
224  // ROS Industrial
225  // ---
233 
234  // alarmed state
236  {
240  }
241 
242  // unalarmed state
243  else
244  {
247  }
248 
250 
251  // ---
252  // Robot extended status
253  // ---
258 
264 
266 
267  LaePlatform &base = pRobot->m_kin.getPlatform();
268 
269  //
270  // Motor controller health extended status
271  //
272  for(int nCtlr = 0; nCtlr < LaeNumMotorCtlrs; ++nCtlr)
273  {
274  LaeRptMotorCtlrHealth ctlrHealth;
275 
276  ctlrHealth.m_strName = base.m_ctlr[nCtlr].m_strName;
277  ctlrHealth.m_fTemperature = base.m_ctlr[nCtlr].m_fBoardTemp;
278  ctlrHealth.m_fVoltage = base.m_ctlr[nCtlr].m_fMainVolts;
280  ctlrHealth.m_alarms);
281 
282  m_vecCtlrHealth.push_back(ctlrHealth);
283  }
284 
285  //
286  // Motor health extended status
287  //
288  LaeMapPowertrain::iterator iter; // kinematic chain iterator
289  LaeMapPowertrain &mapPowertrains = pRobot->m_kin.getPowertrainMap();
290 
291  for(iter = mapPowertrains.begin(); iter != mapPowertrains.end(); ++iter)
292  {
293  LaeRptMotorHealth motorHealth;
294  LaePowertrain &train = iter->second;
295  int nMotorId = train.m_attr.m_nMotorId;
296 
297  motorHealth.m_strName = train.m_strName;
298  motorHealth.m_fTemperature = train.m_state.m_fTemp;
299  motorHealth.m_fVoltage = train.m_state.m_fVolts;
301  motorHealth.m_alarms);
302 
303  m_vecMotorHealth.push_back(motorHealth);
304  }
305 }
double m_fVoltage
motor controller main input voltage (V)
Definition: laeReports.h:81
std::string m_strName
motor controller name
Definition: laePlatform.h:78
double m_fBatterySoC
battery state of charge (0%-100%)
Definition: laeReports.h:179
Robot motor health.
Definition: laeReports.h:76
double m_fTemp
motor temperature (C)
double m_fBatteryVoltage
sensed battery subsystem voltage (V)
Definition: laeDb.h:201
LaeTriState m_eIsInMotion
robot is [not] moving
Definition: laeReports.h:174
static void copyAlarms(const LaeAlarmInfo &src, LaeAlarmInfo &dst)
Copy alarm state.
Definition: laeAlarms.cxx:362
double m_fTemperature
motor controller board temperature (C)
Definition: laeReports.h:80
LaeDbRobotStatus m_robotstatus
robot status data
Definition: laeDb.h:229
std::string m_strName
powertrain unique name (key)
double m_fBatterySoC
estimated battery state of charge (%)
Definition: laeDb.h:202
bool canMove()
Test if robot is safe to operate, given the current robot and alarm state.
Definition: laeRobot.cxx:807
bool m_bBatteryIsCharging
batteries are [not] being charged
Definition: laeDb.h:199
LaeTriState m_eIsInError
robot is [not] in error condition
Definition: laeReports.h:175
LaeAlarmInfo m_alarms
motor alarms and warnings
Definition: laeReports.h:126
LaeDb RtDb
The real-time database.
Definition: laeDb.h:244
double m_fBoardTemp
average sensed interior tempature (C)
Definition: laePlatform.h:80
VecMotorCtlrHealth m_vecCtlrHealth
motors controllers&#39; health
Definition: laeReports.h:189
static const int LAE_ECODE_ESTOP
robot emergency stopped
Definition: laelaps.h:96
LaeAlarmInfo m_system
system alarm summary state
Definition: laeDb.h:212
LaeTriState m_eIsMotionPossible
motion is [not] possible
Definition: laeReports.h:173
bool m_bAuxPortBatt
battery auxilliary port [not] enabled
Definition: laeDb.h:122
LaeTriState m_eAux5VEn
auxilliary 5V power enable
Definition: laeReports.h:185
LaeRobotMode m_eRobotMode
robot operating mode
Definition: laeDb.h:108
double m_fVoltage
average battery voltage (V)
Definition: laeReports.h:182
double m_fVoltage
motor voltage (volts)
Definition: laeReports.h:124
double m_fTotalCurrent
estimated total system current draw (A)
Definition: laeDb.h:203
LaePowertrainAttr m_attr
semi-fixed attribute data
LaeDbEnable m_enable
key gpio state data
Definition: laeDb.h:230
Robot motor health.
Definition: laeReports.h:119
LaeMapPowertrain & getPowertrainMap()
Get map of all powertrain kinodynamics.
Definition: laeKin.h:247
bool m_bInMotion
1+ motors are [not] moving
Definition: laeDb.h:112
LaeDbEnergy m_energy
battery and energy data
Definition: laeDb.h:237
double m_fVolts
input motor voltage (V)
static const int LAE_ECODE_ALARMED
robot is alarmed
Definition: laelaps.h:93
std::map< std::string, LaePowertrain > LaeMapPowertrain
Map of powertrain kinodynamics.
double m_fCurrent
estimated robot draw (A)
Definition: laeReports.h:181
std::string m_strName
motor controller name
Definition: laeReports.h:79
bool m_bIsEStopped
robot is [not] emergency stopped
Definition: laeDb.h:109
LaeTriState m_eIsEStopped
robot is [not] emergency stopped
Definition: laeReports.h:171
double m_fTemperature
motor temperature (Celsius)
Definition: laeReports.h:123
double m_fMainVolts
average sensed battery voltage (V)
Definition: laePlatform.h:79
LaeAlarmInfo m_alarms
motor controller alarms and warnings
Definition: laeReports.h:82
LaePlatform & getPlatform()
Get robot platform kinodynamics.
Definition: laeKin.h:226
LaeAlarmInfo m_motorctlr[LaeNumMotorCtlrs]
motor contollers subsytem state
Definition: laeDb.h:214
LaeRobotMode m_eRobotMode
robot operating mode
Definition: laeReports.h:170
static const int LaeNumMotorCtlrs
number of motor controllers
Definition: laeMotor.h:115
LaeAlarmInfo m_alarms
system alarms and warnings
Definition: laeReports.h:186
LaePowertrainState m_state
dynamic state data
VecMotorHealth m_vecMotorHealth
motors&#39; health
Definition: laeReports.h:190
LaeDbAlarms m_alarms
alarm state data
Definition: laeDb.h:238
bool m_bAuxPort5v
5 volt auxilliary port [not] enabled
Definition: laeDb.h:123
double m_fTempAvg
average interior temperature
Definition: laeDb.h:113
LaeKinematics m_kin
robot base dynamics and kinematics
Definition: laeRobot.h:665
bool m_bAlarmState
robot is [not] alarmed
Definition: laeDb.h:110
int m_nErrorCode
laelaps error code
Definition: laeReports.h:176
LaeMotorCtlrState m_ctlr[LaeNumMotorCtlrs]
motor controllers&#39; state
Definition: laePlatform.h:161
bool m_bAreMotorsPowered
robot motors are [not] driven
Definition: laeDb.h:111
double m_fTemperature
interior average temperature (C)
Definition: laeReports.h:183
LaeTriState m_eAreDrivesPowered
motor are [not] powered
Definition: laeReports.h:172
std::string m_strName
motor name
Definition: laeReports.h:122
LaeAlarmInfo m_motor[LaeMotorsNumOf]
motors subsytem state
Definition: laeDb.h:216
Powertrain data class.
LaeTriState m_eAuxBattEn
auxilliary battery power enable
Definition: laeReports.h:184
bool m_bIsCharging
battery is [not] being charged
Definition: laeReports.h:180
static const int LAE_OK
not an error, success
Definition: laelaps.h:71
Robot platform control and state data class.
Definition: laePlatform.h:127
LaeRptRobotStatus LaeRptRobotStatus::operator= ( const LaeRptRobotStatus rhs)

Assignment operator.

Parameters
rhsRight hand side object.
Returns
Returns copy of this.

Definition at line 167 of file laeReports.cxx.

References m_alarms, m_bIsCharging, m_eAreDrivesPowered, m_eAux5VEn, m_eAuxBattEn, m_eIsEStopped, m_eIsInError, m_eIsInMotion, m_eIsMotionPossible, m_eRobotMode, m_fBatterySoC, m_fCurrent, m_fTemperature, m_fVoltage, m_nErrorCode, m_vecCtlrHealth, and m_vecMotorHealth.

168 {
169  // standard ROS industrial
177 
178  // robot base extensions
181  m_fCurrent = rhs.m_fCurrent;
182  m_fVoltage = rhs.m_fVoltage;
185  m_eAux5VEn = rhs.m_eAux5VEn;
187 
188  // motor extensions
191 
192  return *this;
193 }
double m_fBatterySoC
battery state of charge (0%-100%)
Definition: laeReports.h:179
LaeTriState m_eIsInMotion
robot is [not] moving
Definition: laeReports.h:174
static void copyAlarms(const LaeAlarmInfo &src, LaeAlarmInfo &dst)
Copy alarm state.
Definition: laeAlarms.cxx:362
LaeTriState m_eIsInError
robot is [not] in error condition
Definition: laeReports.h:175
VecMotorCtlrHealth m_vecCtlrHealth
motors controllers&#39; health
Definition: laeReports.h:189
LaeTriState m_eIsMotionPossible
motion is [not] possible
Definition: laeReports.h:173
LaeTriState m_eAux5VEn
auxilliary 5V power enable
Definition: laeReports.h:185
double m_fVoltage
average battery voltage (V)
Definition: laeReports.h:182
double m_fCurrent
estimated robot draw (A)
Definition: laeReports.h:181
LaeTriState m_eIsEStopped
robot is [not] emergency stopped
Definition: laeReports.h:171
LaeRobotMode m_eRobotMode
robot operating mode
Definition: laeReports.h:170
LaeAlarmInfo m_alarms
system alarms and warnings
Definition: laeReports.h:186
VecMotorHealth m_vecMotorHealth
motors&#39; health
Definition: laeReports.h:190
int m_nErrorCode
laelaps error code
Definition: laeReports.h:176
double m_fTemperature
interior average temperature (C)
Definition: laeReports.h:183
LaeTriState m_eAreDrivesPowered
motor are [not] powered
Definition: laeReports.h:172
LaeTriState m_eAuxBattEn
auxilliary battery power enable
Definition: laeReports.h:184
bool m_bIsCharging
battery is [not] being charged
Definition: laeReports.h:180

The documentation for this class was generated from the following files: