Aikido
JointStateSpaceHelpers-impl.hpp
Go to the documentation of this file.
1 #include <sstream>
2 
17 
18 namespace aikido {
19 namespace constraint {
20 namespace dart {
21 namespace detail {
22 
23 //==============================================================================
35 
36 //==============================================================================
37 template <class T>
39 {
40  // Nothing defined.
41 };
42 
43 template <class T>
45 {
46  // Nothing defined.
47 };
48 
49 template <class T>
51 {
52  // Nothing defined.
53 };
54 
55 template <class T>
57 {
58  // Nothing defined.
59 };
60 
61 //==============================================================================
62 template <int N, class OutputConstraint>
63 std::unique_ptr<OutputConstraint> createBoxConstraint(
64  std::shared_ptr<const statespace::dart::RJoint<N>> _stateSpace,
65  std::unique_ptr<common::RNG> _rng)
66 {
67  const auto properties = _stateSpace->getProperties();
68 
69  if (properties.isPositionLimited())
70  {
71  return ::aikido::common::make_unique<uniform::RBoxConstraint<N>>(
72  std::move(_stateSpace),
73  std::move(_rng),
74  properties.getPositionLowerLimits(),
75  properties.getPositionUpperLimits());
76  }
77  else
78  {
79  return ::aikido::common::make_unique<Satisfied>(std::move(_stateSpace));
80  }
81 }
82 
83 //==============================================================================
84 template <int N>
85 struct createDifferentiableFor_impl<const statespace::dart::RJoint<N>>
86 {
88  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
89 
90  static std::unique_ptr<Differentiable> create(ConstStateSpacePtr _stateSpace)
91  {
92  return createBoxConstraint<N, Differentiable>(
93  std::move(_stateSpace), nullptr);
94  }
95 };
96 
97 //==============================================================================
98 template <int N>
99 struct createTestableFor_impl<const statespace::dart::RJoint<N>>
100 {
102  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
103 
104  static std::unique_ptr<Testable> create(ConstStateSpacePtr _stateSpace)
105  {
106  return createBoxConstraint<N, Testable>(std::move(_stateSpace), nullptr);
107  }
108 };
109 
110 //==============================================================================
111 template <int N>
112 struct createProjectableFor_impl<const statespace::dart::RJoint<N>>
113 {
115  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
116 
117  static std::unique_ptr<Projectable> create(ConstStateSpacePtr _stateSpace)
118  {
119  return createBoxConstraint<N, Projectable>(std::move(_stateSpace), nullptr);
120  }
121 };
122 
123 //==============================================================================
124 template <int N>
125 struct createSampleableFor_impl<const statespace::dart::RJoint<N>>
126 {
128  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
129 
130  static std::unique_ptr<Sampleable> create(
131  ConstStateSpacePtr _stateSpace, std::unique_ptr<common::RNG> _rng)
132  {
133  const auto properties = _stateSpace->getProperties();
134 
135  if (properties.isPositionLimited())
136  {
137  return ::aikido::common::make_unique<uniform::RBoxConstraint<N>>(
138  std::move(_stateSpace),
139  std::move(_rng),
140  properties.getPositionLowerLimits(),
141  properties.getPositionUpperLimits());
142  }
143  else
144  {
145  throw std::runtime_error("Unable to create Sampleable for unbounded Rn.");
146  }
147  }
148 };
149 
150 //==============================================================================
151 template <>
152 struct createDifferentiableFor_impl<const statespace::dart::SO2Joint>
153 {
155  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
156 
157  static std::unique_ptr<Differentiable> create(ConstStateSpacePtr _stateSpace)
158  {
159  if (_stateSpace->getProperties().isPositionLimited())
160  throw std::invalid_argument("SO2Joint must not have limits.");
161 
162  return ::aikido::common::make_unique<Satisfied>(std::move(_stateSpace));
163  }
164 };
165 
166 //==============================================================================
167 template <>
168 struct createTestableFor_impl<const statespace::dart::SO2Joint>
169 {
171  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
172 
173  static std::unique_ptr<Testable> create(ConstStateSpacePtr _stateSpace)
174  {
175  if (_stateSpace->getProperties().isPositionLimited())
176  throw std::invalid_argument("SO2Joint must not have limits.");
177 
178  return ::aikido::common::make_unique<Satisfied>(std::move(_stateSpace));
179  }
180 };
181 
182 //==============================================================================
183 template <>
184 struct createProjectableFor_impl<const statespace::dart::SO2Joint>
185 {
187  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
188 
189  static std::unique_ptr<Projectable> create(ConstStateSpacePtr _stateSpace)
190  {
191  if (_stateSpace->getProperties().isPositionLimited())
192  throw std::invalid_argument("SO2Joint must not have limits.");
193 
194  return ::aikido::common::make_unique<Satisfied>(std::move(_stateSpace));
195  }
196 };
197 
198 //==============================================================================
199 template <>
200 struct createSampleableFor_impl<const statespace::dart::SO2Joint>
201 {
203  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
204 
205  static std::unique_ptr<Sampleable> create(
206  ConstStateSpacePtr _stateSpace, std::unique_ptr<common::RNG> _rng)
207  {
208  if (_stateSpace->getProperties().isPositionLimited())
209  throw std::invalid_argument("SO2Joint must not have limits.");
210 
211  return ::aikido::common::make_unique<uniform::SO2UniformSampler>(
212  std::move(_stateSpace), std::move(_rng));
213  }
214 };
215 
216 //==============================================================================
217 template <>
218 struct createDifferentiableFor_impl<const statespace::dart::SO3Joint>
219 {
221  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
222 
223  static std::unique_ptr<Differentiable> create(ConstStateSpacePtr _stateSpace)
224  {
225  if (_stateSpace->getProperties().isPositionLimited())
226  throw std::invalid_argument("SO3Joint must not have limits.");
227 
228  return ::aikido::common::make_unique<Satisfied>(std::move(_stateSpace));
229  }
230 };
231 
232 //==============================================================================
233 template <>
234 struct createTestableFor_impl<const statespace::dart::SO3Joint>
235 {
237  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
238 
239  static std::unique_ptr<Testable> create(ConstStateSpacePtr _stateSpace)
240  {
241  if (_stateSpace->getProperties().isPositionLimited())
242  throw std::invalid_argument("SO3Joint must not have limits.");
243 
244  return ::aikido::common::make_unique<Satisfied>(std::move(_stateSpace));
245  }
246 };
247 
248 //==============================================================================
249 template <>
250 struct createProjectableFor_impl<const statespace::dart::SO3Joint>
251 {
253  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
254 
255  static std::unique_ptr<Projectable> create(ConstStateSpacePtr _stateSpace)
256  {
257  if (_stateSpace->getProperties().isPositionLimited())
258  throw std::invalid_argument("SO3Joint must not have limits.");
259 
260  return ::aikido::common::make_unique<Satisfied>(std::move(_stateSpace));
261  }
262 };
263 
264 //==============================================================================
265 template <>
266 struct createSampleableFor_impl<const statespace::dart::SO3Joint>
267 {
269  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
270 
271  static std::unique_ptr<Sampleable> create(
272  ConstStateSpacePtr _stateSpace, std::unique_ptr<common::RNG> _rng)
273  {
274  if (_stateSpace->getProperties().isPositionLimited())
275  throw std::invalid_argument("SO3Joint must not have limits.");
276 
277  return ::aikido::common::make_unique<uniform::SO3UniformSampler>(
278  std::move(_stateSpace), std::move(_rng));
279  }
280 };
281 
282 //==============================================================================
283 template <class OutputConstraint>
284 std::unique_ptr<OutputConstraint> createBoxConstraint(
285  std::shared_ptr<const statespace::dart::SE2Joint> _stateSpace,
286  std::unique_ptr<common::RNG> _rng)
287 {
288  const auto properties = _stateSpace->getProperties();
289 
290  if (properties.isPositionLimited())
291  {
292  return ::aikido::common::make_unique<uniform::SE2BoxConstraint>(
293  std::move(_stateSpace),
294  std::move(_rng),
295  properties.getPositionLowerLimits().tail<2>(),
296  properties.getPositionUpperLimits().tail<2>());
297  }
298  else
299  {
300  return ::aikido::common::make_unique<Satisfied>(std::move(_stateSpace));
301  }
302 }
303 
304 //==============================================================================
305 template <>
306 struct createDifferentiableFor_impl<const statespace::dart::SE2Joint>
307 {
309  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
310 
311  static std::unique_ptr<Differentiable> create(
312  ConstStateSpacePtr /*_stateSpace*/)
313  {
314  throw std::runtime_error(
315  "No DifferentiableConstraint is available for SE2Joint.");
316  }
317 };
318 
319 //==============================================================================
320 template <>
321 struct createTestableFor_impl<const statespace::dart::SE2Joint>
322 {
324  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
325 
326  static std::unique_ptr<Testable> create(ConstStateSpacePtr _stateSpace)
327  {
328  const auto properties = _stateSpace->getProperties();
329  if (properties.hasPositionLimit(0))
330  {
331  throw std::invalid_argument(
332  "Rotational component of SE2Joint must not have limits.");
333  }
334 
335  return createBoxConstraint<Testable>(std::move(_stateSpace), nullptr);
336  }
337 };
338 
339 //==============================================================================
340 template <>
341 struct createProjectableFor_impl<const statespace::dart::SE2Joint>
342 {
344  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
345 
346  static std::unique_ptr<Projectable> create(ConstStateSpacePtr _stateSpace)
347  {
348  const auto properties = _stateSpace->getProperties();
349  if (properties.hasPositionLimit(0))
350  {
351  throw std::invalid_argument(
352  "Rotational component of SE2Joint must not have limits.");
353  }
354 
355  return createBoxConstraint<Projectable>(std::move(_stateSpace), nullptr);
356  }
357 };
358 
359 //==============================================================================
360 template <>
361 struct createSampleableFor_impl<const statespace::dart::SE2Joint>
362 {
364  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
365 
366  static std::unique_ptr<Sampleable> create(
367  ConstStateSpacePtr stateSpace, std::unique_ptr<common::RNG> rng)
368  {
369  const auto properties = stateSpace->getProperties();
370  if (properties.hasPositionLimit(0))
371  {
372  throw std::invalid_argument(
373  "Rotational component of SE2Joint must not have limits.");
374  }
375  else if (!(properties.hasPositionLimit(1)
376  && properties.hasPositionLimit(2)))
377  {
378  throw std::runtime_error(
379  "Unable to create Sampleable for unbounded SE2.");
380  }
381  else
382  {
383  return ::aikido::common::make_unique<uniform::SE2BoxConstraint>(
384  std::move(stateSpace),
385  std::move(rng),
386  properties.getPositionLowerLimits().tail<2>(),
387  properties.getPositionUpperLimits().tail<2>());
388  }
389  }
390 };
391 
392 //==============================================================================
393 template <>
394 struct createDifferentiableFor_impl<const statespace::dart::SE3Joint>
395 {
397  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
398 
399  static std::unique_ptr<Differentiable> create(
400  ConstStateSpacePtr /*_stateSpace*/)
401  {
402  throw std::runtime_error(
403  "No DifferentiableConstraint is available for SE3Joint.");
404  }
405 };
406 
407 //==============================================================================
408 template <>
409 struct createTestableFor_impl<const statespace::dart::SE3Joint>
410 {
412  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
413 
414  static std::unique_ptr<Testable> create(ConstStateSpacePtr /*_stateSpace*/)
415  {
416  throw std::runtime_error("No Testable is available for SE3Joint.");
417  }
418 };
419 
420 //==============================================================================
421 template <>
422 struct createProjectableFor_impl<const statespace::dart::SE3Joint>
423 {
425  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
426 
427  static std::unique_ptr<Projectable> create(ConstStateSpacePtr /*_stateSpace*/)
428  {
429  throw std::runtime_error("No Projectable is available for SE3Joint.");
430  }
431 };
432 
433 //==============================================================================
434 template <>
435 struct createSampleableFor_impl<const statespace::dart::SE3Joint>
436 {
438  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
439 
440  static std::unique_ptr<Sampleable> create(
441  ConstStateSpacePtr /*_stateSpace*/, std::unique_ptr<common::RNG> /*_rng*/)
442  {
443  throw std::runtime_error("No Sampleable is available for SE3Joint.");
444  }
445 };
446 
447 //==============================================================================
448 template <class OutputConstraint>
449 std::unique_ptr<OutputConstraint> createBoxConstraint(
450  std::shared_ptr<const statespace::dart::WeldJoint> _stateSpace,
451  std::unique_ptr<common::RNG> /*_rng*/)
452 {
453  return ::aikido::common::make_unique<Satisfied>(std::move(_stateSpace));
454 }
455 
456 //==============================================================================
457 template <>
458 struct createDifferentiableFor_impl<const statespace::dart::WeldJoint>
459 {
461  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
462 
463  static std::unique_ptr<Differentiable> create(ConstStateSpacePtr _stateSpace)
464  {
465  return createBoxConstraint<Differentiable>(std::move(_stateSpace), nullptr);
466  }
467 };
468 
469 //==============================================================================
470 template <>
471 struct createTestableFor_impl<const statespace::dart::WeldJoint>
472 {
474  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
475 
476  static std::unique_ptr<Testable> create(ConstStateSpacePtr _stateSpace)
477  {
478  return createBoxConstraint<Testable>(std::move(_stateSpace), nullptr);
479  }
480 };
481 
482 //==============================================================================
483 template <>
484 struct createProjectableFor_impl<const statespace::dart::WeldJoint>
485 {
487  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
488 
489  static std::unique_ptr<Projectable> create(ConstStateSpacePtr _stateSpace)
490  {
491  return createBoxConstraint<Projectable>(std::move(_stateSpace), nullptr);
492  }
493 };
494 
495 //==============================================================================
496 template <>
497 struct createSampleableFor_impl<const statespace::dart::WeldJoint>
498 {
500  using ConstStateSpacePtr = std::shared_ptr<const StateSpace>;
501 
502  static std::unique_ptr<Sampleable> create(
503  ConstStateSpacePtr _stateSpace, std::unique_ptr<common::RNG> /*_rng*/)
504  {
505  // A WeldJoint has zero DOFs
506  Eigen::VectorXd positions = Eigen::Matrix<double, 0, 1>();
507 
508  return ::aikido::common::make_unique<uniform::R0ConstantSampler>(
509  std::move(_stateSpace), positions);
510  }
511 };
512 
513 } // namespace detail
514 
515 //==============================================================================
516 template <class Space>
517 std::unique_ptr<Differentiable> createDifferentiableBoundsFor(
518  std::shared_ptr<Space> _stateSpace)
519 {
521  std::move(_stateSpace));
522 }
523 
524 //==============================================================================
525 template <class Space>
526 std::unique_ptr<Projectable> createProjectableBoundsFor(
527  std::shared_ptr<Space> _stateSpace)
528 {
530  std::move(_stateSpace));
531 }
532 
533 //==============================================================================
534 template <class Space>
535 std::unique_ptr<Testable> createTestableBoundsFor(
536  std::shared_ptr<Space> _stateSpace)
537 {
539  std::move(_stateSpace));
540 }
541 
542 //==============================================================================
543 template <class Space>
544 std::unique_ptr<Sampleable> createSampleableBoundsFor(
545  std::shared_ptr<Space> _stateSpace, std::unique_ptr<common::RNG> _rng)
546 {
548  std::move(_stateSpace), std::move(_rng));
549 }
550 
551 } // namespace dart
552 } // namespace constraint
553 } // namespace aikido
aikido::constraint::dart::detail::createSampleableFor_impl< const statespace::dart::SE2Joint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:364
aikido::constraint::dart::detail::createSampleableFor_impl
Definition: JointStateSpaceHelpers-impl.hpp:56
aikido::constraint::dart::detail::createDifferentiableFor_impl< const statespace::dart::SO2Joint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:155
aikido::constraint::dart::detail::createProjectableFor_impl< const statespace::dart::SE3Joint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:425
aikido::constraint::dart::detail::createDifferentiableFor_impl< const statespace::dart::SE3Joint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:397
aikido::constraint::dart::detail::createSampleableFor_impl< const statespace::dart::RJoint< N > >::create
static std::unique_ptr< Sampleable > create(ConstStateSpacePtr _stateSpace, std::unique_ptr< common::RNG > _rng)
Definition: JointStateSpaceHelpers-impl.hpp:130
WeldJoint.hpp
aikido
Format of serialized trajectory in YAML.
Definition: algorithm.hpp:4
aikido::statespace::dart::SE2Joint
SEStateSpace for a DART PlanarJoint This class does not support position limits on the rotational Deg...
Definition: SE2Joint.hpp:13
aikido::constraint::dart::detail::createDifferentiableFor_impl
Definition: JointStateSpaceHelpers-impl.hpp:38
aikido::constraint::dart::createSampleableBoundsFor
std::unique_ptr< Sampleable > createSampleableBoundsFor(std::shared_ptr< Space > _stateSpace, std::unique_ptr< common::RNG > _rng)
Create a Sampleable constraint that can be used to sample a state that is guarenteed to lie within bo...
Definition: JointStateSpaceHelpers-impl.hpp:544
aikido::constraint::dart::detail::createTestableFor_impl< const statespace::dart::SE3Joint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:412
aikido::constraint::dart::detail::createTestableFor_impl< const statespace::dart::SE2Joint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:324
SE2BoxConstraint.hpp
aikido::constraint::dart::detail::createProjectableFor_impl< const statespace::dart::WeldJoint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:487
memory.hpp
aikido::constraint::dart::detail::createProjectableFor_impl< const statespace::dart::SE2Joint >::create
static std::unique_ptr< Projectable > create(ConstStateSpacePtr _stateSpace)
Definition: JointStateSpaceHelpers-impl.hpp:346
aikido::constraint::dart::detail::createTestableFor_impl< const statespace::dart::SO3Joint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:237
aikido::constraint::dart::detail::createProjectableFor_impl< const statespace::dart::RJoint< N > >::create
static std::unique_ptr< Projectable > create(ConstStateSpacePtr _stateSpace)
Definition: JointStateSpaceHelpers-impl.hpp:117
aikido::constraint::dart::detail::createSampleableFor_impl< const statespace::dart::SO3Joint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:269
aikido::constraint::dart::detail::createTestableFor_impl< const statespace::dart::SO2Joint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:171
aikido::constraint::dart::createProjectableBoundsFor
std::unique_ptr< Projectable > createProjectableBoundsFor(std::shared_ptr< Space > _stateSpace)
Create a Projectable that can be used to project a state from the given StateSpace back within bounds...
Definition: JointStateSpaceHelpers-impl.hpp:526
aikido::constraint::dart::detail::createDifferentiableFor_impl< const statespace::dart::SO2Joint >::create
static std::unique_ptr< Differentiable > create(ConstStateSpacePtr _stateSpace)
Definition: JointStateSpaceHelpers-impl.hpp:157
aikido::constraint::dart::detail::createTestableFor_impl
Definition: JointStateSpaceHelpers-impl.hpp:44
aikido::constraint::dart::detail::createTestableFor_impl< const statespace::dart::SE3Joint >::create
static std::unique_ptr< Testable > create(ConstStateSpacePtr)
Definition: JointStateSpaceHelpers-impl.hpp:414
SO3Joint.hpp
aikido::constraint::dart::detail::createDifferentiableFor_impl< const statespace::dart::SE2Joint >::create
static std::unique_ptr< Differentiable > create(ConstStateSpacePtr)
Definition: JointStateSpaceHelpers-impl.hpp:311
RnBoxConstraint.hpp
SO2UniformSampler.hpp
SO2Joint.hpp
aikido::constraint::dart::detail::createProjectableFor_impl< const statespace::dart::SE2Joint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:344
aikido::constraint::dart::detail::createProjectableFor_impl< const statespace::dart::SO2Joint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:187
SE3Joint.hpp
aikido::statespace::dart::R3Joint
RJoint< 3 > R3Joint
Definition: RnJoint.hpp:54
aikido::constraint::dart::detail::createProjectableFor_impl< const statespace::dart::SO3Joint >::create
static std::unique_ptr< Projectable > create(ConstStateSpacePtr _stateSpace)
Definition: JointStateSpaceHelpers-impl.hpp:255
aikido::constraint::dart::createTestableBoundsFor
std::unique_ptr< Testable > createTestableBoundsFor(std::shared_ptr< Space > _stateSpace)
Create a Testable constraint that can be used to determine if a given state lies within bounds set on...
Definition: JointStateSpaceHelpers-impl.hpp:535
aikido::constraint::dart::detail::createTestableFor_impl< const statespace::dart::SO2Joint >::create
static std::unique_ptr< Testable > create(ConstStateSpacePtr _stateSpace)
Definition: JointStateSpaceHelpers-impl.hpp:173
aikido::constraint::dart::detail::createSampleableFor_impl< const statespace::dart::WeldJoint >::create
static std::unique_ptr< Sampleable > create(ConstStateSpacePtr _stateSpace, std::unique_ptr< common::RNG >)
Definition: JointStateSpaceHelpers-impl.hpp:502
SE2Joint.hpp
aikido::constraint::dart::detail::createDifferentiableFor_impl< const statespace::dart::RJoint< N > >::create
static std::unique_ptr< Differentiable > create(ConstStateSpacePtr _stateSpace)
Definition: JointStateSpaceHelpers-impl.hpp:90
aikido::constraint::dart::createDifferentiableBoundsFor
std::unique_ptr< Differentiable > createDifferentiableBoundsFor(std::shared_ptr< Space > _stateSpace)
Create differentiable bounds that can be applied to the given StateSpace.
Definition: JointStateSpaceHelpers-impl.hpp:517
aikido::constraint::dart::detail::createProjectableFor_impl< const statespace::dart::RJoint< N > >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:115
RnConstantSampler.hpp
aikido::common::type_list
Wrapper for a variadic template parameter pack of types.
Definition: metaprogramming.hpp:13
aikido::constraint::dart::detail::createSampleableFor_impl< const statespace::dart::SO2Joint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:203
aikido::constraint::dart::detail::createTestableFor_impl< const statespace::dart::WeldJoint >::create
static std::unique_ptr< Testable > create(ConstStateSpacePtr _stateSpace)
Definition: JointStateSpaceHelpers-impl.hpp:476
aikido::constraint::dart::detail::createSampleableFor_impl< const statespace::dart::SO3Joint >::create
static std::unique_ptr< Sampleable > create(ConstStateSpacePtr _stateSpace, std::unique_ptr< common::RNG > _rng)
Definition: JointStateSpaceHelpers-impl.hpp:271
aikido::constraint::dart::detail::createSampleableFor_impl< const statespace::dart::SO2Joint >::create
static std::unique_ptr< Sampleable > create(ConstStateSpacePtr _stateSpace, std::unique_ptr< common::RNG > _rng)
Definition: JointStateSpaceHelpers-impl.hpp:205
aikido::constraint::dart::detail::createSampleableFor_impl< const statespace::dart::SE2Joint >::create
static std::unique_ptr< Sampleable > create(ConstStateSpacePtr stateSpace, std::unique_ptr< common::RNG > rng)
Definition: JointStateSpaceHelpers-impl.hpp:366
aikido::constraint::dart::detail::createTestableFor_impl< const statespace::dart::SO3Joint >::create
static std::unique_ptr< Testable > create(ConstStateSpacePtr _stateSpace)
Definition: JointStateSpaceHelpers-impl.hpp:239
aikido::constraint::dart::detail::createDifferentiableFor_impl< const statespace::dart::WeldJoint >::create
static std::unique_ptr< Differentiable > create(ConstStateSpacePtr _stateSpace)
Definition: JointStateSpaceHelpers-impl.hpp:463
aikido::statespace::dart::RJoint
Rn for an arbitrary type of DART Joint with an arbitrary number of DegreeOfFreedoms.
Definition: RnJoint.hpp:21
aikido::statespace::dart::SO3Joint
SO3 for a DART BallJoint.
Definition: SO3Joint.hpp:13
aikido::constraint::dart::detail::createTestableFor_impl< const statespace::dart::SE2Joint >::create
static std::unique_ptr< Testable > create(ConstStateSpacePtr _stateSpace)
Definition: JointStateSpaceHelpers-impl.hpp:326
aikido::constraint::dart::detail::createSampleableFor_impl< const statespace::dart::RJoint< N > >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:128
RnJoint.hpp
aikido::statespace::dart::WeldJoint
Weld for DART WeldJoint.
Definition: WeldJoint.hpp:13
aikido::statespace::dart::R6Joint
RJoint< 6 > R6Joint
Definition: RnJoint.hpp:55
aikido::statespace::dart::R1Joint
RJoint< 1 > R1Joint
Definition: RnJoint.hpp:52
aikido::statespace::dart::R2Joint
RJoint< 2 > R2Joint
Definition: RnJoint.hpp:53
aikido::constraint::dart::detail::createBoxConstraint
std::unique_ptr< OutputConstraint > createBoxConstraint(std::shared_ptr< const statespace::dart::RJoint< N >> _stateSpace, std::unique_ptr< common::RNG > _rng)
Definition: JointStateSpaceHelpers-impl.hpp:63
aikido::constraint::dart::detail::createTestableFor_impl< const statespace::dart::RJoint< N > >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:102
metaprogramming.hpp
aikido::constraint::dart::detail::createDifferentiableFor_impl< const statespace::dart::SE2Joint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:309
aikido::constraint::dart::detail::createProjectableFor_impl< const statespace::dart::SO3Joint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:253
aikido::constraint::dart::detail::createTestableFor_impl< const statespace::dart::WeldJoint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:474
SO3UniformSampler.hpp
aikido::constraint::dart::detail::createProjectableFor_impl< const statespace::dart::SE3Joint >::create
static std::unique_ptr< Projectable > create(ConstStateSpacePtr)
Definition: JointStateSpaceHelpers-impl.hpp:427
aikido::constraint::dart::detail::createDifferentiableFor_impl< const statespace::dart::WeldJoint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:461
dart
Definition: FrameMarker.hpp:11
aikido::constraint::dart::detail::createProjectableFor_impl
Definition: JointStateSpaceHelpers-impl.hpp:50
aikido::statespace::dart::SE3Joint
SE3 for a DART FreeJoint.
Definition: SE3Joint.hpp:13
aikido::constraint::dart::detail::createDifferentiableFor_impl< const statespace::dart::SE3Joint >::create
static std::unique_ptr< Differentiable > create(ConstStateSpacePtr)
Definition: JointStateSpaceHelpers-impl.hpp:399
aikido::constraint::dart::detail::createTestableFor_impl< const statespace::dart::RJoint< N > >::create
static std::unique_ptr< Testable > create(ConstStateSpacePtr _stateSpace)
Definition: JointStateSpaceHelpers-impl.hpp:104
aikido::statespace::dart::R0Joint
RJoint< 0 > R0Joint
Definition: RnJoint.hpp:51
aikido::constraint::dart::detail::createSampleableFor_impl< const statespace::dart::SE3Joint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:438
aikido::constraint::dart::detail::createProjectableFor_impl< const statespace::dart::SO2Joint >::create
static std::unique_ptr< Projectable > create(ConstStateSpacePtr _stateSpace)
Definition: JointStateSpaceHelpers-impl.hpp:189
aikido::statespace::dart::SO2Joint
SO2 for a DART SingleDofJoint.
Definition: SO2Joint.hpp:13
aikido::constraint::dart::detail::createSampleableFor_impl< const statespace::dart::WeldJoint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:500
aikido::constraint::dart::detail::createDifferentiableFor_impl< const statespace::dart::RJoint< N > >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:88
Satisfied.hpp
aikido::constraint::dart::detail::createDifferentiableFor_impl< const statespace::dart::SO3Joint >::create
static std::unique_ptr< Differentiable > create(ConstStateSpacePtr _stateSpace)
Definition: JointStateSpaceHelpers-impl.hpp:223
aikido::constraint::dart::detail::createDifferentiableFor_impl< const statespace::dart::SO3Joint >::ConstStateSpacePtr
std::shared_ptr< const StateSpace > ConstStateSpacePtr
Definition: JointStateSpaceHelpers-impl.hpp:221
aikido::constraint::dart::detail::createProjectableFor_impl< const statespace::dart::WeldJoint >::create
static std::unique_ptr< Projectable > create(ConstStateSpacePtr _stateSpace)
Definition: JointStateSpaceHelpers-impl.hpp:489
aikido::constraint::dart::detail::createSampleableFor_impl< const statespace::dart::SE3Joint >::create
static std::unique_ptr< Sampleable > create(ConstStateSpacePtr, std::unique_ptr< common::RNG >)
Definition: JointStateSpaceHelpers-impl.hpp:440