# Inverse Kinematics of a 5-DOF Hybrid Manipulator. MATLAB Files

## Description

This dataset presents MATLAB files that solve the inverse kinematics problem for a 5-DOF hybrid (paralell-serial) manipulator, introduced in paper doi.org/10.3103/S1052618818050059 in Fig. 11 of the paper (one can also consider paper doi.org/10.31857/S023571190001553-9 or https://elibrary.ru/item.asp?id=36425431 for the original version in Russian). The corresponding paper describing the applied inverse kinematics algorithm is going to appear soon: please check the list of works at https://orcid.org/0000-0002-3928-5440. The dataset includes the following functions and folders: 1. Function "main.m" is a complete program, which solves the inverse kinematics 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 kinematics 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, which are necessary, have already been generated in this dataset. 4. Folder "Plot" includes: 4.1. Function "plotIKP.m," which plots the solution of the inverse kinematics 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."

## Files

## Steps to reproduce

The functions have been obtained in MATLAB R2020a 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 "PoESym.m" and generate auxiliary functions from the symbolic expressions independently, you will require the following: 1. MATLAB Symbolic Math Toolbox: https://www.mathworks.com/products/symbolic.html. 2. The "Modern Robotics" MATLAB package, which has the functions used in "PoESym.m." This package is available free online at https://github.com/NxRLab/ModernRobotics. 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.