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.