NavigationStackFactory.cpp
Go to the documentation of this file.
2 
3 #include <experimental/memory>
4 #include <string>
5 
9 
11 #include <RobotAPI/interface/aron/Aron.h>
13 
22 
24 {
25  server::NavigationStack
27  const core::Scene& scene,
29  {
31  using aron::data::Dict;
32 
33  const auto getElementOrNull = [&params](const core::StackLayer& layer) -> Dict::PointerType
34  {
36  const std::string key = core::StackLayerNames.to_name(layer);
37 
38  if (params->hasElement(key))
39  {
40  return Dict::DynamicCast(params->getElement(key));
41  }
42 
43  ARMARX_INFO << "Skipping '" << key << "'";
44 
45  return nullptr;
46  };
47 
48  const auto globalPlannerCfg = getElementOrNull(core::StackLayer::GlobalPlanner);
49  const auto localPlannerCfg = getElementOrNull(core::StackLayer::LocalPlanner);
50  const auto trajectoryControllerCfg =
52  const auto safetyGuardCfg = getElementOrNull(core::StackLayer::SafetyGuard);
53 
54  const safety_guard::SafetyGuard::Context ctx{.arviz = arviz};
55 
57  .globalPlanner = GlobalPlannerFactory::create(globalPlannerCfg, scene),
58  .localPlanner = LocalPlannerFactory::create(localPlannerCfg, scene),
59  .trajectoryControl = TrajectoryControllerFactory::create(trajectoryControllerCfg),
60  .safetyGuard = SafetyGuardFactory::create(safetyGuardCfg, scene, ctx)};
61  }
62 
65  const core::Scene& scene,
67  {
69  const auto dict = aron::data::Dict::FromAronDictDTO(params);
71  return create(dict, scene, arviz);
72  }
73 
74 } // namespace armarx::navigation::fac
Client.h
NavigationStack.h
armarx::navigation::fac::GlobalPlannerFactory::create
static global_planning::GlobalPlannerPtr create(const aron::data::DictPtr &params, const core::Scene &ctx)
Definition: GlobalPlannerFactory.cpp:22
armarx::navigation::core::StackLayer::GlobalPlanner
@ GlobalPlanner
ARMARX_CHECK_NOT_NULL
#define ARMARX_CHECK_NOT_NULL(ptr)
This macro evaluates whether ptr is not null and if it turns out to be false it will throw an Express...
Definition: ExpressionException.h:206
armarx::navigation::fac
This file is part of ArmarX.
Definition: GlobalPlannerFactory.cpp:19
trace.h
armarx::navigation::server::NavigationStack
Definition: NavigationStack.h:36
armarx::navigation::safety_guard::SafetyGuard::Context::arviz
std::experimental::observer_ptr< viz::Client > arviz
Definition: SafetyGuard.h:78
LocalPlannerFactory.h
constants.h
std::experimental::fundamentals_v2::observer_ptr
Definition: ManagedIceObject.h:53
Dict.h
NavigationStackFactory.h
armarx::aron::data::Dict::FromAronDictDTO
static PointerType FromAronDictDTO(const data::dto::DictPtr &aron)
Definition: Dict.cpp:130
armarx::navigation::core::StackLayer::TrajectoryController
@ TrajectoryController
armarx::navigation::safety_guard::SafetyGuard::Context
Definition: SafetyGuard.h:76
IceInternal::Handle
Definition: forward_declarations.h:8
armarx::navigation::core::StackLayer::SafetyGuard
@ SafetyGuard
ARMARX_TRACE
#define ARMARX_TRACE
Definition: trace.h:77
armarx::navigation::core::StackLayerNames
const simox::meta::EnumNames< StackLayer > StackLayerNames
Definition: constants.h:44
armarx::navigation::fac::TrajectoryControllerFactory::create
static traj_ctrl::local::TrajectoryControllerPtr create(const aron::data::DictPtr &params)
Definition: TrajectoryControllerFactory.cpp:18
armarx::navigation::fac::SafetyGuardFactory::create
static safety_guard::SafetyGuardPtr create(const aron::data::DictPtr &params, const core::Scene &scene, const safety_guard::SafetyGuard::Context &ctx)
Definition: SafetyGuardFactory.cpp:20
armarx::navigation::core::Scene
Definition: types.h:60
armarx::navigation::fac::NavigationStackFactory::create
static server::NavigationStack create(const aron::data::DictPtr &params, const core::Scene &scene, std::experimental::observer_ptr< viz::Client > arviz)
Definition: NavigationStackFactory.cpp:26
ExpressionException.h
armarx::navigation::core::StackLayer::LocalPlanner
@ LocalPlanner
armarx::aron::data::DictPtr
std::shared_ptr< Dict > DictPtr
Definition: Dict.h:41
ARMARX_INFO
#define ARMARX_INFO
Definition: Logging.h:181
armarx::navigation::fac::LocalPlannerFactory::create
static local_planning::LocalPlannerPtr create(const aron::data::DictPtr &params, const core::Scene &ctx)
Definition: LocalPlannerFactory.cpp:21
GlobalPlannerFactory.h
SafetyGuardFactory.h
Logging.h
armarx::navigation::core::StackLayer
StackLayer
Definition: constants.h:36
armarx::navigation::server::NavigationStack::globalPlanner
global_planning::GlobalPlannerPtr globalPlanner
Definition: NavigationStack.h:38
TrajectoryControllerFactory.h
types.h
armarx::aron::data::Dict
Definition: Dict.h:44
SafetyGuard.h