Velocity Analysis of a 5-DOF Hybrid Manipulator. MATLAB Files

Published: 14 December 2022| Version 1 | DOI: 10.17632/cmgy3fn8fy.1
Anton Antonov


This dataset presents MATLAB files that solve the inverse velocity problem for a 5-DOF hybrid (paralell-serial) manipulator, introduced in paper in Fig. 11 of the paper (one can also consider paper or for the original version in Russian). The corresponding paper describing the applied algorithm will be presented on MeTrApp 2023 and published in the "Mechanism and Machine Science" series. The inverse position problem has been solved in dataset, and the corresponding paper describing the applied inverse position algorithm is going to appear in the "Remote Automation and Control" journal in 2023. 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 velocity 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 position problem. 3.2. Function "isp.m," which solves the inverse velocity problem. 3.3. Function "oscillate.m," which sets the trajectory used for the analysis. 3.4. 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 "plotISP.m," which plots the solution of the inverse velocity problem. 4.2. Function "plotTraj.m," which plots the trajectory set in "oscillate.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 its standard functions and other functions, which come with the "Modern Robotics" MATLAB package. The latter is available free online at This package is necessary for functions "isp.m" and "plotMech.m". 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, Kinematics of Mechanism