Solving IK problems for open chains using optimization methods

Similar documents
CALCULATING TRANSFORMATIONS OF KINEMATIC CHAINS USING HOMOGENEOUS COORDINATES

CS-184: Computer Graphics. Today. Forward kinematics Inverse kinematics. Wednesday, November 12, Pin joints Ball joints Prismatic joints

Triangulation: A new algorithm for Inverse Kinematics

Inverse Kinematics (part 1) CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2018

Classical Gradient Methods

Jane Li. Assistant Professor Mechanical Engineering Department, Robotic Engineering Program Worcester Polytechnic Institute

Jane Li. Assistant Professor Mechanical Engineering Department, Robotic Engineering Program Worcester Polytechnic Institute

An Efficient Method for Solving the Direct Kinematics of Parallel Manipulators Following a Trajectory

Lecture 18 Kinematic Chains

A 12-DOF Analytic Inverse Kinematics Solver for Human Motion Control

arxiv: v1 [cs.cv] 2 May 2016

Articulated Characters

A Pair of Measures of Rotational Error for Axisymmetric Robot End-Effectors

Robotics kinematics and Dynamics

Inverse Kinematics. Given a desired position (p) & orientation (R) of the end-effector

Rotating Table with Parallel Kinematic Featuring a Planar Joint

Matlab Simulator of a 6 DOF Stanford Manipulator and its Validation Using Analytical Method and Roboanalyzer

This week. CENG 732 Computer Animation. Warping an Object. Warping an Object. 2D Grid Deformation. Warping an Object.

Dynamics modeling of structure-varying kinematic chains for free-flying robots

Multi Layer Perceptron trained by Quasi Newton learning rule

SYNTHESIS OF PLANAR MECHANISMS FOR PICK AND PLACE TASKS WITH GUIDING LOCATIONS

1724. Mobile manipulators collision-free trajectory planning with regard to end-effector vibrations elimination

Inverse Kinematics of 6 DOF Serial Manipulator. Robotics. Inverse Kinematics of 6 DOF Serial Manipulator

Lecture «Robot Dynamics»: Kinematic Control

A New Algorithm for Measuring and Optimizing the Manipulability Index

Intermediate Desired Value Approach for Continuous Transition among Multiple Tasks of Robots

Force-Moment Capabilities of Redundantly-Actuated Planar-Parallel Architectures

KINEMATICS FOR ANIMATION. Rémi Ronfard, Animation, M2R MOSIG

Humanoid Robotics. Inverse Kinematics and Whole-Body Motion Planning. Maren Bennewitz

CS 775: Advanced Computer Graphics. Lecture 3 : Kinematics

Using Redundancy in Serial Planar Mechanisms to Improve Output-Space Tracking Accuracy

Virtual Interaction System Based on Optical Capture

Contents. I Basics 1. Copyright by SIAM. Unauthorized reproduction of this article is prohibited.

Use of multilayer perceptrons as Inverse Kinematics solvers

autorob.github.io Inverse Kinematics UM EECS 398/598 - autorob.github.io

A Geometric Approach to Inverse Kinematics of a 3 DOF Robotic Arm

Visualization and Analysis of Inverse Kinematics Algorithms Using Performance Metric Maps

1498. End-effector vibrations reduction in trajectory tracking for mobile manipulator

Planar Robot Kinematics

Analytical Study of Algorithms for Solving Inverse Kinematic Problems in Robot Motion Control Systems

MTRX4700 Experimental Robotics

Solution of inverse kinematic problem for serial robot using dual quaterninons and plucker coordinates

Humanoid Robotics. Inverse Kinematics and Whole-Body Motion Planning. Maren Bennewitz

A New Algorithm for Measuring and Optimizing the Manipulability Index

ÉCOLE POLYTECHNIQUE DE MONTRÉAL

A large number of user subroutines and utility routines is available in Abaqus, that are all programmed in Fortran. Subroutines are different for

Serial Manipulator Statics. Robotics. Serial Manipulator Statics. Vladimír Smutný

