Go to the documentation of this file.
30 #include <geometry_msgs/PoseStamped.h>
48 template <
typename _Plugin>
111 template <
typename _Plugin>
120 virtual pluginlib::UniquePtr<_Plugin>
122 return Base::createUniqueInstance(_type);
147 template <
typename _Plugin>
150 using PluginPtr =
typename pluginlib::UniquePtr<_Plugin>;
160 inline const std::string&
189 template <
typename _Plugin,
typename _Functor>
192 const std::atomic_bool& _cancel) {
194 const std::string name =
"[" + _grp.
getName() +
"]: ";
195 for (
const auto& plugin : plugins) {
206 if (!plugin.second || !_func(*plugin.second)) {
209 if (plugin.first.on_failure_break)
212 else if (plugin.first.on_success_break)
219 template <
typename _Plugin,
typename _Functor>
222 const std::atomic_bool& _cancel) {
223 const auto result =
_runPlugins(_grp, _func, _cancel);
296 template <
typename _Plugin>
318 using Pose = geometry_msgs::PoseStamped;
319 using Path = std::vector<Pose>;
333 double& cost)
override;
353 pluginlib::UniquePtr<BaseGlobalPlanner>
412 using Pose = geometry_msgs::PoseStamped;
413 using Path = std::vector<Pose>;
421 double& _cost)
override;
425 double& cost, std::string& message)
override;
POD defining the meta information required to load a plugin.
BaseGlobalPlannerWrapper(ImplPlanner &&_impl)
our c'tor
pluginlib::UniquePtr< BaseGlobalPlanner > createCustomInstance(const std::string &_type) override
PostPlanningManager post_planning_
static const std::string base_class
CostmapPlannerManager global_planning_
Wrappes the CostmapPlaner API into the traditional BaseGlobalPlanner API.
typename pluginlib::UniquePtr< PrePlanningInterface > PluginPtr
const PluginMap & getPlugins() const noexcept
bool _runPlugins(const PluginGroup< _Plugin > &_grp, const _Functor &_func, const std::atomic_bool &_cancel)
Execution logic to run all plugins within one group.
const std::string & getName() const noexcept
std::pair< PluginParameter, PluginPtr > NamedPlugin
void initialize(std::string name, Map *costmap_ros) override
#define ROS_WARN_STREAM(args)
static const std::string package
bool runPlugins(const PluginGroup< _Plugin > &_grp, const _Functor &_func, const std::atomic_bool &_cancel)
as _runPlugins but with a warning on failure
Loads either CostmapPlanner or BaseGlobalPlanner plugins under a uniform interface.
std::vector< NamedPlugin > PluginMap
geometry_msgs::PoseStamped Pose
const bool & getDefaultValue() const noexcept
Loads an array of plugins.
#define ROS_WARN_STREAM_COND(cond, args)
bool makePlan(const Pose &start, const Pose &goal, Path &plan) override
#define ROS_INFO_STREAM(args)
virtual pluginlib::UniquePtr< _Plugin > createCustomInstance(const std::string &_type)
bool prePlanning(Pose &_start, Pose &_goal)
bool globalPlanning(const Pose &_start, const Pose &_goal, Path &_plan, double &_cost)
void initialize(std::string name, Map *costmap_ros) override
Base class for loading a plugin with a valid PluginDefinition.
PluginManager< CostmapPlanner > manager_
bool makePlan(const Pose &_start, const Pose &_goal, Path &_plan) override
bool postPlanning(const Pose &_start, const Pose &_goal, Path &_path, double &_cost)
Common interface to a plugin group.
geometry_msgs::PoseStamped Pose
void load(const std::string &_resource, ros::NodeHandle &_nh)
pluginlib::UniquePtr< CostmapPlanner > ImplPlanner
Combine pre-planning, planning and post-planning to customize the your path.
Parameters defining how to execute a plugin.
PrePlanningManager pre_planning_
gpp_plugin
Author(s):
autogenerated on Wed Mar 2 2022 00:21:23