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 Fabian Reister ( fabian dot reister 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
25#include <armarx/control/common/control_law/aron/CollisionAvoidanceControllerConfig.aron.generated.h>
26#include <armarx/control/common/control_law/aron/ObjectCollisionAvoidanceControllerConfig.aron.generated.h>
27#include <armarx/control/common/control_law/aron/ObjectCollisionAvoidanceVelControllerConfig.aron.generated.h>
28#include <armarx/control/common/control_law/aron/TaskspaceAdmittanceControllerConfig.aron.generated.h>
29#include <armarx/control/common/control_law/aron/TaskspaceControllerConfig.aron.generated.h>
30#include <armarx/control/common/control_law/aron/TaskspaceImpedanceControllerConfig.aron.generated.h>
31#include <armarx/control/common/control_law/aron/TaskspaceMixedImpedanceVelocityControllerConfig.aron.generated.h>
32#include <armarx/control/common/control_law/aron/TaskspaceVelocityControllerConfig.aron.generated.h>
34#include <armarx/control/njoint_controller/joint_space/aron/WholeBodyTrajectoryControllerConfig.aron.generated.h>
35#include <armarx/control/njoint_controller/task_space/ControllerInterface.h>
36
38{
39 namespace law = armarx::control::common::control_law;
40
41 template <>
43 {
44 using AronDTO = law::arondto::TSAdmConfigDict;
45 using Proxy = armarx::control::TSCtrlInterfacePrx;
46 constexpr static const char* name = "TSAdm";
47 };
48
49 template <>
51 {
52 using AronDTO = law::arondto::TSImpConfigDict;
53 using Proxy = armarx::control::TSCtrlInterfacePrx;
54 constexpr static const char* name = "TSImp";
55 };
56
57 template <>
59 {
60 using AronDTO = law::arondto::TSImpColConfigDict;
61 using Proxy = armarx::control::TSColAvoidCtrlInterfacePrx;
62 constexpr static const char* name = "TSImpCol";
63 };
64
65 template <>
67 {
68 using AronDTO = law::arondto::TSVelConfigDict;
69 using Proxy = armarx::control::TSCtrlInterfacePrx;
70 constexpr static const char* name = "TSVel";
71 };
72
73 template <>
75 {
76 using AronDTO = law::arondto::TSVelColConfigDict;
77 using Proxy = armarx::control::TSCtrlInterfacePrx;
78 constexpr static const char* name = "TSVelCol";
79 };
80
81 template <>
83 {
84 using AronDTO = law::arondto::TSVeloColConfigDict;
85 using Proxy = armarx::control::TSCtrlInterfacePrx;
86 constexpr static const char* name = "TSVeloCol";
87 };
88
89 // template <>
90 // struct ControllerDescription<armarx::control::common::ControllerType::TSImpObjCol>
91 // {
92 // using AronDTO = armarx::control::common::control_law::arondto::
93 // ObjectCollisionAvoidanceTSImpedanceControllerConfig;
94 //
95 // using Proxy = armarx::control::NJointTaskspaceObjectCollisionAvoidanceImpedanceControllerInterfacePrx;
96 //
97 // constexpr static const char* name = "NJointTaskspaceObjectCollisionAvoidanceImpedanceController";
98 // };
99
100
101 template <>
103 {
104 using AronDTO = law::arondto::TSMixImpVelConfigDict;
105 using Proxy = armarx::control::TSCtrlInterfacePrx;
106 constexpr static const char* name = "TSMixImpVel";
107 };
108
109 template <>
111 {
112 using AronDTO = law::arondto::TSMixImpVelColConfigDict;
113 using Proxy = armarx::control::TSColAvoidCtrlInterfacePrx;
114 constexpr static const char* name = "TSMixImpVelCol";
115 };
116
117 template <>
120 {
121 using AronDTO = armarx::control::njoint_controller::joint_space::
122 whole_body_trajectory_controller::arondto::Config;
123
124 using BO = armarx::control::njoint_controller::joint_space::
125 whole_body_trajectory_controller::arondto::Config;
126
127 constexpr static const char* name = "NJointWholeBodyTrajectoryController";
128 };
129
130 /// ZeroMQ controller
131 template <>
133 {
134 using AronDTO = law::arondto::TaskspaceVelocityControllerConfigDict;
135
136 // using values from constants.h is not possible here due to constexpr
137 constexpr static const char* name = "NJointZeroMQTaskspaceVelocityController";
138 };
139
140 template <>
142 {
143 using AronDTO = law::arondto::TaskspaceImpedanceControllerConfigDict;
144
145 // using values from constants.h is not possible here due to constexpr
146 constexpr static const char* name = "NJointZeroMQTaskspaceImpedanceController";
147 };
148
149 template <>
151 {
152 using AronDTO = law::arondto::TaskspaceMixedImpedanceVelocityControllerConfigDict;
153
154 // using values from constants.h is not possible here due to constexpr
155 constexpr static const char* name = "NJointZeroMQTaskspaceMixedImpedanceVelocityController";
156 };
157
158 template <>
160 {
161 using AronDTO = law::arondto::CollisionAvoidanceTSImpedanceControllerConfig;
162
163 // using values from constants.h is not possible here due to constexpr
164 constexpr static const char* name =
165 "NJointZeroMQTaskspaceCollisionAvoidanceImpedanceController";
166 };
167
168 template <>
170 {
171 using AronDTO = law::arondto::CollisionAvoidanceTSMixedImpedanceVelocityControllerConfig;
172
173 // using values from constants.h is not possible here due to constexpr
174 constexpr static const char* name =
175 "NJointZeroMQTaskspaceCollisionAvoidanceMixedImpedanceVelocityController";
176 };
177
178 /// Zenoh Controller
179 template <>
181 {
182 using AronDTO = law::arondto::TaskspaceVelocityControllerConfigDict;
183
184 // using values from constants.h is not possible here due to constexpr
185 constexpr static const char* name = "NJointZenohTaskspaceVelocityController";
186 };
187
188 template <>
190 {
191 using AronDTO = law::arondto::TaskspaceImpedanceControllerConfigDict;
192
193 // using values from constants.h is not possible here due to constexpr
194 constexpr static const char* name = "NJointZenohTaskspaceImpedanceController";
195 };
196
197 template <>
199 {
200 using AronDTO = law::arondto::TaskspaceMixedImpedanceVelocityControllerConfigDict;
201
202 // using values from constants.h is not possible here due to constexpr
203 constexpr static const char* name = "NJointZenohTaskspaceMixedImpedanceVelocityController";
204 };
205
206 template <>
208 {
209 using AronDTO = law::arondto::CollisionAvoidanceTSImpedanceControllerConfig;
210
211 // using values from constants.h is not possible here due to constexpr
212 constexpr static const char* name =
213 "NJointZenohTaskspaceCollisionAvoidanceImpedanceController";
214 };
215
216 template <>
218 {
219 using AronDTO = law::arondto::CollisionAvoidanceTSMixedImpedanceVelocityControllerConfig;
220
221 // using values from constants.h is not possible here due to constexpr
222 constexpr static const char* name =
223 "NJointZenohTaskspaceCollisionAvoidanceMixedImpedanceVelocityController";
224 };
225
226 // ************************
227 // Shared Memory Controller
228 // ************************
229
230 template <>
232 {
233 using AronDTO = law::arondto::TSVelConfigDict;
234
235 // using values from constants.h is not possible here due to constexpr
236 constexpr static const char* name = "NJointSharedMemoryTaskspaceVelocityController";
237 };
238
239 template <>
241 {
242 using AronDTO = law::arondto::TSVelColConfigDict;
243
244 // using values from constants.h is not possible here due to constexpr
245 constexpr static const char* name = "NJointSharedMemoryTaskspaceVelColController";
246 };
247
248 template <>
250 {
251 using AronDTO = law::arondto::TSVeloColConfigDict;
252
253 // using values from constants.h is not possible here due to constexpr
254 constexpr static const char* name = "NJointSharedMemoryTaskspaceVeloColController";
255 };
256
257 template <>
259 {
260 using AronDTO = law::arondto::TSImpConfigDict;
261
262 // using values from constants.h is not possible here due to constexpr
263 constexpr static const char* name = "NJointSharedMemoryTaskspaceImpedanceController";
264 };
265
266 template <>
268 {
269 using AronDTO = law::arondto::TSMixImpVelConfigDict;
270
271 // using values from constants.h is not possible here due to constexpr
272 constexpr static const char* name =
273 "NJointSharedMemoryTaskspaceMixedImpedanceVelocityController";
274 };
275
276 template <>
278 {
279 using AronDTO = law::arondto::TSImpColConfigDict;
280
281 // using values from constants.h is not possible here due to constexpr
282 constexpr static const char* name =
283 "NJointSharedMemoryTaskspaceCollisionAvoidanceImpedanceController";
284 };
285
286 template <>
289 {
290 using AronDTO = law::arondto::TSMixImpVelColConfigDict;
291
292 // using values from constants.h is not possible here due to constexpr
293 constexpr static const char* name =
294 "NJointSharedMemoryTaskspaceCollisionAvoidanceMixedImpedanceVelocityController";
295 };
296
297} // 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::njoint_controller::joint_space:: whole_body_trajectory_controller::arondto::Config BO
armarx::control::njoint_controller::joint_space:: whole_body_trajectory_controller::arondto::Config AronDTO