File Exchange

image thumbnail

Robotic arm simulator

version (1.55 MB) by Diego ALMEIDA
Simulate articulated robotic arm


Updated 15 Jul 2016

View License

open and run SMART_GUI.m in the matlab Files folder. Follow the directions in the Messages box.
The program can simulate only articulated robots, with indefinite number of degrees of freedom. A robot with six DOF is already configured but you can load your own robot with extension .STL and edit the parameters in the table that shows by pressing the button Edit Parameters in the Settings tab.
In the first tab you can edit the program settings, in the second you will give commands to the robot. In the tab Programs you can create a list of commands to run automatically and in the last tab you can simulate the dynamical behavior of the robot.
You can download the documentation of the program using the link provided in documentation file (in Portuguese only, in the future I will write in English).
There are some functionalities that I could not implement in this version. Hopefully they will be released in the future.
All suggestions for more features are welcome. If you found a problem please comment.

Cite As

Diego ALMEIDA (2021). Robotic arm simulator (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (23)

Parth Kulkarni


Could you please record a simple video to show us how using this code; May you can also upload it to Youtube

puneet saran

A great job is done, for this project.
Can you please tell me how to run the dynamic simulation?

puneet saran

Abhishek Dixit


Great work. Thanks. Is there any update about the English version of the documents?

biber alex

@Victor Lustig hehe=-=


Hello, please can you send me the documentation file



Could you please record a simple video to show us how using this code; May you can also upload it to Youtube. Also could you please send me the pdf file of the documentation ? Thank a lot.

Victor Lustig

biber alex, here it is!

biber alex

Can you record a video to show how to use your tools,and to upload to Youtube. I think it must be a cool work. thanks.

Ricardo Beccarini

Excellent job! Thanks

Jose Luis Gaytan

Thank you ALMEIDA !


Hi Thennarasu,
On the tab COMMANDS you select the trajectory 'Parametrised (time)' in the TRAJECTORY OPTIONS menu, which will enable the Time [s] (bellow the trajectory), and the X(t), Y(t) and Z(t) text boxes (in the PARAMETRISED TRAJ panel). In the time field you type the time period, eg.: 2*pi, and in the x,y and z coordinates you copy and paste the expressions in the demo, for example to create an ellipse you enter 800 in the X(t) field, 0+200*cos(t)*cos(30)-400*sin(t)*sin(30) in the Y(t) box, and 600+200*cos(t)*sin(30)+400*sin(t)*sin(30) in the Z(t). It is also possible to make the end-effector move in a constant linear velocity, for that choose the Parametrised (Cst Vel) in the trajectory options and add a linear velocity such as 200 [mm/s].


how to run the demo co-ordinates.pls guide me
X = 800
Y = 0+200*cos(t)*cos(30)-400*sin(t)*sin(30)
z = 600+200*cos(t)*sin(30)+400*sin(t)*sin(30)

X = 600
Y = 300*cos(t)
Z = 400*sin(3*t)+700
time =

X = 600;
Y = 500*cos(t) + 100
Z = 500*sin(t) + 600
time = 0 a 2*pi

R = 630
r = 280
d = 140
X = 700
Y = (630-280)*cos(t) + 140*cos(((630-280)/280)*t)
Z = (630-280)*sin(t) - 140*sin(((630-280)/280)*t) + 600
time = 8*pi
linear velocity = 200

x = 20*t+500
y = 0 + 20*t*cos(t)
z = 700+20*t*sin(t)
tempo = de 0 a 8*pi

David Ordóñez

Dear Diego,
First of all congratulations for the amazing job and thank you for this useful program with all its functionalities. I would like to ask for some features that I am not able to make them work on the GUI.
1. Move to coordinate
2. Move by increment

Anytime I try to define a program with one of these commands I get a warning on the Matlab command window displaying the following: ''Warning: The assignment added rows to the table, but did not assign values to all of the table's existing variables. Those variables have been extended with rows containing default values. '' Followed by an error during its execution after pressing run. I introduce X, Y, Z, time and Orientation. Nevertheless it seems that the matrix P does not get the correct values of the coordinate. I have tried several input structures on the Orientation slot. If you could indicate me what I am doing wrong and how to write the variables properly it would be really helpful.

Thanks a lot.


Hi Sara Ali. The program was implemented using Guide and Matlab functions for computing the trajectory, kinematics, dynamics and for drawing the robot (animation). There are two simulink files that implement robot control, but they are not properly connected to the program in this version (they are not used). In this version, you can only simulate the robot, if you need to control a physical robot, or simulate the control system, some code implementation is necessary. I am currently working on an improved version that uses simulink and arduino libraries to control physical robots, but I don't know when it will be released. You can contact me at

sara Ali

hi there, are you using GUI or Simulink? mind me to ask if you could drop me your email?

Anju Shino

Yiwu Fang

Bravo! It helps me a lot. Thanks very much.

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

Inspired by: CAD2MATDEMO.M

Community Treasure Hunt

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

Start Hunting!

matlab Files/