Inverse Position Analysis of a 5-DOF Hybrid Manipulator. MATLAB Files

Published: 30 January 2023| Version 1 | DOI: 10.17632/vct5jzkzk6.1
Anton Antonov


This dataset presents MATLAB files that solve the inverse kinematic problem (inverse kinematics) for a 5-DOF hybrid (paralell-serial) manipulator, introduced in paper in Fig. 12 of the paper (one can also consider paper or for the original version in Russian). The corresponding paper describing the applied inverse kinematics algorithm will be presented on MESROB 2023 and published in the "Mechanism and Machine Science" series. Please check the list of works at The dataset includes the following functions and folders: 1. Function "main.m" is a complete program, which solves the inverse kinematic problem and plots the results. It can be run using "Run" or "Run and Advance" commands in the "Editor" tab. 2. Folder "Init" includes function "initParams.m," which sets the geometrical parameters of the considered manipulator. 3. Folder "Kinematics" includes: 3.1. Function "ikp.m," which solves the inverse kinematic problem. 3.2. Function "traj.m," which sets the trajectory used for the analysis. 3.3. Function "PoESym.m," which generates auxiliary functions, presented in folder "Auxiliary," from symbolic expressions. This function is not necessary to run "main.m," because all the required auxiliary functions have already been generated in this dataset. 4. Folder "Plot" includes: 4.1. Function "plotIKP.m," which plots the solution of the inverse kinematic problem. 4.2. Function "plotTraj.m," which plots the trajectory set in "traj.m" and used for the analysis. 4.3. Function "plotMech.m," which plots the manipulator in the required configuration. 4.4. Function "plotSettings.m," which provides plot settings for the plots generated by "plotTraj.m" and "plotMech.m."


Steps to reproduce

The functions have been obtained in MATLAB R2022a using standard functions. If you just want to run function "main.m" and get the results of the inverse kinematics, no additional toolboxes are required. The function can be run using "Run" or "Run and Advance" commands in the "Editor" tab. If you want to use function "plotMech.m," which plots the manipulator in the desired configuration, you will require the "Modern Robotics" MATLAB package and its functions. This package is available free online at If you want to use function "PoESym.m" and generate auxiliary functions from the symbolic expressions independently, you will require the following: 1. MATLAB Symbolic Math Toolbox: 2. The "Modern Robotics" MATLAB package mentioned above. After installing the package, you should find function "NearZero.m" and replace the line judge = norm(near) < 1e-6; with the following code: normVal = norm(near); if isnumeric(normVal) judge = normVal < 1e-6; else if isequal(normVal, sym(0)) judge = true; else judge = false; end end This substitution is required because the "Modern Robotics" package does not support the symbolic expressions by default. After the substitution, "PoESym.m" should work well.


Institut masinovedenia imeni A A Blagonravova Rossijskoj akademii nauk


Mechanical Engineering, Robotics, Kinematics, Inverse Analysis, Serial-Parallel Manipulator


Russian Science Foundation