TrajectoryControllerFactory.cpp
Go to the documentation of this file.
1
#include "
TrajectoryControllerFactory.h
"
2
3
#include <memory>
4
5
#include <
ArmarXCore/core/exceptions/local/ExpressionException.h
>
6
7
#include <
RobotAPI/libraries/aron/core/data/variant/container/Dict.h
>
8
#include <
RobotAPI/libraries/aron/core/data/variant/primitive/String.h
>
9
10
#include <
armarx/navigation/core/constants.h
>
11
#include <
armarx/navigation/trajectory_control/local/TrajectoryController.h
>
12
#include <
armarx/navigation/trajectory_control/local/TrajectoryFollowingController.h
>
13
#include <
armarx/navigation/trajectory_control/local/core.h
>
14
15
namespace
armarx::navigation::fac
16
{
17
traj_ctrl::local::TrajectoryControllerPtr
18
TrajectoryControllerFactory::create
(
const
aron::data::DictPtr
& params)
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
36
traj_ctrl::local::TrajectoryControllerPtr
controller
;
37
switch
(algo)
38
{
39
case
traj_ctrl::local::Algorithms::TrajectoryFollowingController
:
40
controller
= std::make_shared<traj_ctrl::local::TrajectoryFollowingController>(
41
traj_ctrl::local::TrajectoryFollowingControllerParams::FromAron
(algoParams));
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 ¶ms)
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
armarx
navigation
factories
TrajectoryControllerFactory.cpp
Generated on Sat Mar 29 2025 09:17:35 for armarx_documentation by
1.8.17