DUNE: Uniform Navigational Environment  2019.02.1
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
 
std::string m_report
 
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.

void Monitors::Collisions::Task::consume ( const IMC::EstimatedState *  msg)
inline
void Monitors::Collisions::Task::consume ( const IMC::Brake *  msg)
inline
void Monitors::Collisions::Task::consume ( const IMC::Rpm *  msg)
inline
void Monitors::Collisions::Task::consume ( const IMC::VehicleMedium *  msg)
inline
bool Monitors::Collisions::Task::ignore ( void  )
inline

Check if the collision should be ignored.

Returns
true if collision should be ignored, false otherwise.

References Monitors::Collisions::Arguments::min_depth.

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

Member Data Documentation

Arguments Monitors::Collisions::Task::m_args

Task arguments.

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

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

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

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

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

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

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

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

bool Monitors::Collisions::Task::m_braking

True if braking.

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

Collision detected.

float Monitors::Collisions::Task::m_depth

Depth value.

unsigned Monitors::Collisions::Task::m_device_eid

Device entity id.

std::string Monitors::Collisions::Task::m_report

Collision report.

int Monitors::Collisions::Task::m_rpms

Motor's rpms.

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

Time to wait to check collisions once out of ground.

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

Collision message report period.

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

Time window to remain in error mode after colliding.

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