18 #ifndef GZ_PHYSICS_JOINT_HH_
19 #define GZ_PHYSICS_JOINT_HH_
37 public:
template <
typename PolicyT,
typename FeaturesT>
40 public:
using Scalar =
typename PolicyT::Scalar;
79 public:
Pose GetTransform()
const;
83 public:
template <
typename PolicyT>
86 public:
using Scalar =
typename PolicyT::Scalar;
90 public:
virtual Scalar GetJointPosition(
94 public:
virtual Scalar GetJointVelocity(
98 public:
virtual Scalar GetJointAcceleration(
102 public:
virtual Scalar GetJointForce(
106 public:
virtual Pose GetJointTransform(
const Identity &_id)
const = 0;
117 public:
template <
typename PolicyT,
typename FeaturesT>
120 public:
using Scalar =
typename PolicyT::Scalar;
150 public:
void SetAcceleration(
165 public:
template <
typename PolicyT>
168 public:
using Scalar =
typename PolicyT::Scalar;
171 public:
virtual void SetJointPosition(
175 public:
virtual void SetJointVelocity(
179 public:
virtual void SetJointAcceleration(
183 public:
virtual void SetJointForce(
197 public:
template <
typename PolicyT,
typename FeaturesT>
219 public:
Pose GetTransformFromParent()
const;
233 public:
Pose GetTransformToChild()
const;
237 public:
template <
typename PolicyT>
242 public:
virtual std::size_t GetJointDegreesOfFreedom(
243 const Identity &_id)
const = 0;
245 public:
virtual Pose GetJointTransformFromParent(
246 const Identity &_id)
const = 0;
248 public:
virtual Pose GetJointTransformToChild(
249 const Identity &_id)
const = 0;
258 public:
template <
typename PolicyT,
typename FeaturesT>
276 public:
void SetTransformFromParent(
const Pose &_pose);
281 public:
template <
typename PolicyT>
287 public:
virtual void SetJointTransformFromParent(
288 const Identity &_id,
const Pose &_pose) = 0;
297 public:
template <
typename PolicyT,
typename FeaturesT>
315 public:
void SetTransformToChild(
const Pose &_pose);
319 public:
template <
typename PolicyT>
325 public:
virtual void SetJointTransformToChild(
326 const Identity &_id,
const Pose &_pose) = 0;
341 public:
template <
typename PolicyT,
typename FeaturesT>
344 public:
using Scalar =
typename PolicyT::Scalar;
354 public:
void SetVelocityCommand(
359 public:
template <
typename PolicyT>
362 public:
using Scalar =
typename PolicyT::Scalar;
365 public:
virtual void SetJointVelocityCommand(
377 public:
template <
typename PolicyT,
typename FeaturesT>
380 public:
using Scalar =
typename PolicyT::Scalar;
390 public:
void SetMinPosition(
401 public:
void SetMaxPosition(
406 public:
template <
typename PolicyT>
409 public:
using Scalar =
typename PolicyT::Scalar;
412 public:
virtual void SetJointMinPosition(
416 public:
virtual void SetJointMaxPosition(
429 public:
template <
typename PolicyT,
typename FeaturesT>
432 public:
using Scalar =
typename PolicyT::Scalar;
442 public:
void SetMinVelocity(
453 public:
void SetMaxVelocity(
458 public:
template <
typename PolicyT>
461 public:
using Scalar =
typename PolicyT::Scalar;
464 public:
virtual void SetJointMinVelocity(
468 public:
virtual void SetJointMaxVelocity(
481 public:
template <
typename PolicyT,
typename FeaturesT>
484 public:
using Scalar =
typename PolicyT::Scalar;
506 public:
template <
typename PolicyT>
509 public:
using Scalar =
typename PolicyT::Scalar;
512 public:
virtual void SetJointMinEffort(
516 public:
virtual void SetJointMaxEffort(
524 public:
template <
typename PolicyT,
typename FeaturesT>
528 public:
void Detach();
531 public:
template <
typename PolicyT>
534 public:
virtual void DetachJoint(
const Identity &_jointID) = 0;
541 public:
template <
typename PolicyT,
typename FeaturesT>
546 PolicyT>::template Use<Wrench>;
556 public:
Wrench GetTransmittedWrench()
const;
572 public:
Wrench GetTransmittedWrench(
574 const FrameID &_inCoordinatesOf)
const;
577 public:
template <
typename PolicyT>
581 PolicyT>::template Use<Wrench>;
582 public:
virtual Wrench GetJointTransmittedWrenchInJointFrame(
583 const Identity &_jointID)
const = 0;
590 #include <gz/physics/detail/Joint.hh>