kinematic_limits.cpp
Go to the documentation of this file.
1 
29 #include <boost/serialization/nvp.hpp>
31 
34 
35 namespace tesseract_common
36 {
37 void KinematicLimits::resize(Eigen::Index size)
38 {
39  joint_limits.resize(size, 2);
40  velocity_limits.resize(size, 2);
41  acceleration_limits.resize(size, 2);
42  jerk_limits.resize(size, 2);
43 }
44 
46 {
47  bool ret_val = true;
48  ret_val &= (joint_limits.isApprox(rhs.joint_limits, 1e-5));
49  ret_val &= (velocity_limits.isApprox(rhs.velocity_limits, 1e-5));
50  ret_val &= (acceleration_limits.isApprox(rhs.acceleration_limits, 1e-5));
51  ret_val &= (jerk_limits.isApprox(rhs.jerk_limits, 1e-5));
52  return ret_val;
53 }
54 
55 bool KinematicLimits::operator!=(const KinematicLimits& rhs) const { return !operator==(rhs); }
56 
57 template <class Archive>
58 void KinematicLimits::serialize(Archive& ar, const unsigned int /*version*/) // NOLINT
59 {
60  ar& BOOST_SERIALIZATION_NVP(joint_limits);
61  ar& BOOST_SERIALIZATION_NVP(velocity_limits);
62  ar& BOOST_SERIALIZATION_NVP(acceleration_limits);
63  ar& BOOST_SERIALIZATION_NVP(jerk_limits);
64 }
65 
66 template bool isWithinLimits<float>(const Eigen::Ref<const Eigen::Matrix<float, Eigen::Dynamic, 1>>& values,
67  const Eigen::Ref<const Eigen::Matrix<float, Eigen::Dynamic, 2>>& limits);
68 
69 template bool isWithinLimits<double>(const Eigen::Ref<const Eigen::Matrix<double, Eigen::Dynamic, 1>>& values,
70  const Eigen::Ref<const Eigen::Matrix<double, Eigen::Dynamic, 2>>& limits);
71 
72 template bool satisfiesLimits<float>(const Eigen::Ref<const Eigen::Matrix<float, Eigen::Dynamic, 1>>& values,
73  const Eigen::Ref<const Eigen::Matrix<float, Eigen::Dynamic, 2>>& limits,
74  float max_diff,
75  float max_rel_diff);
76 
77 template bool satisfiesLimits<double>(const Eigen::Ref<const Eigen::Matrix<double, Eigen::Dynamic, 1>>& values,
78  const Eigen::Ref<const Eigen::Matrix<double, Eigen::Dynamic, 2>>& limits,
79  double max_diff,
80  double max_rel_diff);
81 
82 template bool satisfiesLimits<float>(const Eigen::Ref<const Eigen::Matrix<float, Eigen::Dynamic, 1>>& values,
83  const Eigen::Ref<const Eigen::Matrix<float, Eigen::Dynamic, 2>>& limits,
84  const Eigen::Ref<const Eigen::Matrix<float, Eigen::Dynamic, 1>>& max_diff,
85  const Eigen::Ref<const Eigen::Matrix<float, Eigen::Dynamic, 1>>& max_rel_diff);
86 
87 template bool satisfiesLimits<double>(const Eigen::Ref<const Eigen::Matrix<double, Eigen::Dynamic, 1>>& values,
88  const Eigen::Ref<const Eigen::Matrix<double, Eigen::Dynamic, 2>>& limits,
89  const Eigen::Ref<const Eigen::Matrix<double, Eigen::Dynamic, 1>>& max_diff,
90  const Eigen::Ref<const Eigen::Matrix<double, Eigen::Dynamic, 1>>& max_rel_diff);
91 
92 template void enforceLimits<float>(Eigen::Ref<Eigen::Matrix<float, Eigen::Dynamic, 1>> values,
93  const Eigen::Ref<const Eigen::Matrix<float, Eigen::Dynamic, 2>>& limits);
94 
95 template void enforceLimits<double>(Eigen::Ref<Eigen::Matrix<double, Eigen::Dynamic, 1>> values,
96  const Eigen::Ref<const Eigen::Matrix<double, Eigen::Dynamic, 2>>& limits);
97 } // namespace tesseract_common
98 
101 BOOST_CLASS_EXPORT_IMPLEMENT(tesseract_common::KinematicLimits)
tesseract_common::KinematicLimits::serialize
void serialize(Archive &ar, const unsigned int version)
Definition: kinematic_limits.cpp:58
tesseract_common
Definition: allowed_collision_matrix.h:19
tesseract_common::KinematicLimits::resize
void resize(Eigen::Index size)
Definition: kinematic_limits.cpp:37
tesseract_common::KinematicLimits::operator==
bool operator==(const KinematicLimits &rhs) const
Definition: kinematic_limits.cpp:45
tesseract_common::KinematicLimits
Store kinematic limits.
Definition: kinematic_limits.h:41
TESSERACT_SERIALIZE_ARCHIVES_INSTANTIATE
#define TESSERACT_SERIALIZE_ARCHIVES_INSTANTIATE(Type)
Definition: serialization.h:49
macros.h
Common Tesseract Macros.
TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
Definition: macros.h:71
tesseract_common::satisfiesLimits< float >
template bool satisfiesLimits< float >(const Eigen::Ref< const Eigen::Matrix< float, Eigen::Dynamic, 1 >> &values, const Eigen::Ref< const Eigen::Matrix< float, Eigen::Dynamic, 2 >> &limits, float max_diff, float max_rel_diff)
tesseract_common::KinematicLimits::jerk_limits
Eigen::MatrixX2d jerk_limits
The jerk limits.
Definition: kinematic_limits.h:57
tesseract_common::isWithinLimits< float >
template bool isWithinLimits< float >(const Eigen::Ref< const Eigen::Matrix< float, Eigen::Dynamic, 1 >> &values, const Eigen::Ref< const Eigen::Matrix< float, Eigen::Dynamic, 2 >> &limits)
tesseract_common::KinematicLimits::operator!=
bool operator!=(const KinematicLimits &rhs) const
Definition: kinematic_limits.cpp:55
tesseract_common::enforceLimits< double >
template void enforceLimits< double >(Eigen::Ref< Eigen::Matrix< double, Eigen::Dynamic, 1 >> values, const Eigen::Ref< const Eigen::Matrix< double, Eigen::Dynamic, 2 >> &limits)
eigen_serialization.h
tesseract_common::satisfiesLimits< double >
template bool satisfiesLimits< double >(const Eigen::Ref< const Eigen::Matrix< double, Eigen::Dynamic, 1 >> &values, const Eigen::Ref< const Eigen::Matrix< double, Eigen::Dynamic, 2 >> &limits, double max_diff, double max_rel_diff)
TESSERACT_COMMON_IGNORE_WARNINGS_POP
#define TESSERACT_COMMON_IGNORE_WARNINGS_POP
Definition: macros.h:72
tesseract_common::KinematicLimits::acceleration_limits
Eigen::MatrixX2d acceleration_limits
The acceleration limits.
Definition: kinematic_limits.h:54
tesseract_common::KinematicLimits::velocity_limits
Eigen::MatrixX2d velocity_limits
The velocity limits.
Definition: kinematic_limits.h:51
kinematic_limits.h
Common Tesseract Kinematic Limits and Related Utility Functions.
serialization.h
Additional Boost serialization wrappers.
tesseract_common::enforceLimits< float >
template void enforceLimits< float >(Eigen::Ref< Eigen::Matrix< float, Eigen::Dynamic, 1 >> values, const Eigen::Ref< const Eigen::Matrix< float, Eigen::Dynamic, 2 >> &limits)
tesseract_common::KinematicLimits::joint_limits
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Eigen::MatrixX2d joint_limits
The position limits.
Definition: kinematic_limits.h:48
tesseract_common::isWithinLimits< double >
template bool isWithinLimits< double >(const Eigen::Ref< const Eigen::Matrix< double, Eigen::Dynamic, 1 >> &values, const Eigen::Ref< const Eigen::Matrix< double, Eigen::Dynamic, 2 >> &limits)


tesseract_common
Author(s): Levi Armstrong
autogenerated on Sun May 18 2025 03:01:40