DUNE: Uniform Navigational Environment  2017.01.0
Monitors::Collisions::Task Struct Reference

Detailed Description

Collisions task.

Public Member Functions

 Task (const std::string &name, Tasks::Context &ctx)
 
void onUpdateParameters (void)
 
void onResourceInitialization (void)
 
void onEntityResolution (void)
 
void onResourceRelease (void)
 
void consume (const IMC::Acceleration *msg)
 
void consume (const IMC::EstimatedState *msg)
 
void consume (const IMC::Brake *msg)
 
void consume (const IMC::Rpm *msg)
 
void consume (const IMC::VehicleMedium *msg)
 
bool ignore (void)
 
void collided (void)
 
void onMain (void)
 

Public Attributes

MovingAverage< double > * m_avg_x_innov
 
MovingAverage< double > * m_avg_z_innov
 
MovingAverage< double > * m_avg_x_abs
 
MovingAverage< double > * m_avg_z_abs
 
Time::Counter< double > m_twindow
 
Time::Counter< double > m_treport
 
Time::Counter< double > m_tground
 
IMC::Collision m_collision
 
unsigned m_device_eid
 
float m_depth
 
bool m_braking
 
int m_rpms
 
Arguments m_args
 

Constructor & Destructor Documentation

Member Function Documentation

void Monitors::Collisions::Task::collided ( void  )
inline

This routine is called when a collision is detected.

References ignore(), m_collision, m_treport, and m_twindow.

Referenced by consume().

void Monitors::Collisions::Task::consume ( const IMC::EstimatedState *  msg)
inline

References m_depth.

void Monitors::Collisions::Task::consume ( const IMC::Brake *  msg)
inline

References m_braking.

void Monitors::Collisions::Task::consume ( const IMC::Rpm *  msg)
inline

References m_rpms.

void Monitors::Collisions::Task::consume ( const IMC::VehicleMedium *  msg)
inline

References m_tground.

bool Monitors::Collisions::Task::ignore ( void  )
inline

Check if the collision should be ignored.

Returns
true if collision should be ignored, false otherwise.

References m_args, m_braking, m_depth, m_rpms, m_tground, and Monitors::Collisions::Arguments::min_depth.

Referenced by collided().

void Monitors::Collisions::Task::onEntityResolution ( void  )
inline
void Monitors::Collisions::Task::onMain ( void  )
inline

References m_twindow.

void Monitors::Collisions::Task::onResourceInitialization ( void  )
inline
void Monitors::Collisions::Task::onResourceRelease ( void  )
inline

Member Data Documentation

Arguments Monitors::Collisions::Task::m_args
MovingAverage<double>* Monitors::Collisions::Task::m_avg_x_abs

Accelerations along x-axis moving average for absolute limits threshold checking.

Referenced by consume(), onResourceInitialization(), and onResourceRelease().

MovingAverage<double>* Monitors::Collisions::Task::m_avg_x_innov

Accelerations along x-axis moving average for innovation limits threshold checking.

Referenced by consume(), onResourceInitialization(), and onResourceRelease().

MovingAverage<double>* Monitors::Collisions::Task::m_avg_z_abs

Accelerations along z-axis moving average for absolute limits threshold checking.

Referenced by consume(), onResourceInitialization(), and onResourceRelease().

MovingAverage<double>* Monitors::Collisions::Task::m_avg_z_innov

Accelerations along z-axis moving average for innovation limits threshold checking.

Referenced by consume(), onResourceInitialization(), and onResourceRelease().

bool Monitors::Collisions::Task::m_braking

True if braking.

Referenced by consume(), and ignore().

IMC::Collision Monitors::Collisions::Task::m_collision

Collision detected.

Referenced by collided(), and consume().

float Monitors::Collisions::Task::m_depth

Depth value.

Referenced by consume(), and ignore().

unsigned Monitors::Collisions::Task::m_device_eid

Device entity id.

Referenced by consume(), and onEntityResolution().

int Monitors::Collisions::Task::m_rpms

Motor's rpms.

Referenced by consume(), and ignore().

Time::Counter<double> Monitors::Collisions::Task::m_tground

Time to wait to check collisions once out of ground.

Referenced by consume(), ignore(), and onResourceInitialization().

Time::Counter<double> Monitors::Collisions::Task::m_treport

Collision message report period.

Referenced by collided(), and onUpdateParameters().

Time::Counter<double> Monitors::Collisions::Task::m_twindow

Time window to remain in error mode after colliding.

Referenced by collided(), onMain(), and onUpdateParameters().

Collaboration diagram for Monitors::Collisions::Task:
Collaboration graph