SCREW-BASED RELATIVE JACOBIAN FOR MANIPULATORS COOPERATING IN A TASK

MCE/EEC 647/747: Robot Dynamics and Control. Lecture 3: Forward and Inverse Kinematics

Inverse Kinematics Solution for Trajectory Tracking using Artificial Neural Networks for SCORBOT ER-4u

Dynamic Analysis of Manipulator Arm for 6-legged Robot

Jacobian: Velocities and Static Forces 1/4

EEE 187: Robotics Summary 2

Development of a MATLAB Toolbox for 3-PRS Parallel Robot

CS545 Contents IX. Inverse Kinematics. Reading Assignment for Next Class. Analytical Methods Iterative (Differential) Methods

Inverse Kinematics Analysis for Manipulator Robot With Wrist Offset Based On the Closed-Form Algorithm

Theory of Robotics and Mechatronics

Jacobian: Velocities and Static Forces 1/4

A Detailed Look into Forward and Inverse Kinematics

Jane Li. Assistant Professor Mechanical Engineering Department, Robotic Engineering Program Worcester Polytechnic Institute

Finding Reachable Workspace of a Robotic Manipulator by Edge Detection Algorithm

4 Kinematic Linkages. Chapter 4. Kinematic Linkages. Department of Computer Science and Engineering 4-1

EE Kinematics & Inverse Kinematics

KINEMATIC ANALYSIS OF 3 D.O.F OF SERIAL ROBOT FOR INDUSTRIAL APPLICATIONS

Jacobians. 6.1 Linearized Kinematics. Y: = k2( e6)

Motion Capture. Motion Capture in Movies. Motion Capture in Games

METR 4202: Advanced Control & Robotics

UNIVERSITY OF OSLO. Faculty of Mathematics and Natural Sciences

Kinematics. Kinematics analyzes the geometry of a manipulator, robot or machine motion. The essential concept is a position.

Inverse Kinematics Programming Assignment

DETC APPROXIMATE MOTION SYNTHESIS OF SPHERICAL KINEMATIC CHAINS

Applying Neural Network Architecture for Inverse Kinematics Problem in Robotics

Inverse Kinematics of Robot Manipulators with Multiple Moving Control Points

The Collision-free Workspace of the Tripteron Parallel Robot Based on a Geometrical Approach

Transformation. Jane Li Assistant Professor Mechanical Engineering & Robotics Engineering

Inverse Kinematics II and Motion Capture

Simulation and Modeling of 6-DOF Robot Manipulator Using Matlab Software

Optimal Paint Gun Orientation in Spray Paint Applications Experimental Results

PSO based Adaptive Force Controller for 6 DOF Robot Manipulators

Kinematics - Introduction. Robotics. Kinematics - Introduction. Vladimír Smutný

EFFICIENT SOLVER FOR LINEAR ALGEBRAIC EQUATIONS ON PARALLEL ARCHITECTURE USING MPI

10/25/2018. Robotics and automation. Dr. Ibrahim Al-Naimi. Chapter two. Introduction To Robot Manipulators

Modern Methods of Data Analysis - WS 07/08

Inverse KKT Motion Optimization: A Newton Method to Efficiently Extract Task Spaces and Cost Parameters from Demonstrations

Research on Evaluation Method of Product Style Semantics Based on Neural Network

An Iterative Algorithm for Inverse Kinematics of 5-DOF Manipulator with Offset Wrist

Robot mechanics and kinematics

[2] J. "Kinematics," in The International Encyclopedia of Robotics, R. Dorf and S. Nof, Editors, John C. Wiley and Sons, New York, 1988.

A Comparative Study of Prediction of Inverse Kinematics Solution of 2-DOF, 3-DOF and 5-DOF Redundant Manipulators by ANFIS

DIMENSIONAL SYNTHESIS OF SPATIAL RR ROBOTS

Design and Optimization of the Thigh for an Exoskeleton based on Parallel Mechanism

1 Trajectories. Class Notes, Trajectory Planning, COMS4733. Figure 1: Robot control system.

MCE/EEC 647/747: Robot Dynamics and Control. Lecture 1: Introduction

