controller_descriptions.h
Go to the documentation of this file.
1/**
2 * This file is part of ArmarX.
3 *
4 * ArmarX is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * ArmarX is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * @author Jianfeng Gao ( jianfeng dot gao at kit dot edu )
17 * @date 2022
18 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
19 * GNU General Public License
20 */
21
22#pragma once
23
24
25#include <armarx/control/common/control_law/aron/TaskspaceImpedanceControllerConfig.aron.generated.h>
26#include <armarx/control/common/control_law/aron/TaskspaceVelocityControllerConfig.aron.generated.h>
27#include <armarx/control/common/control_law/aron/TaskspaceAdmittanceControllerConfig.aron.generated.h>
28#include <armarx/control/common/control_law/aron/TaskspaceMixedImpedanceVelocityControllerConfig.aron.generated.h>
29// #include <armarx/control/common/control_law/aron/CollisionAvoidanceConfig.aron.generated.h>
30// #include <armarx/control/common/control_law/aron/ObjectCollisionAvoidanceConfig.aron.generated.h>
31#include <armarx/control/common/control_law/aron/ObjectCollisionAvoidanceControllerConfig.aron.generated.h>
32#include <armarx/control/common/control_law/aron/ObjectCollisionAvoidanceVelControllerConfig.aron.generated.h>
33
34/// controller config dict aron types
35#include <armarx/control/common/control_law/aron/TaskspaceControllerConfig.aron.generated.h>
36#include <armarx/control/common/control_law/aron/CollisionAvoidanceControllerConfig.aron.generated.h>
37
40#include <armarx/control/njoint_mp_controller/task_space/ControllerInterface.h>
41
43{
44 namespace law = armarx::control::common::control_law;
45
46 /// Base controllers
47 template <>
49 {
50 using AronDTO = law::arondto::TSAdmConfigDict;
51 using Proxy = armarx::control::TSMPCtrlInterfacePrx;
52 constexpr static const char* name = "TSMPAdm";
53 constexpr static const char* ctrlConfigClassName = "TSAdm";
54 };
55
56 template <>
58 {
59 using AronDTO = law::arondto::TSImpConfigDict;
60 using Proxy = armarx::control::TSMPCtrlInterfacePrx;
61 constexpr static const char* name = "TSMPImp";
62 constexpr static const char* ctrlConfigClassName = "TSImp";
63 };
64
65 template <>
67 {
68 using AronDTO = law::arondto::TSVelConfigDict;
69 using Proxy = armarx::control::TSMPCtrlInterfacePrx;
70 constexpr static const char* name = "TSMPVel";
71 constexpr static const char* ctrlConfigClassName = "TSVel";
72 };
73
74 // template <>
75 // struct ControllerDescription<armarx::control::common::ControllerType::TSMPImpObjCol>
76 // {
77 // using AronDTO = armarx::control::common::control_law::arondto::
78 // ObjectCollisionAvoidanceTSImpedanceControllerConfig;
79 // using Proxy = armarx::control::NJointTSObjectCollisionAvoidanceImpedanceMPControllerInterfacePrx;
80 // constexpr static const char* name = "NJointTSObjectCollisionAvoidanceImpedanceMPController";
81 // constexpr static const char* ctrlConfigClassName =
82 // "NJointTaskspaceObjectCollisionAvoidanceImpedanceController";
83 // };
84
85 template <>
87 {
88 using AronDTO = law::arondto::TSMixImpVelConfigDict;
89 using Proxy = armarx::control::TSMPCtrlInterfacePrx;
90 constexpr static const char* name = "TSMPMixImpVel";
91 constexpr static const char* ctrlConfigClassName = "TSMixImpVel";
92 };
93
94 /// Collision Avoidance controllers
95 template <>
97 {
98 using AronDTO = law::arondto::TSImpColConfigDict;
99 using Proxy = armarx::control::TSMPColAvoidCtrlInterfacePrx;
100 constexpr static const char* name = "TSMPImpCol";
101 constexpr static const char* ctrlConfigClassName = "TSImpCol";
102 };
103
104 template <>
106 {
107 using AronDTO = law::arondto::TSVelColConfigDict;
108 using Proxy = armarx::control::TSMPColAvoidCtrlInterfacePrx;
109 constexpr static const char* name = "TSMPVelCol";
110 constexpr static const char* ctrlConfigClassName = "TSVelCol";
111 };
112
113 template <>
115 {
116 using AronDTO = law::arondto::TSVeloColConfigDict;
117 using Proxy = armarx::control::TSMPColAvoidCtrlInterfacePrx;
118 constexpr static const char* name = "TSMPVeloCol";
119 constexpr static const char* ctrlConfigClassName = "TSVeloCol";
120 };
121
122 template <>
124 {
125 using AronDTO = law::arondto::TSMixImpVelColConfigDict;
126 using Proxy = armarx::control::TSMPColAvoidCtrlInterfacePrx;
127 constexpr static const char* name = "TSMPMixImpVelCol";
128 constexpr static const char* ctrlConfigClassName = "TSMixImpVelCol";
129 };
130
131 /// Specific Controllers
132 template <>
134 {
135 using AronDTO = armarx::control::common::control_law::arondto::
136 CollisionAvoidanceTSMixedImpedanceVelocityControllerConfig;
137 using Proxy = armarx::control::NJointWipingMixImpVelColMPControllerInterfacePrx;
138 constexpr static const char* name = "NJointWipingMixImpVelColMPController";
139 constexpr static const char* ctrlConfigClassName =
140 "NJointTaskspaceCollisionAvoidanceMixedImpedanceVelocityController";
141 };
142
143 template <>
145 {
146 using AronDTO =
147 armarx::control::common::control_law::arondto::TaskspaceVelocityControllerConfigDict;
148 using Proxy = armarx::control::NJointWipingVelMPControllerInterfacePrx;
149 constexpr static const char* name = "NJointWipingVelMPController";
150 constexpr static const char* ctrlConfigClassName = "NJointTaskspaceVelocityController";
151 };
152
153 template <>
155 {
156 using AronDTO =
157 armarx::control::common::control_law::arondto::TaskspaceImpedanceControllerConfigDict;
158 using Proxy = armarx::control::NJointWipingImpMPControllerInterfacePrx;
159 constexpr static const char* name = "NJointWipingImpMPController";
160 constexpr static const char* ctrlConfigClassName = "NJointTaskspaceImpedanceController";
161 };
162
163} // namespace armarx::control::client
This file is part of ArmarX.
This file offers overloads of toIce() and fromIce() functions for STL container types.
armarx::control::common::control_law::arondto:: CollisionAvoidanceTSMixedImpedanceVelocityControllerConfig AronDTO
armarx::control::common::control_law::arondto::TaskspaceImpedanceControllerConfigDict AronDTO
armarx::control::common::control_law::arondto::TaskspaceVelocityControllerConfigDict AronDTO