1 #ifndef KINEMATICS_KINEMATICS_HPP 2 #define KINEMATICS_KINEMATICS_HPP 4 #include <Kinematics/Matrix.hpp> 6 #include <boost/math/constants/constants.hpp> 26 using IKSolution = std::pair<std::optional<Matrix<double, 5, 1>>,
27 std::optional<Matrix<double, 5, 1>>>;
78 static std::optional<Matrix<double, 3, 4>>
forward(
129 static constexpr
double precision = 0.0005;
135 static constexpr
double deviation = 0.001;
141 static constexpr std::size_t max_iterations = 50000;
146 static constexpr
double pi = boost::math::constants::pi<double>();
160 static constexpr Matrix<double, 5, 2> servo_limits = {{-150.0, 150.0},
static std::optional< Matrix< double, 3, 4 > > forward(Matrix< double, 5, 1 > angles)
Calculate forward kinematics given the angles of the robot arm.
~Kinematics()=default
Default destructor.
Contains the functions to compute the forward and inverse kinematics for the mitsubishi rv-2aj robot ...
Definition: Kinematics.hpp:20
Kinematics()=delete
Object is not constructable so default constructor is deleted.
std::pair< std::optional< Matrix< double, 5, 1 >>, std::optional< Matrix< double, 5, 1 >>> IKSolution
Alias std::pair to IKSolution.
Definition: Kinematics.hpp:27
static IKSolution jacobian_inverse(Matrix< double, 5, 1 > current_angles, const Matrix< double, 3, 1 > &goal)
Calculate joint angles based on the position the end effector of the robot arm should have...
Kinematics & operator=(const Kinematics &k)=delete
Object is not constructable so copy assignment is deleted.
static IKSolution analytical_inverse(const Matrix< double, 3, 1 > &goal)
Calculate joint angles based on the position the end effector of the robot arm should have...