OPTIMIZATION FOR AUTOMATIC HISTORY MATCHING

Computer Animation. Rick Parent

Resolution of spherical parallel Manipulator (SPM) forward kinematic model (FKM) near the singularities

Optimal Base Placement for a Discretely Actuated Robotic Manipulator (D-ARM)

Position and Orientation Control of Robot Manipulators Using Dual Quaternion Feedback

θ x Week Date Lecture (M: 2:05p-3:50, 50-N202) 1 23-Jul Introduction + Representing Position & Orientation & State 2 30-Jul

KINEMATIC IDENTIFICATION OF PARALLEL MECHANISMS BY A DIVIDE AND CONQUER STRATEGY

Transcription:

Proceedings of the International Multiconference on Computer Science and Information Technology pp. 933 937 ISBN 978-83-60810-14-9 ISSN 1896-7094 Solving IK problems for open chains using optimization methods Krzysztof Zmorzynski Warsaw University of Technology Faculty of Mathematics and Information Science Email: zmorzynskik@student.mini.pw.edu.pl Abstract Algorithms solving inverse problems for simple (open) kinematic chains are presented in this paper. Due to very high kinematics chains construction complexity, those algorithms should be as universal as possible. That is why optimization methods are used. They allow fast and accurate calculations for arbitrary kinematics chains constructions, permitting them to be used with success in robotics and similar domains. I. INTRODUCTION THE problem of finding kinematic chain configuration for given position of its effector is called inverse kinematics (IK) problem. One of the major application of solving IK problem is robotics: having destination translation and orientation of the end effector, robot joints configuration should be found to achieve this translation and orientation. Robot mechanical constraints (for arms and joints) should be taken into consideration. For some special cases, analytical and geometric methods for solving IK problems effectively exists [7], [9]. General explicit solution does not always have to exist, however. Also, as presented in [4], obtaining analytical solution might be very laborious and complex. These are the main drawbacks of analytical methods. Methods based on Jacobian matrix and its inverse are widely described in literature [6], [8], [10]. When Jacobian matrix is not invertible, transposition or pseudoinverse Jacobian matrix is used instead [6], [8]. Computational cost of Jacobian matrix operations might be very high, though, not to mention stability problems in the neighborhoods of singularities. In this paper optimization methods to solve IK problem are used. In contrast to methods mentioned above, they allow full automatization and perform all computations on a machine. They are also very universal, so can be used to solve arbitrary IK problem for open chains. Badler [1] used these methods to solve IK problem for more complicated chains containing many effectors, such as human skeleton. However, computation cost turned out to be to high to be used in real time, or even close to real time. Kim, Jang, Nam [2] used optimization methods to solve IK problem for binary manipulators (that is, each joint can take one of two possible positions). More general manipulators are considered in this paper, with joints able to take any value from specified bounds. Supplied application allows user to modify chain construction, set effector s target translation and orientation and a real time visualisation of chain state during computations. It is a robust method to validate chain construction and check if desired target position can be achieved. A. Chain configuration space II. CHAIN REPRESENTATION Open chains with each joint having single degree of freedom are considered in this paper. Whole chain configuration can be written as: c = (q 1, q 2,..., q n ) C (1) where C is chain configuration space, q i is i th joint parameter and n is number of joints. B. Joints Two types of joints are specified: prismatic joints and revolute joints. Parameter value of each joint has to be between minimum and maximum values qi min and qi max. Joints are connected to each other along their local Z axes. It is also possible to set constant offset value along this axis (as presented in fig. 1). This is slightly simpler representation than in [5]. In the case of prismatic joint, parameter is additional (beside fixed offset mentioned above) length along local joint Z axis. In the case of revolute joint, parameter is the rotation angle (in degrees) along specified local rotation axis. It is clear, that in order to model revolute joint with greater DOF, it is sufficient to create many revolute joints, with their fixed offsets set to 0, each allowing rotation about proper axis. Beside parameter, each joint is represented also by its position, vector g = (v, r), where g is element from space L = R 3 S 3. v is translation in world coordinates, r is rotation quaternion also in world coordinates. Joints translations and orientations are calculated in forward kinematics manner, starting from first (or root) joint. Formally, position of the effector is the map: E : C L (2) c C E(c) L The use of quaternions instead of rotation matrices allows faster computations. Effector s target translation and orientation is also represented by element e form space L. 933

