COMPUTE INVERSE KINEMATICS IN A ROBOTIC ARM BY USING FUZZY LOGIC Subject: Robotics Applications Student: Bui Huy Tien Student ID: M961Y204.

Slides:



Advertisements
Similar presentations
ECE 8443 – Pattern Recognition EE 3512 – Signals: Continuous and Discrete Objectives: Response to a Sinusoidal Input Frequency Analysis of an RC Circuit.
Advertisements

Manipulator’s Inverse kinematics
Review: Homogeneous Transformations
Animation Following “Advanced Animation and Rendering Techniques” (chapter 15+16) By Agata Przybyszewska.
Forward and Inverse Kinematics CSE 3541 Matt Boggus.
Basis Expansion and Regularization Presenter: Hongliang Fei Brian Quanz Brian Quanz Date: July 03, 2008.
CSCE 641: Forward kinematics and inverse kinematics Jinxiang Chai.
1Notes  Handing assignment 0 back (at the front of the room)  Read the newsgroup!  Planning to put 16mm films on the web soon (possibly tomorrow)
HCI 530 : Seminar (HCI) Damian Schofield. HCI 530: Seminar (HCI) Transforms –Two Dimensional –Three Dimensional The Graphics Pipeline.
Pattern Recognition and Machine Learning
Rational Trigonometry Applied to Robotics
CSCE 641: Forward kinematics and inverse kinematics Jinxiang Chai.
IK: Choose these angles!
COMP322/S2000/L221 Relationship between part, camera, and robot (cont’d) the inverse perspective transformation which is dependent on the focal length.
Development of Empirical Models From Process Data
CSCE 689: Forward Kinematics and Inverse Kinematics
COMP322/S2000/L23/L24/L251 Camera Calibration The most general case is that we have no knowledge of the camera parameters, i.e., its orientation, position,
WELCOME TO THE WORLD OF FUZZY SYSTEMS. DEFINITION Fuzzy logic is a superset of conventional (Boolean) logic that has been extended to handle the concept.
The Calibration Process
The linear algebra of Canadarm
The Equivalence between fuzzy logic controllers and PD controllers for single input systems Professor: Chi-Jo Wang Student: Nguyen Thi Hoai Nam Student.
KINEMATICS ANALYSIS OF ROBOTS (Part 1) ENG4406 ROBOTICS AND MACHINE VISION PART 2 LECTURE 8.
Ch 8.1 Numerical Methods: The Euler or Tangent Line Method
February 21, 2000Robotics 1 Copyright Martin P. Aalund, Ph.D. Computational Considerations.
Constraints-based Motion Planning for an Automatic, Flexible Laser Scanning Robotized Platform Th. Borangiu, A. Dogar, A. Dumitrache University Politehnica.
Simpson Rule For Integration.
INVERSE KINEMATICS IN A ROBOTIC ARM AND METHODS TO AVOID SINGULARITIES Submitted By :-Course Instructor :- Avinash Kumar Prof. Bhaskar Dasgupta Roll No.-
PROBABILITY AND STATISTICS FOR ENGINEERING Hossein Sameti Department of Computer Engineering Sharif University of Technology Two Functions of Two Random.
An Introduction to Programming and Algorithms. Course Objectives A basic understanding of engineering problem solving process. A basic understanding of.
KINEMATICS ANALYSIS OF ROBOTS (Part 2)
MECN 4110: Mechanisms Design Mechanisms Design MECN 4110 Professor: Dr. Omar E. Meza Castillo
1 SUPPORT VECTOR MACHINES İsmail GÜNEŞ. 2 What is SVM? A new generation learning system. A new generation learning system. Based on recent advances in.
Vectors and Matrices In MATLAB a vector can be defined as row vector or as a column vector. A vector of length n can be visualized as matrix of size 1xn.
Progress in identification of damping: Energy-based method with incomplete and noisy data Marco Prandina University of Liverpool.
FUZZY LOGIC 1.
CSCE 441: Computer Graphics Forward/Inverse kinematics Jinxiang Chai.
A Semi-Blind Technique for MIMO Channel Matrix Estimation Aditya Jagannatham and Bhaskar D. Rao The proposed algorithm performs well compared to its training.
DATA MINING WITH CLUSTERING AND CLASSIFICATION Spring 2007, SJSU Benjamin Lam.
Chapter 7. Learning through Imitation and Exploration: Towards Humanoid Robots that Learn from Humans in Creating Brain-like Intelligence. Course: Robots.
1cs426-winter-2008 Notes  Will add references to splines on web page.
Accurate Robot Positioning using Corrective Learning Ram Subramanian ECE 539 Course Project Fall 2003.
College Algebra Sixth Edition James Stewart Lothar Redlin Saleem Watson.
Inverse Kinematics for Robotics using Neural Networks. Authors: Sreenivas Tejomurtula., Subhash Kak
Outline: Introduction Solvability Manipulator subspace when n<6
Topics 1 Specific topics to be covered are: Discrete-time signals Z-transforms Sampling and reconstruction Aliasing and anti-aliasing filters Sampled-data.
Lecture 39 Numerical Analysis. Chapter 7 Ordinary Differential Equations.
Lecture 9: PID Controller.
CSCE 441: Computer Graphics Forward/Inverse kinematics Jinxiang Chai.
A Presentation on Adaptive Neuro-Fuzzy Inference System using Particle Swarm Optimization and it’s Application By Sumanta Kundu (En.R.No.
A PID Neural Network Controller
Character Animation Forward and Inverse Kinematics
Modeling and Simulation Dr. Mohammad Kilani
A Signal Processing Approach to Vibration Control and Analysis with Applications in Financial Modeling By Danny Kovach.
The Calibration Process
Minor Project - Human Interaction Robot Arm
Basilio Bona DAUIN – Politecnico di Torino
A Simple Artificial Neuron
Feature Selection for Pattern Recognition
Accurate Robot Positioning using Corrective Learning
CHAPTER 2 FORWARD KINEMATIC 1.
Inverse Kinematics (Reza N. Jazar, Ch. 6)
Mobile Robot Kinematics
Dr. Unnikrishnan P.C. Professor, EEE
Trigonometric Identities
2-DOF Manipulator Now, given the joint angles Ө1, Ө2 we can determine the end effecter coordinates x and y.
Vectors and Matrices In MATLAB a vector can be defined as row vector or as a column vector. A vector of length n can be visualized as matrix of size 1xn.
Coordinate Transformation in 3D Final Project Presentation
Outline: Introduction Solvability Manipulator subspace when n<6
Chapter 4 . Trajectory planning and Inverse kinematics
Chapter 3 Modeling in the Time Domain
Presentation transcript:

COMPUTE INVERSE KINEMATICS IN A ROBOTIC ARM BY USING FUZZY LOGIC Subject: Robotics Applications Student: Bui Huy Tien Student ID: M961Y204

Contents: 1. Introduce the Inverted Kinemactics system 2. Why use Fuzzy Logic 3. Overview the Fuzzy Logic 4. Genedating dataset 5. Check the rusult of Fuzzy logic 6. Conclusions

1. Introduce Inverted Kinematics * Kinematics is the science of motion. In a two-joint robotic arm, given the angles of the joints, the kinematics equations give the location of the tip of the arm. Invers kinematics refers to the reverse process. Given a desired location for the tip of the robotic arm, what should the angles of the joints be so as to locate the tip of the arm at the desired location * There is usually more than one solution and can at times be a difficult problem to solve Figure 1: Illustration showing the Two-robotic arm with the two angles: theta1 and theta 2 * This is a typical problem in robotics that needs to be solved to control a robotic arm to perform tasks it is designated to do. In a 2- dimensional input space, with a two-joint robotic arm and given the desired co-ordinate, the problem reduces to finding the two angles involved.

2. Why Use Fuzzy Logic? * For simple structures like the two-joint robotic arm, it is possible to mathematically deduce the angles at the joints given the desired location of the tip of the arm. However, with more complex structures (eg: n-joint robotic arms operating in a 3-dimensional input space) deducing a mathematical solution for the inverse kinematics may prove challenging. * Using fuzzy logic, we can construct a Fuzzy Inference System that deduces the inverse kinematics if the forward kinematics of the problem is known, hence, sidestepping the need to develop an analytical solution. Also, the fuzzy solution is easily understandable and does not require special background knowledge to comprehend and evaluate it.

3. Overview of Fuzzy Solution Figure 2: Fuzzy Controller

3. Overview of Fuzzy Solution * Since the forward kinematics formulae for the two-joint robotic arm are known, x and y co-ordinates of the tip of the arm are deduced for the entire range of angles of rotation of the two joints. The co-ordinates and the angles are saved to be used as training data to train ANFIS (Adaptive Neuro- Fuzzy Inference System) network. * In this case, the input-output data refers to the "coordinates-angles" dataset. The coordinates(x,y) act as input to the ANFIS and the angles act as the output. The learning algorithm "teaches" the ANFIS to map the co- ordinates to the angles through a process called training. At the end of training, the trained ANFIS network would have learned the input-output map and be ready to be deployed into the larger control system solution.

4. Data Generation * Let theta1 be the angle between the first arm and the ground. Let theta2 be the angle between the second arm and the first arm (Refer to Figure 1 for illustration). Let the length of the first arm be l1 and that of the second arm be l2. Figure 3: Ilustrate showing all posible theta1 and theta2 values * Let us assume that the first joint has limited freedom to rotate and it can rotate between 0 and 90 degrees. Similarly, assume that the second joint has limited freedom to rotate and can rotate between 0 and 180 degrees.

Figure 3: Ilustrate showing all posible theta1 and theta2 values * Now, for every combination of theta1 and theta2 values, the x and y coordinates are deduced using forward kinematics formulae. * The following code snippet shows how data is generated for all combination of theta1 and theta2 values and saved into a matrix to be used as training data.

l1 = 10; % length of first arm l2 = 7; % length of second arm theta1 = 0:0.1:pi/2; % all possible theta1 values theta2 = 0:0.1:pi; % all possible theta2 values [THETA1, THETA2] = meshgrid(theta1, theta2); % generate a grid of theta1 and theta2 values X = l1 * cos(THETA1) + l2 * cos(THETA1 + THETA2); % compute x coordinates Y = l1 * sin(THETA1) + l2 * sin(THETA1 + THETA2); % compute y coordinates data1 = [X(:) Y(:) THETA1(:)]; % create x-y- theta1 dataset data2 = [X(:) Y(:) THETA2(:)]; % create x-y- theta2 dataset Figure 3: Ilustrate showing all posible theta1 and theta2 values

* The following plot shows all the X-Y data points generated by cycling through different combinations of theta1 and theta2 and deducing x and y co-ordinates for each. The plot can be generated by using the code-snippet shown below. The plot isillustrated further for easier understanding. Figure 4: X-Y co-ordinates generated for all posible theta1 and theta2 combination using forward kinematics formulae

5.Check the rusult for using Fuzzy Logic * Having trained the networks, an important follow up step is to validate the networks to determine how well the ANFIS networks would perform inside the larger control system. * Since this demo problem deals with a two-joint robotic arm whose inverse kinematics formulae can be derived, it is possible to test the answers that the ANFIS networks produce with the answers from the derived formulae. * Let's assume that it is important for the ANFIS networks to have low errors within the operating range 0<x<2 and 8<y<10. * The theta1 and theta2 values are deduced mathematically from the x and y coordinates using inverse kinematics formulae.

x = 0:0.1:2; % x coordinates for validation y = 8:0.1:10; % y coordinates for validation [X, Y] = meshgrid(x,y); c2 = (X.^2 + Y.^2 - l1^2 - l2^2)/(2*l1*l2); s2 = sqrt(1 - c2.^2); THETA2D = atan2(s2, c2); % theta2 is deduced k1 = l1 + l2.*c2; k2 = l2*s2; THETA1D = atan2(Y, X) - atan2(k2, k1); % theta1 is deduced * THETA1D and THETA2D are the variables that hold the values of theta1 and theta2 deduced using the inverse kinematics formulae. * theta1 and theta2 values predicted by the trained anfis networks are obtained by using the command evalfis which evaluates a FIS for the given inputs.

* Here, evalfis is used to find out the FIS outputs for the same x- y values used earlier in the inverse kinematics formulae. XY = [X(:) Y(:)]; THETA1P = evalfis(XY, anfis1); % theta1 predicted by anfis1 THETA2P = evalfis(XY, anfis2); % theta2 predicted by anfis2 * Now, we can see how close the FIS outputs are with respect to the deduced values. theta1diff = THETA1D(:) - THETA1P; theta2diff = THETA2D(:) - THETA2P; subplot(2,1,1); plot(theta1diff); ylabel('THETA1D - THETA1P'); title('Deduced theta1 - Predicted theta1') subplot(2,1,2); plot(theta2diff); ylabel('THETA2D - THETA2P'); title('Deduced theta2 - Predicted theta2')

Legend: * The errors are in the 1e-3 range which is a fairly good number for the application it is being used in. * However this may not be acceptable for another application, in which case the parameters to the anfis function may be tweaked until an acceptable solution is arrived at. Also, other techniques like input selection and alternate ways to model the problem may be explored. Figure 5: Checking error

6. Conclusion This demo illustrated using ANFIS to solve an inverse kinematics problem. Fuzzy logic has also found numerous other applications in other areas of technology like non-linear control, automatic control, signal processing, system identification, pattern recognition, time series prediction, data mining, financial applications etc.

THANKS FOR YOUR ATTENTION!