File Exchange

image thumbnail

Designing Robot Manipulator Algorithms

version (1.01 MB) by MathWorks Student Competitions Team
MATLAB and Simulink files for modeling and simulation of ROBOTIS OpenManipulator


Updated 15 Oct 2019

From GitHub

View Version History

View license on GitHub

This submission contains all the files used for the MATLAB and Simulink Robotics Arena videos, "Designing Robot Manipulator Algorithms" and "Controlling Robot Manipulator Joints".

The files include the following:
- A MATLAB script demonstrating how to implement inverse kinematic algorithms for a robot manipulator
- Simulink models of torque control of a robot manipulator using configuration-space and task-space controllers
- Simulink model of a manipulator using the derived inverse kinematics algorithm to pick up an object and follow a trajectory
- Simulink model of a manipulator using inverse kinematics to catch an object in the air that demonstrates possible next steps and the integration of perception algorithms

All files necessary to run the scripts and models, including CAD files and URDF files are either contained within the submission or downloaded using the startup script provided. You must have command-line Git installed to automatically download the robot description files.

For convenience, local copies of the Simscape Multibody Multiphysics Library and Simscape Multibody Contact Forces Library have been included with this submission. If you would like to install the latest version of these libraries, you can find them below:

* Simscape Multibody Multiphysics Library:
* Simscape Multibody Contact Forces Library:

Cite As

MathWorks Student Competitions Team (2021). Designing Robot Manipulator Algorithms (, GitHub. Retrieved .

Comments and Ratings (45)

Arun C S

It shows an error while executing the second section of the file (openManipulatorIK) "Error in openManipulatorIK (line 27)
exampleHelperPlotWaypoints(wayPoints); Can anyone help me solve this issue.

Johrdan Huamanchumo

Hi. I would like to know how you considered the motors for the mass matrix. Did you calculate the mass matrix of the motors separatedly, or did you consider that the motors are part of their corresponding link?

Johrdan Huamanchumo

sara hosseini

Very useful video. Thanks Jose

Jose Avendano

If you have trouble using git to download the "open_manipulator_description" folder, you can download it directly from this link:

sara hosseini

the folder Dependencies and therefore the .urdf file format of the Robot's model does not exist. How can we have access to it please?

Atikah Surriani

Arbi Parameswara

where i can find the .stl file on this project ?

zhizhi liu

Yan Tondok

I have imported XML file how can I can do all these things in my robot arm. like I want to do trajectory planning and inverse kinematics.

fatma said

first of all, thank you for this great work, but I got a file error Dependencies You upload the file to the clipboard but it is missing and there is no file in the loader for the robot on the file Dependencies

fatma said

Please I wanted a solution to run the farmers Designing Robot Manipulator Algorithms - MATLAB and Simulink Robotics Arena Because I do not need Dependencies file Please help me and my correspondence Is your “checkDependencies” function failing when you start the example

fatma said


fatma said

Please I wanted a solution to run the farmers Designing Robot Manipulator Algorithms - MATLAB and Simulink Robotics Arena Because I do not need Dependencies file Please help me

fatma said

Kindly help the example is very useful and wonderful but there are no file dependencies

mahmod jedi

Jav Fod


Anshul Suri

What is exactly robot(argument to the importrobot function)?
Like is it just a cad file or what is it exactly?

Thanks for the awesome work to Jose and Sebastian, the files worked fine in 2018b. Some issues originally but running, just run the IK first and then the other models.
Also be careful about the location of the folder. A long path may cause Simulink to stop working.

Summer Wood

biber alex

biber alex

It's owesome.

Sebastian Castro

@Xile Kang: If you email us at, I would be happy to give you older files that work with R2018a.

Xile Kang

2018a cannot use this model


open_manipulator_chain.urdf is not found.


Andy Chung

Longhai ZHAO



Not backward compatible with old versions of MATLAB


Sebastian Castro

@Sophia -- No, you shouldn't have to do anything. The checkDependencies.m script converts this .xacro file to a .urdf file so it works with the robotics.RigidBodyTree importer. And if all else fails, the whole example will resort to using a preloaded object.

If you are having issues with the example not working, send us an email at with information and we'll look into it!

Sophia Gillerman

This example is very helpful, but checkDependencies.m is looking for 'open_manipulator_chain.xacro'. Git clones 'open_manipulator.urdf.xacro' to the urdf folder under the descriptions folder. Should I modify checkDependencies.m so that it tries to build the urdf file using open_manipulator.urdf.xacro? Thank you.

Sebastian Castro

@Samer -- email us at with your detailed comments and we'll take a look!

samer salman

Great job guys.. I downloaded the files but i always seem to get this error
open_manipulator_chain.urdf is not found
and I also ran the startupExample.m but it has an other error.
what can I do to fix them?

Sebastian Castro

@Dominic -- I worked with Ghassan over email to find the cause of the issue and fix it. Similarly, please send us an email at and we will work with you.

This seems to happen when you manually download the robot arm files instead of installing Git on your computer and letting the startup script clone the Git repository. I will work on a fix to this case, and also include a pre-loaded MATLAB object as a backup.

Stay tuned for the next update by selecting "Add to Watchlist" on this submission.

Dominic Stuhl

you did a really nice job but i get the same error as ghassan.
I have started the startupExample script but I get twice the following error: (once for BallTracking and once for WaypointTracking)

Model Load
Error evaluating 'PreLoadFcn' callback of block_diagram 'openManipulatorBallTracking'.
Callback string is 'openManipulatorParameters;'
Caused by:
File open_manipulator_chain.urdf not found
Component:Simulink | Category:Block diagram warning
Could not evaluate MaskDisplay commands of block 'openManipulatorBallTracking/Ball Tracking Environment': Undefined function or variable 'actuatorType'.
Component:Simulink | Category:Block warning

please help me

Sebastian Castro

@Mohammed -- The original submission was created in release 2017b, and the latest changes use new blocks from release 2018a. So, I would recommend upgrading your MATLAB version if possible.

Else, the version 1.0 files (without torque control) *might* run in release 2017a. Please email us at and we can work with you.

Mohammed Suleiman

Thanks for your hard work, Can I have these file for matlab 2017a version.

Sebastian Castro

@Ghassan -- did you run the startupExample script to set the path for the example?

ghassan sharaf

first of all, thank you for this great work.
but it didn't work, even after downloading the files from:
I always get the message :
open_manipulator_chain.urdf is not found.


Tohru Kikawada

MATLAB Release Compatibility
Created with R2019b
Compatible with R2019b and later releases
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!