This research is a part of Introduction to Computation Intelligence course FS2018 by Uriel Dembys, Thunpisit Amnuaikiatloet, Abdulrahman Eldarrat, Jonathan Davis, Guangyu Sun under supervision of Dr. James M. Keller at University of Missouri


One of the most important problems in programming robots is the computation of forward and inverse kinematics, which are important to manipulate a robotic arm. On one hand, the forward kinematics allows to find the pose (position and orientation values) of the end-effector (or tip-point) given the joint values. On the other hand, the inverse kinematics is the task of recovering the joints configuration (the joints values) from the pose (position and orientation values) of the manipulator end-effector. This task allows the robot to perform its works because it determines how much each joint must move to reach the desired end-effector pose. The proposed project aims to compare the predicted joint configuration from soft-computing methods involves using Artificial Neural Networks (ANN) and Adaptive Neuro Fuzzy Inference System (ANFIS). Using a robotics arm from Kinova Robotics with 6 degrees of freedom, the proposed solution ensures its viability in real world applicable problem spaces.


We used ANN and ANFIS methods to compute the Inverse Kinematics of the 6 DOF robotic arm from Kinova Robotics. Using the following models:

  • Single joint training ANN, each joint output will be learned using all inputs in a network consisting of 6 layers.
  • All-joints training ANN, all the joint outputs will be computed with all the inputs in a network consisting of 6 layers.
  • ANFIS single joint trainng FNN, each joint output will be learned using all inputs using a 5 layer model.


Using the Denavit-Hartenberg (DH) Table and the Forward Kinematics, were generated three different datasets (Figure 3.1, 3.2, and 3.3). The workspace of the robot being constrained by limiting the moving range of each, dataset 1 is generated to learn and predict a specific trajectory, dataset 2 is generated to learn random desired points in the constrained workspace and dataset 3 is generated to learn multiple circled trajectories.

For dataset 1, Figure 3.4, 3.5 and 3.6 show example plots of the predicted joint 3 versus the desired joint 3. A look at the plots shows that for all the 3 algorithms used (ANN for all joints, ANN for each joint and FNN), the predictions fall under an exceptable range, in the sense that if used to move a robotic manipulator to a desired position, this one will actually reach it. However, a closer look shows that, the FNNs results are more precise than both NNs (single and mutli-joint).

After completing all of the experiments, we analyze the results. The table below summarizes the MSE (Mean Squared Error) between the desired joint values and the predicted joint values for each of the three networks.

A reconstruction of the X-Y-Z coordinates from the predicted test samples was performed using the forward kinematics to expand on, and show a comparision between the predicted and expected outcome. The following was plotted and can be seen in Figures 3.8, 3.9 and 3.10. An analysis of all three networks at the same scale, show that the ANFIS is a more accurate solution for the proposed inverse kinematics problem. In the case of using either of the ANNs as a proposed solution, neither can reach the precision which the FNN consistenly gives.


ANN and FNN soft-computing methods can be handy when it comes to computing the inverse kinematics of a robotic manipulator. The learning process requires the workspace of the robot to be constrained by limiting its joints ranges, and often focuses on specific trajectories (datasets) generated using the forward kinematics. For the datasets used in this project; ANN for all joints, ANN for each joint and FNN, all give good predictions but overall FNN out perfroms the others in terms of accuracy and precision. In conclusion, for real world applications where robotic manipulators need to be precise (i.e. surgical robots), FNN might be the prefered choice to compute the inverse kinematics.