The AbstractRecoveryExecution class loads and binds the recovery behavior plugin. It contains a thread running the plugin, executing the recovery behavior. An internal state is saved and will be pulled by the server, which controls the recovery behavior execution. Due to a state change it wakes up all threads connected to the condition variable. More...
#include <abstract_recovery_execution.h>
Public Types | |
typedef boost::shared_ptr< AbstractRecoveryExecution > | Ptr |
enum | RecoveryState { INITIALIZED, STARTED, RECOVERING, WRONG_NAME, RECOVERY_DONE, CANCELED, STOPPED, INTERNAL_ERROR } |
internal state. More... | |
Public Member Functions | |
AbstractRecoveryExecution (const std::string &name, const mbf_abstract_core::AbstractRecovery::Ptr &recovery_ptr, const TFPtr &tf_listener_ptr, const MoveBaseFlexConfig &config) | |
Constructor. More... | |
virtual bool | cancel () |
Cancel the planner execution. This calls the cancel method of the planner plugin. This could be useful if the computation takes too much time, or if we are aborting the navigation. More... | |
AbstractRecoveryExecution::RecoveryState | getState () |
Returns the current state, thread-safe communication. More... | |
bool | isPatienceExceeded () |
Checks whether the patience was exceeded. More... | |
void | reconfigure (const MoveBaseFlexConfig &config) |
Reconfigures the current configuration and reloads all parameters. This method is called from a dynamic reconfigure tool. More... | |
virtual | ~AbstractRecoveryExecution () |
Destructor. More... | |
Public Member Functions inherited from mbf_abstract_nav::AbstractExecutionBase | |
AbstractExecutionBase (const std::string &name) | |
const std::string & | getMessage () const |
Gets the current plugin execution message. More... | |
const std::string & | getName () const |
Returns the name of the corresponding plugin. More... | |
uint32_t | getOutcome () const |
Gets the current plugin execution outcome. More... | |
void | join () |
virtual void | postRun () |
Optional implementation-specific cleanup function, called right after execution. More... | |
virtual void | preRun () |
Optional implementation-specific setup function, called right before execution. More... | |
virtual void | reconfigure (MoveBaseFlexConfig &_cfg) |
Optional implementaiton-specific configuration function. More... | |
virtual bool | start () |
virtual void | stop () |
boost::cv_status | waitForStateUpdate (boost::chrono::microseconds const &duration) |
virtual | ~AbstractExecutionBase () |
Protected Member Functions | |
virtual void | run () |
Main execution method which will be executed by the recovery execution thread_. More... | |
Protected Attributes | |
mbf_abstract_core::AbstractRecovery::Ptr | behavior_ |
the current loaded recovery behavior More... | |
const TFPtr | tf_listener_ptr_ |
shared pointer to common TransformListener More... | |
Protected Attributes inherited from mbf_abstract_nav::AbstractExecutionBase | |
bool | cancel_ |
flag for canceling controlling More... | |
boost::condition_variable | condition_ |
condition variable to wake up control thread More... | |
std::string | message_ |
the last received plugin execution message More... | |
std::string | name_ |
the plugin name; not the plugin type! More... | |
uint32_t | outcome_ |
the last received plugin execution outcome More... | |
boost::thread | thread_ |
the controlling thread object More... | |
Private Member Functions | |
void | setState (RecoveryState state) |
Sets the current internal state. This method is thread communication safe. More... | |
Private Attributes | |
boost::mutex | conf_mtx_ |
dynamic reconfigure and start time mutexes to mutually exclude read/write configuration More... | |
ros::Duration | patience_ |
recovery behavior allowed time More... | |
ros::Time | start_time_ |
recovery behavior start time More... | |
RecoveryState | state_ |
current internal state More... | |
boost::mutex | state_mtx_ |
mutex to handle safe thread communication for the current state More... | |
boost::mutex | time_mtx_ |
The AbstractRecoveryExecution class loads and binds the recovery behavior plugin. It contains a thread running the plugin, executing the recovery behavior. An internal state is saved and will be pulled by the server, which controls the recovery behavior execution. Due to a state change it wakes up all threads connected to the condition variable.
Definition at line 74 of file abstract_recovery_execution.h.
typedef boost::shared_ptr<AbstractRecoveryExecution > mbf_abstract_nav::AbstractRecoveryExecution::Ptr |
Definition at line 78 of file abstract_recovery_execution.h.
internal state.
Definition at line 111 of file abstract_recovery_execution.h.
mbf_abstract_nav::AbstractRecoveryExecution::AbstractRecoveryExecution | ( | const std::string & | name, |
const mbf_abstract_core::AbstractRecovery::Ptr & | recovery_ptr, | ||
const TFPtr & | tf_listener_ptr, | ||
const MoveBaseFlexConfig & | config | ||
) |
Constructor.
condition | Thread sleep condition variable, to wake up connected threads |
tf_listener_ptr | Shared pointer to a common tf listener |
Definition at line 48 of file abstract_recovery_execution.cpp.
|
virtual |
Destructor.
Definition at line 60 of file abstract_recovery_execution.cpp.
|
virtual |
Cancel the planner execution. This calls the cancel method of the planner plugin. This could be useful if the computation takes too much time, or if we are aborting the navigation.
Reimplemented from mbf_abstract_nav::AbstractExecutionBase.
Definition at line 90 of file abstract_recovery_execution.cpp.
AbstractRecoveryExecution::RecoveryState mbf_abstract_nav::AbstractRecoveryExecution::getState | ( | ) |
Returns the current state, thread-safe communication.
Definition at line 84 of file abstract_recovery_execution.cpp.
bool mbf_abstract_nav::AbstractRecoveryExecution::isPatienceExceeded | ( | ) |
Checks whether the patience was exceeded.
Definition at line 103 of file abstract_recovery_execution.cpp.
void mbf_abstract_nav::AbstractRecoveryExecution::reconfigure | ( | const MoveBaseFlexConfig & | config | ) |
Reconfigures the current configuration and reloads all parameters. This method is called from a dynamic reconfigure tool.
config | Current MoveBaseFlexConfig object. See the MoveBaseFlex.cfg definition. |
Definition at line 65 of file abstract_recovery_execution.cpp.
|
protectedvirtual |
Main execution method which will be executed by the recovery execution thread_.
Reimplemented from mbf_abstract_nav::AbstractExecutionBase.
Definition at line 111 of file abstract_recovery_execution.cpp.
|
private |
Sets the current internal state. This method is thread communication safe.
state | The state to set. |
Definition at line 77 of file abstract_recovery_execution.cpp.
|
protected |
the current loaded recovery behavior
Definition at line 144 of file abstract_recovery_execution.h.
|
private |
dynamic reconfigure and start time mutexes to mutually exclude read/write configuration
Definition at line 161 of file abstract_recovery_execution.h.
|
private |
recovery behavior allowed time
Definition at line 165 of file abstract_recovery_execution.h.
|
private |
recovery behavior start time
Definition at line 168 of file abstract_recovery_execution.h.
|
private |
current internal state
Definition at line 171 of file abstract_recovery_execution.h.
|
private |
mutex to handle safe thread communication for the current state
Definition at line 158 of file abstract_recovery_execution.h.
|
protected |
shared pointer to common TransformListener
Definition at line 147 of file abstract_recovery_execution.h.
|
private |
Definition at line 162 of file abstract_recovery_execution.h.