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...
Create a matrix with numerical values. 
Definition: Matrix.hpp:22