Class CObservationGasSensors
Defined in File CObservationGasSensors.h
Nested Relationships
Nested Types
Inheritance Relationships
Base Type
public mrpt::obs::CObservation(Class CObservation)
Class Documentation
-
class CObservationGasSensors : public mrpt::obs::CObservation
Declares a class derived from “CObservation” that represents a set of readings from gas sensors.
See also
Public Functions
-
CObservationGasSensors()
Constructor.
-
virtual void getSensorPose(mrpt::poses::CPose3D &out_sensorPose) const override
A general method to retrieve the sensor pose on the robot. Note that most sensors will return a full (6D) CPose3D, but see the derived classes for more details or special cases.
See also
-
virtual void setSensorPose(const mrpt::poses::CPose3D &newSensorPose) override
A general method to change the sensor pose on the robot. Note that most sensors will use the full (6D) CPose3D, but see the derived classes for more details or special cases.
See also
-
virtual void getDescriptionAsText(std::ostream &o) const override
Build a detailed, multi-line textual description of the observation contents and dump it to the output stream.
Note
If overried by derived classes, call base CObservation::getDescriptionAsText() first to show common information.
Note
This is the text that appears in RawLogViewer when selecting an object in the dataset
Public Members
-
std::vector<TObservationENose> m_readings
One entry per e-nose on the robot
-
class CMOSmodel
Declares a class within “CObservationGasSensors” that represents a set of gas concentration readings from the modelation of a MOS gas sensor readings. This class provides the parameters and functions to simulate the inverse model of a MOS gas sensor.
See also
MOS-model parameters
-
size_t winNoise_size = {30}
The size of the mobile average window used to reduce noise on sensor reagings.
-
int decimate_value = {6}
[useMOSmodel] The decimate frecuency applied after noise filtering
-
float a_rise = {0}
tau = a*AMPLITUDE +b (linear relationship)
-
float b_rise = {0}
tau = a*AMPLITUDE +b (linear relationship)
-
float a_decay = {0}
tau = a*AMPLITUDE +b (linear relationship)
-
float b_decay = {0}
tau = a*AMPLITUDE +b (linear relationship)
-
bool save_maplog = {false}
If true save generated gas map as a log file
Public Functions
-
bool get_GasDistribution_estimation(float &reading, mrpt::system::TTimeStamp ×tamp)
Obtain an estimation of the gas distribution based on raw sensor readings
Protected Functions
-
void inverse_MOSmodeling(float reading, const mrpt::system::TTimeStamp ×tamp)
Estimates the gas concentration based on readings and sensor model
-
void noise_filtering(float reading, const mrpt::system::TTimeStamp ×tamp)
Reduce noise by averaging with a mobile window of specific size (winNoise_size)
-
void save_log_map(const mrpt::system::TTimeStamp ×tamp, float reading, float estimation, float tau)
Save the gas distribution estiamtion into a log file for offline representation
Protected Attributes
-
TdataMap last_Obs
The content of each m_lastObservations in the estimation when using the option : MOS_MODEl (useMOSmodel =1)
-
std::vector<TdataMap> m_antiNoise_window
Vector to temporally store and averge readings to reduce noise
-
std::ofstream *m_debug_dump = {nullptr}
Ofstream to save to file option “save_maplog”
-
uint16_t decimate_count = {1}
Decimate value for oversampled enose readings
-
double fixed_incT = {0}
To force e-nose samples to have fixed time increments
-
bool first_incT = {true}
To force e-nose samples to have fixed time increments
-
float min_reading = {10}
Minimum reading value till the moment, used as approximation to baeline level
-
bool first_iteration = {true}
To avoid the model estimation on first iteration
-
struct TdataMap
The content of each m_lastObservations in the estimation when using the option : MOS_MODEl (useMOSmodel =1)
-
size_t winNoise_size = {30}
-
struct TObservationENose
The structure for each e-nose
Public Functions
-
inline TObservationENose()
Public Members
-
math::TPose3D eNosePoseOnTheRobot
The pose of the sensors on the robot
-
std::vector<float> readingsVoltage
The set of readings (in volts) from the array of sensors (size of “sensorTypes” is the same that the size of “readingsVoltage”)
-
std::vector<int> sensorTypes
The kind of sensors in the array (size of “sensorTypes” is the same that the size of “readingsVoltage”) The meaning of values for types of sensors is as follows: 0x0000 : No sensor installed in this slot 0x2600 : Figaro TGS 2600 0x2602 : Figaro TGS 2602 0x2620 : Figaro TGS 2620 0x4161 : Figaro TGS 4161
-
bool hasTemperature = {false}
Must be true for “temperature” to contain a valid measurement
-
float temperature = {0}
Sensed temperature in Celcius (valid if hasTemperature=true only)
-
bool isActive
True if the input to this chamber/enose is poluted air, False if clean air
-
inline TObservationENose()
-
CObservationGasSensors()