File Exchange

image thumbnail

Designing Robot Manipulator Algorithms

Example files for system-level simulation and control design of robot manipulators.


Updated 28 Sep 2018

View License

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:

Comments and Ratings (23)

biber alex

biber alex

It's owesome.

@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.


Uri (view profile)

Andy Chung

Longhai ZHAO



Not backward compatible with old versions of MATLAB


@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!

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.

@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?

@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

@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.

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

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

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.


Sina (view profile)

Tohru Kikawada


Upgraded models to R2018b. Now using the built-in Inverse Kinematics block in Robotics System Toolbox.

Minor updates due to robot description file changes in the ROBOTIS GitHub repository.

Bug fixes to check and resolve external file dependencies. Added preloaded MATLAB object as a backup in case external files cannot be set up correctly.

Added torque control examples, using the new R2018a Robotics System Toolbox blocks.

Adding a script to check necessary dependencies for submission

MATLAB Release Compatibility
Created with R2018b
Compatible with R2018b to any release
Platform Compatibility
Windows macOS Linux

Discover Live Editor

Create scripts with code, output, and formatted text in a single executable document.

Learn About Live Editor