934 PROCEEDINGS OF THE IMCSIT. VOLUME 3, 2008 orientation. Written in a formal way, it is a function: d : L L R + (3) (x, y) L L d(x, y) R + where x and y are two elements from space L. Following objective functions can be distinguished: translation only difference - Euclidean metric can be used: Fig. 1. axes. Sample configuration. Dotted lines represent offsets along local Z Fig. 3. A. Objective functions Fig. 2. Prismatic joint Revolute joint. Dotted line is a rotation axis. III. OPTIMIZATION METHODS In the case of solving IK problem, objective functions are generally distance (potential) functions from effector s current translation and orientation to effector s target translation and d pos (x, y) = (x v y v ) (x v y v ) (4) where is dot product in R 3. Square root can be omitted in calculations. orientation only difference: d rot (x, y) = (x r y r ) (x r y r ) (5) where is dot product of unit quaternions in S 3. translation and orientation difference at the same time: d(x, y) = w p d pos + w r d rot (6) where w p and w r are weights for translation and orientation functions, respectively. B. Optimization methods and calculations To minimise objective function, one can use gradient based methods, such as conjugate gradient method. It converges faster than steepest descent method since it takes conjugate (with respect to gradient) vector when choosing minimisation direction. Fletcher-Reeves formula for computing direction factor β can be used (see [3]). When β equals 1 it means that conjugate direction is no longer valid and should be set to 0 to make it steepest descent method. Quasi-Newtonian methods, like BFGS, are even better than conjugate gradient. Although they require Hessian matrix computation, which may be expensive, it is also possible to use an approximation based on a function gradient value (described in [13]). The BFGS algorithm is presented in [12]. Its implementation available at [11] was used in the application. One of the above functions, name it d (4-6), is chosen to be minimised. It takes current and target position of the effector. Recall that from eq. 2, its position is based on current chain configuration: c C (7) e = E(c) L where c is chain configuration. It could also be written, that the following function f is being minimised: f : C R + (8) c C, y L f(c) = d(e(c), y) R + where c is current chain configuration, y is the effector s target position. The function f is minimised with respect to chain configuration and that means joints parameters. Joints parameters constraints should be taken into consideration while performing calculations (see next section).

