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, boost::function< void()> setup_fn, boost::function< void()> cleanup_fn) | |
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. 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 (std::string name, boost::function< void()> setup_fn, boost::function< void()> cleanup_fn) | |
std::string | getMessage () |
Gets the current plugin execution message. More... | |
std::string | getName () |
Returns the name of the corresponding plugin. More... | |
uint32_t | getOutcome () |
Gets the current plugin execution outcome. More... | |
void | join () |
virtual bool | start () |
virtual void | stop () |
void | waitForStateUpdate (boost::chrono::microseconds const &duration) |
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_ |
Additional Inherited Members | |
Public Attributes inherited from mbf_abstract_nav::AbstractExecutionBase | |
boost::function< void()> | cleanup_fn_ |
Implementation-specific cleanup function called right after execution; empty on abstract server. More... | |
boost::function< void()> | setup_fn_ |
Implementation-specific setup function called right before execution; empty on abstract server. More... | |
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 76 of file abstract_recovery_execution.h.
typedef boost::shared_ptr<AbstractRecoveryExecution > mbf_abstract_nav::AbstractRecoveryExecution::Ptr |
Definition at line 80 of file abstract_recovery_execution.h.
internal state.
Definition at line 115 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, | ||
boost::function< void()> | setup_fn, | ||
boost::function< void()> | cleanup_fn | ||
) |
Constructor.
condition | Thread sleep condition variable, to wake up connected threads |
tf_listener_ptr | Shared pointer to a common tf listener |
Definition at line 50 of file abstract_recovery_execution.cpp.
|
virtual |
Destructor.
Definition at line 64 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.
Implements mbf_abstract_nav::AbstractExecutionBase.
Definition at line 94 of file abstract_recovery_execution.cpp.
AbstractRecoveryExecution::RecoveryState mbf_abstract_nav::AbstractRecoveryExecution::getState | ( | ) |
Returns the current state, thread-safe communication.
Definition at line 88 of file abstract_recovery_execution.cpp.
bool mbf_abstract_nav::AbstractRecoveryExecution::isPatienceExceeded | ( | ) |
Checks whether the patience was exceeded.
Definition at line 107 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 69 of file abstract_recovery_execution.cpp.
|
protectedvirtual |
Main execution method which will be executed by the recovery execution thread_.
Implements mbf_abstract_nav::AbstractExecutionBase.
Definition at line 115 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 81 of file abstract_recovery_execution.cpp.
|
protected |
the current loaded recovery behavior
Definition at line 148 of file abstract_recovery_execution.h.
|
private |
dynamic reconfigure and start time mutexes to mutually exclude read/write configuration
Definition at line 165 of file abstract_recovery_execution.h.
|
private |
recovery behavior allowed time
Definition at line 169 of file abstract_recovery_execution.h.
|
private |
recovery behavior start time
Definition at line 172 of file abstract_recovery_execution.h.
|
private |
current internal state
Definition at line 175 of file abstract_recovery_execution.h.
|
private |
mutex to handle safe thread communication for the current state
Definition at line 162 of file abstract_recovery_execution.h.
|
protected |
shared pointer to common TransformListener
Definition at line 151 of file abstract_recovery_execution.h.
|
private |
Definition at line 166 of file abstract_recovery_execution.h.