TrajectoryControllerFactory.cpp
Go to the documentation of this file.
2 
3 #include <memory>
4 
6 
9 
14 
16 {
19  {
20  namespace layer = traj_ctrl::local;
21 
22  if (not params)
23  {
24  return nullptr;
25  }
26 
27  // algo name
28  const auto algoName = aron::data::String::DynamicCast(params->getElement(core::NAME_KEY));
29  ARMARX_CHECK_NOT_NULL(algoName);
30  const layer::Algorithms algo = layer::AlgorithmNames.from_name(algoName->getValue());
31 
32  // algo params
33  const auto algoParams = aron::data::Dict::DynamicCast(params->getElement(core::PARAMS_KEY));
34  ARMARX_CHECK_NOT_NULL(algoParams);
35 
37  switch (algo)
38  {
40  controller = std::make_shared<traj_ctrl::local::TrajectoryFollowingController>(
42  break;
43  }
44 
45  return controller;
46  }
47 } // namespace armarx::navigation::fac
armarx::navigation::traj_ctrl::local::TrajectoryControllerPtr
std::shared_ptr< TrajectoryController > TrajectoryControllerPtr
Definition: fwd.h:49
armarx::navigation::core::NAME_KEY
const std::string NAME_KEY
Definition: constants.h:33
TrajectoryController.h
armarx::navigation::core::PARAMS_KEY
const std::string PARAMS_KEY
Definition: constants.h:34
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
armarx::navigation::traj_ctrl::local::TrajectoryFollowingControllerParams::FromAron
static TrajectoryFollowingControllerParams FromAron(const aron::data::DictPtr &dict)
Definition: TrajectoryFollowingController.cpp:49
constants.h
core.h
Dict.h
armarx::aron::data::detail::SpecializedVariantBase< data::dto::AronString, String >::DynamicCast
static PointerType DynamicCast(const VariantPtr &n)
Definition: SpecializedVariant.h:116
armarx::navigation::global_planning::AlgorithmNames
const simox::meta::EnumNames< Algorithms > AlgorithmNames
Definition: core.h:45
controller
Definition: AddOperation.h:39
TrajectoryFollowingController.h
armarx::navigation::fac::TrajectoryControllerFactory::create
static traj_ctrl::local::TrajectoryControllerPtr create(const aron::data::DictPtr &params)
Definition: TrajectoryControllerFactory.cpp:18
ExpressionException.h
armarx::aron::data::DictPtr
std::shared_ptr< Dict > DictPtr
Definition: Dict.h:41
armarx::navigation::global_planning::Algorithms
Algorithms
Definition: core.h:38
TrajectoryControllerFactory.h
armarx::navigation::traj_ctrl::local::Algorithms::TrajectoryFollowingController
@ TrajectoryFollowingController
String.h