KRZYSZTOF ZMORZYNSKI: SOLVING IK PROBLEMS FOR OPEN CHAINS USING OPTIMIZATION METHODS 935 C. Gradient computation Gradient of the function f for conjugate gradient method is calculated using difference quotient (two point) method: f(c) = ( f q 1 (c),..., f q n (c)) (9) where c = (q 1,..., q n ) C and f q i : f (c) = f(q 1,..., q i + h,...,q n ) f(q 1,..., q i,..., q n ) q i h where h is appropriate small value (see IV on how this value could be chosen). While calculating partial derivatives f q i, joints constrains qi min and qi max are taken into account. It is ensured that: q min i q i + h q max i (10) When value q i +h is out of the bounds, it is truncated to qi min or qi max. The use of BFGS method requires more precision in gradient computation. Four point method is used: f 1 (c) = q i 12h (f(q 1,...,q i 2h,...,q n ) (11) 8f(q 1,..., q i h,...,q n ) + 8f(q 1,..., q i + h,...,q n ) f(q 1,...,q i + 2h,...,q n )) Thanks to definition of f like in eq. 8 it is possible to move from the original IK problem to the problem of multivariable objective function minimisation. IV. APPLICATION Created application allows user to interactively create and modify chain construction, save it to a file and load it later. Modification of joints parameters result in real time changes in chain visualisation. This applies to not only when user manipulates the parameters, but also while solving IK problem so it could be seen how the solution is being found. For given chain construction and end effector s target position, user chose which data types should be used in computations (see below), which objective function to minimise (see III-A) and which optimization method to use (see III-B). When calculations are finished, it is possible to view objective function value dependence on computation time and on iteration number. The application is written in C# 2.0 language. Calculations are based on generics objects, so every floating point number type in this language: 32 bit float, 64 bit double and 128 bit decimal can be used in computations. This allows to easily tell how much each data type has impact on the efficiency and precision of calculations. When calculating function gradient as stated in III-C, it is crucial to chose right value for h. As it turns out, it is not always when the smallest value performs best. Batch mode is available which allows user to compute with different values for h, so it could be estimated best for given chain construction and chosen data type. By using the.net 2.0 platform, it is possible to add new objective functions and optimisation methods solvers without need to recompile whole application. They are dynamically read at application startup from external.net dynamic link libraries (DLL) and added to internal database. User can chose between DirectX or OpenGL graphics libraries used to render the scene. It is also possible to resign from rendering at all, increasing the same application performance. V. EXAMPLES Following examples were computed on a AMD Turion 64 X2 (two cores, each 1.6GHz) notebook, on Windows XP 32 bit with 1GB RAM and.net 2.0. Optimization algorithm was running on a separate thread, which also means on the other core than main application thread. Null renderer was selected to avoid unnecessary rendering overhead. All calculations starts with all joints parameters set to 0 (fig. 5). Objective function 6 was used, with w p set to 0.5 and w r to 1. Today s widely used robots have mechanical arms precision set at about 10 4 and 10 5 [m]. IK problems solvers should be able to find chain configuration to achieve one of those precision. In this paper both values were researched. Fig. 4. Application screenshot. A. Example 1 relatively close to initial configuration Chain with 6 joints was used, listed in order from the first (root) joint: first three revolute joints with rotation axes around X, Y, Z, respectively, then prismatic joint and then two additional revolute joints with rotation axes X and Z. All revolute joints has parameters constraints set to ( 90, 90) degrees, where prismatic joint has (0, 2). Effector s target position was set relatively close to chain s initial configuration. Figure 6 presents final calculated configuration. All three data types were investigated, with h value (see III-C) set in batch mode. Tables I, II presents best times and values for each data type for 10 4 objective function precision,

936 PROCEEDINGS OF THE IMCSIT. VOLUME 3, 2008 TABLE III EXAMPLE 1 RESULTS FOR 10 5 AND CONJUGATE GRADIENT METHOD float 10 4 105 48 double 10 10 105 80 decimal 10 12 90 320 TABLE IV EXAMPLE 1 RESULTS FOR 10 5 AND BFGS METHOD float 10 2 50 30 double 10 10 40 45 decimal 10 2 45 250 Fig. 5. Starting configuration. types are similar. decimal type has significant calculation impact nearly 10 times slower than float, mainly because of its software.net emulation. Clearly, BFGS method is faster by about 50% than conjugate gradient method. It also needs half of the iterations to find the solution. Figure 7 presents rough overview of how convergence was achieved in the matter of iterations (left plot) and time (right plot). Fig. 6. Example 1 solution. for conjugate gradient method and BFGS, respectively. Results for 10 5 are presented in tables III and IV. TABLE I EXAMPLE 1 RESULTS FOR 10 4 AND CONJUGATE GRADIENT METHOD Fig. 7. Example 1 convergence overview. float 10 5 80 35 double 10 10 75 65 decimal 10 12 80 300 TABLE II EXAMPLE 1 RESULTS FOR 10 4 AND BFGS METHOD float 10 2 45 25 double 10 6 45 45 decimal 10 2 40 230 It can be seen from the tables I, II, III and IV, that float and double types performs best, due to their hardware support. float is fastest, probably because of smaller loading times from memory that double. Number of iterations for all B. Example 2 This time effector s target position was farther than in previous example (as in fig. 8), so computation time was expected to be longer. Also, to ensure that effector reaches target position, additional revolute joint was added at the end of the chain, and each revolute joint has constraints set to ( 180, 180) degrees. All revolute joints, except the first and the last one, have fixed offset set to 0. Results are presented in tables V and VII. TABLE V EXAMPLE 2 RESULTS FOR 10 4 AND CONJUGATE GRADIENT METHOD float 10 3 105 50 double 10 6 90 65 decimal 10 5 to 10 12 110 400

