kinematics/differential_drive.hpp
Go to the documentation of this file.
1 
8 /*****************************************************************************
9 ** Ifdefs
10 *****************************************************************************/
11 
12 #ifndef ECL_MOBILE_ROBOT_DIFFERENTIAL_DRIVE_KINEMATICS_HPP_
13 #define ECL_MOBILE_ROBOT_DIFFERENTIAL_DRIVE_KINEMATICS_HPP_
14 
15 /*****************************************************************************
16 ** Includes
17 *****************************************************************************/
18 
19 #include <ecl/config/macros.hpp>
20 #include <ecl/linear_algebra.hpp>
22 #include "../macros.hpp"
23 
24 /*****************************************************************************
25 ** Namespaces
26 *****************************************************************************/
27 
28 namespace ecl {
29 
30 namespace mobile_robot {
31 
32 /*****************************************************************************
33 ** Interface
34 *****************************************************************************/
35 
64 class ecl_mobile_robot_PUBLIC DifferentialDriveKinematics {
65 public:
72  DifferentialDriveKinematics(
73  const double &fixed_axis_length,
74  const double& wheel_radius) :
75  bias(fixed_axis_length),
76  radius(wheel_radius)
77  {}
78 
96  ecl::LegacyPose2D<double> forward(const double &dleft, const double &dright) const;
97 
114  ecl::LegacyPose2D<double> forwardWithPlatformVelocity(const double & linearVelocity, const double & angularVelocity ) const;
115 
126  ecl::linear_algebra::Vector2d inverse(const double &linear_velocity, const double &angular_velocity) const;
127 
155  ECL_DEPRECATED static ecl::linear_algebra::Vector2d Inverse(const ecl::linear_algebra::Vector3d &a, const ecl::linear_algebra::Vector3d &b);
156 
184  static ecl::linear_algebra::Vector2d PartialInverse(const ecl::LegacyPose2D<double> &a, const ecl::LegacyPose2D<double> &b);
185 private:
186  double bias, radius;
187 };
188 
189 } // namespace mobile_robot
190 } // namespace ecl
191 
192 #endif /* ECL_MOBILE_ROBOT_DIFFERENTIAL_DRIVE_KINEMATICS_HPP_ */
linear_algebra.hpp
ecl::LegacyPose2D
legacy_pose2d.hpp
ecl_mobile_robot_PUBLIC
#define ecl_mobile_robot_PUBLIC
Definition: macros.hpp:37
ECL_DEPRECATED
#define ECL_DEPRECATED
macros.hpp
ecl


ecl_mobile_robot
Author(s): Daniel Stonier
autogenerated on Wed Mar 2 2022 00:14:03