DUNE: Uniform Navigational Environment
2.4.2
|
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 | ignoreCollision (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 |
IMC::Collision | m_collision |
IMC::VehicleMedium | m_vm |
unsigned | m_device_eid |
float | m_depth |
bool | m_braking |
int | m_rpms |
Arguments | m_args |
|
inline |
References Monitors::Collisions::Arguments::avg_samples_abs, Monitors::Collisions::Arguments::avg_samples_innov, Monitors::Collisions::Arguments::elabel_device, Monitors::Collisions::Arguments::k_std, m_args, Monitors::Collisions::Arguments::max_x, Monitors::Collisions::Arguments::max_z, Monitors::Collisions::Arguments::min_depth, Monitors::Collisions::Arguments::min_std, and Monitors::Collisions::Arguments::t_error.
|
inline |
This routine is called when a collision is detected.
References ignoreCollision(), m_collision, and m_twindow.
Referenced by consume().
|
inline |
References collided(), Monitors::Collisions::Arguments::k_std, m_args, m_avg_x_abs, m_avg_x_innov, m_avg_z_abs, m_avg_z_innov, m_collision, m_device_eid, m_vm, Monitors::Collisions::Arguments::max_x, Monitors::Collisions::Arguments::max_z, Monitors::Collisions::Arguments::min_std, DUNE::Math::MovingAverage< T >::stdev(), and DUNE::Math::MovingAverage< T >::update().
|
inline |
References m_depth.
|
inline |
References m_braking.
|
inline |
References m_rpms.
|
inline |
References m_vm.
|
inline |
Check if the collision should be ignored.
References m_args, m_braking, m_depth, m_rpms, and Monitors::Collisions::Arguments::min_depth.
Referenced by collided().
|
inline |
References Monitors::Collisions::Arguments::elabel_device, m_args, and m_device_eid.
|
inline |
References m_twindow.
|
inline |
|
inline |
References m_avg_x_abs, m_avg_x_innov, m_avg_z_abs, and m_avg_z_innov.
|
inline |
Arguments Monitors::Collisions::Task::m_args |
Task arguments.
Referenced by consume(), ignoreCollision(), onEntityResolution(), onResourceInitialization(), onUpdateParameters(), and Task().
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 ignoreCollision().
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 ignoreCollision().
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 ignoreCollision().
Time::Counter<double> Monitors::Collisions::Task::m_twindow |
Time window to remain in error mode after colliding.
Referenced by collided(), onMain(), and onUpdateParameters().