KRZYSZTOF ZMORZYNSKI: SOLVING IK PROBLEMS FOR OPEN CHAINS USING OPTIMIZATION METHODS 937 This time, calculation times excludes decimal type from any practical usage. For conjugate gradient method, two other types performs slightly worst than in the previous example, but still in the almost real-time. For BFGS method, there are almost no differences between both examples. For all data types, iteration count is quite similar to each other. Figure 9 shows how convergence was achieved. Fig. 9. Example 2 convergence overview. VI. CONCLUSIONS AND FUTURE WORK It is clear from above examples, that optimization methods can be widely used to solve IK problems in the real time, even on commonly available customers computers. This leaves no need of use dedicated and expensive workstations, as it has been before. Applying commonly used and available methods (such as conjugate gradient and BFGS) seems to work well in most cases. Their adaptation to multithreaded or multiprocessor environments may perform even better. REFERENCES Fig. 8. Example 2 solution. TABLE VI EXAMPLE 2 RESULTS FOR 10 4 AND BFGS METHOD float 10 2 40 25 double 10 1 35 45 decimal 10 1 to 10 12 35 40 250 TABLE VII EXAMPLE 2 RESULTS FOR 10 5 AND CONJUGATE GRADIENT METHOD float 10 3 120 58 double 10 6 100 76 decimal 10 5 to 10 12 120 500 TABLE VIII EXAMPLE 2 RESULTS FOR 10 5 AND BFGS METHOD [1] J. Zhao and N. I. Badler, Inverse kinematics positioning using nonlinear programming for highly articulated figures, ACM Transactions on Graphics, Vol. 113, No. 4, October 1994, pages 313 336. [2] Y. Y. Kim, G. W. Jang and S. J. Nam Inverse kinematics of binary manipulators by the optimization method in continous variable space, IEEE International Conference on Intelligent Robots and Systems, September 28 October 2, 2004, Sendai, Japan. [3] J. R. Shewchuk An Introduction to the Conjugate Gradient Method Without the Agonizing Pain, School of Computer Science, Carnegie Mellon University, August 4, 1994. [4] J. Angeles Fundamentals of Robotic Mechanical Systems: Theory, Methods and Algorithms, Springer, 2nd edition, 2003. [5] L. T. Wang and B. Ravani Recursive Computations of Kinematic and Dynamic Equations For Mechanical Manipulators, IEEE Journal of Robotics and Automation, VOL. RA-1, NO. 3, September 1985. [6] S. R. Buss, Introduction to Inverse Kinematics with Jacobian Transpose, Pseudoinverse and Dumped Least Squares methods, University of California, San Diego, April 2004. [7] Kang Teresa Ge Solving Inverse Kinematics Constraint Problems for Highly Articulated Models, Masters of Science thesis, University of Waterloo, 2000 [8] D. Park Inverse Kinematics, Computer Graphics, Department of Computer Science, University of Buenos Aires, Argentina. [9] X. Wu et al. A 12-DOF Analytic Inverse Kinematics Solver for Human Motion Control, Journal of Information and Computational Science 1: 1 2004, pages 137 141. [10] W. Stadler, P. Eberhard Jacobian motion and its derivatives, Mechatronics 11, 2001, pages 563 593. [11] S. Bochkanov, V. Bystritsky AlgLib - BFGS-B - http://www.alglib.net/ optimization/lbfgsb.php, 1999 2008. [12] R. H. Byrd, P. Lu and J. Nocedal. A Limited Memory Algorithm for Bound Constrained Optimization, SIAM Journal on Scientific and Statistical Computing, 1995, 16, 5, pp. 1190 1208. [13] J. Nocedal, S. J. Wright Numerical Optimization, Springer-Verlag, 1999. float 10 3 45 30 double 10 1 40 50 decimal 10 1 to 10 12 35 40 300