This repository contains code and resources related to two pivotal robotics books. Dive into the world of robotics through the expert lens of seasoned authors.
- Authors: Prof. Hamid D. Taghirad & Mohammad A. Khosravi
- Copyright: ARAS @ 2023
A comprehensive introduction to the fascinating world of robotics, covering essential concepts and techniques.
- Author: Prof. Hamid D. Taghirad
- Copyright: CRC Press, 2013
- DOI: 10.1201/b16096
A detailed exploration into the mechanics and control of parallel robots, unveiling complex dynamics and innovative control strategies.
Harness the power of these books with the following tools:
We welcome contributions! If you're interested in enhancing this repository:
- Fork the repository.
- Create a new branch (
feature/your_feature
orbugfix/your_bugfix
). - Implement your changes.
- Commit and push to your branch.
- Submit a pull request.
Encountered an issue or have a question? Open an issue on our GitHub repository.
This project is licensed under the MIT License - feel free to use and modify as per your needs.
Check out the repository for detailed code and resources:
Leverage this repository for your robotics projects and research endeavors.
If you find this repository useful in your research or work, please cite:
- H.D. Taghirad (2013). Parallel Robots: Mechanics and Control (1st ed.). CRC Press. DOI: 10.1201/b16096
- Repository for Robotics Code: https://github.com/aras-labs/Robotics/
Explore the code and resources for these books in the GitHub repository:
Feel free to use this repository for your robotics projects and research.
An Introduction To Robotics Book
Chapter |
Problem |
Table (T) Figure(F) |
Filename (Folder Name) |
Description |
3 |
3.1 |
3.1 (T) |
FK_RRR.m |
This code provides the forward kinematic solution of the 3R robot with DH and Screw methods. (DH-Based Analysis) |
3.2 |
3.2 (T) |
FK_Elbow.m |
This code provides the forward kinematic solution of the Elbow manipulator with DH and Screw methods.(DH-Based Analysis) |
|
3.3 |
3.3 (T) |
FK_SCARA.m |
This code provides the forward kinematic solution of the SCARA robot with DH method. |
|
3.4 |
3.4 (T) |
FK_Stanford.m |
This code provides the forward kinematic solution of the Stanford manipulator with DH and Screw methods.(DH-Based Analysis) |
|
3.9 |
3.5 (T) |
FK_RRR.m |
This code provides the forward kinematic solution of the 3R robot with DH and Screw methods. (Screw-Based Analysis) |
|
3.10 |
3.6 (T) |
FK_Elbow.m |
This code provides the forward kinematic solution of the Elbow manipulator with DH and Screw methods. (Screw-Based Analysis) |
|
3.11 |
3.7 (T) |
FK_ElbowSix.m |
This code provides the kinematic details of the 6DOF Elbow manipulator with DH and Screw methods.(Screw-Based Analysis) |
|
3.12 |
3.8 (T) |
FK_Stanford.m |
This code provides the forward kinematic solution of the Stanford manipulator with DH and Screw methods.(Screw-Based Analysis) |
|
4.7 |
4.1(T) |
FK_ElbowSix.m |
This code provides the kinematic details of the 6DOF Elbow manipulator with DH and Screw methods.(DH-Based Analysis) |
|
4 |
4.2 |
- |
Jacobian_RRR.m |
This code provides the Jacobian derivation of the 3R robot with General and Screw methods.(General method) |
4.3 |
- |
Jacobian_SCARA.m |
This code provides the General Jacobian derivation of the SCARA manipulator in three different frames. |
|
4.5 |
- |
Jacobian_RRR.m |
This code provides the Jacobian derivation of the 3R robot with General and Screw methods.(Screw method) |
|
4.7 |
- |
Jacobian_ElbowSix.m |
This MATLAB code calculates the Screw-based Jacobian of a 6-degree-of-freedom (DOF) Elbow manipulator in three different frames. |
|
4.8 |
- |
Jacobian_ElbowSix.m |
This MATLAB code calculates the Screw-based Jacobian of a 6-degree-of-freedom (DOF) Elbow manipulator in three different frames. |
|
- |
- |
Jacobian_Stanford.m |
This code provides the Screw-based Jacobian derivation of the Stanford robot. |
|
- |
- |
Jacobian_RRR_inspection.m |
This code provides the Jacobian derivation of the 3R robot with General and Screw methods By inspection. |
|
- |
- |
Jacobian_SCARA_screw.m |
This code provides the Screw-based Jacobian derivation of the Stanford robot. |
|
- |
- |
Obstacle_3R.m |
This code provides Optimal solution of redundancy problem with Obstacle avoidance objective in 3R robot |
|
- |
- |
Singularity_3R.m |
This code provides Optimal solution of redundancy problem with Singularity Circumvention objective in 3R robot |
|
4.13 |
- |
twoRisotropy.m |
This code provides the isotropic analysis of a 2R manipulator. |
|
4.14 |
- |
twoRisotropy.m |
This code provides the isotropic analysis of a 2R manipulator. |
|
4.15 |
- |
twoRisotropy.m |
This code provides the isotropic analysis of a 2R manipulator. |
|
5 |
5.1 |
- |
Lagrange_2R.m |
This code provides Dynamics formulation of 2R robot Problems 5.1 and 5.6 (Christoffel Matrix) |
5.3 |
- |
Lagrange_3R.m |
This code provides Dynamics formulation of 3R robot Problems 5.2 and 5.7 (Christoffel Matrix) |
|
5.4 |
- |
Lagrange_SCARA.m |
This code provides Dynamics formulation of SCARA robot Problems 5.4 and 5.8 (Christoffel Matrix) |
|
5.5 |
- |
Lagrange_Elbow.m |
This code provides Dynamics formulation of 3DOF Elbow manipulator Problems 5.5 and 5.9 (Christoffel Matrix) |
|
5.6 |
- |
Lagrange_2R.m |
This code provides Dynamics formulation of 2R robot Problems 5.1 and 5.6 (Christoffel Matrix) |
|
5.7 |
- |
Lagrange_3R.m |
This code provides Dynamics formulation of 3R robot Problems 5.2 and 5.7 (Christoffel Matrix) |
|
5.8 |
- |
Lagrange_SCARA.m |
This code provides Dynamics formulation of SCARA robot Problems 5.4 and 5.8 (Christoffel Matrix) |
|
5.9 |
- |
Lagrange_Elbow.m |
This code provides Dynamics formulation of 3DOF Elbow manipulator Problems 5.5 and 5.9 (Christoffel Matrix) |
|
- |
- |
C_Matrix.m (3R Dynamic Sim) |
This function generates the Christoffel Matrix of the 3R Robot at configuration q |
|
- |
- |
G_Vector.m (3R Dynamic Sim) |
This function generates the gravity vector of the 3R Robot at configuration q. |
|
- |
- |
ID_3R.m (3R Dynamic Sim) |
This function generates the dynamic behavior of 3R Robot at configuration q. |
|
- |
- |
M_Matrix.m (3R Dynamic Sim) |
This function generates the Mass Matrix of the 3R Robot at configuration q. |
|
- |
- |
Parameters.m (3R Dynamic Sim) |
This program sets the Physical Parameters of the 3R Robot in a structure format. |
|
- |
- |
PD_3R.m (3R Dynamic Sim) |
This program simulates the closed loop dynamic behavior of 3R Robot with a PD Controller. |
|
- |
- |
TP_cubic.m (3R Dynamic Sim) |
This code generates trajectories for 3R robots For simulation purposes. |
|
- |
5.13 (F) 5.14 (F) |
ID_sim.m (3R Dynamic Sim) |
This code Runs the Inverse dynamics of 3R manipulator with PD controller. |
|
- |
5.15 (F) |
CL_sim.m (3R Dynamic Sim) |
This code Runs the closed loop simulation of a 3R manipulator with a PD controller. |
|
6 |
- |
6.6 (F) |
secondorder.m |
This program illustrated transient response of a second order system for different values of \zeta and \omega_n |
- |
- |
CL_Dynamics.m (00 PD Control) |
This function generates the closed-loop dynamic formulation of the 3R planar robot with a PD controller. |
|
- |
- |
Dynamic_Matrices.m (00 PD Control) |
This function generates the dynamic matrices of the 3R planar robot. |
|
- |
- |
PD_Control.m (00 PD Control) |
This function generates the feedback torques based on PD control law. |
|
- |
- |
PlotData.m (00 PD Control) |
This function plots the simulation result. |
|
- |
- |
Structural_Parameters.m (00 PD Control) |
This function generates all the required parameters of the programs in a structured format. |
|
- |
- |
TP_quintic.m (00 PD Control) |
This function generates a quintic trajectory with via points. |
|
- |
6.22 (F) 6.23 (F) |
CL_Dynamic_Solver.m (00 PD Control) |
This code Runs the closed loop simulation of a 3R manipulator with a PD controller. |
|
- |
- |
noise.m (01 PID Control) |
This program generates the measurement noise. |
|
- |
- |
PID_Control.m (01 PID Control) |
This function generates the feedback torques based on PID control law. |
|
- |
6.19 (F) 6.20 (F) 6.21 (F) 6.24 (F) 6.25 (F) |
CL_Dynamic_Solver.m (01 PID Control) |
This code Runs the closed loop simulation of 3R manipulator with PID controller |
|
- |
- |
TP_quintic_via.m (01 PID Control) |
This function generates a quintic trajectory with nonzero initial velocities and accelerations |
|
- |
- |
FF_Control.m (02 FF Control) |
This function generates the feedback torques based on PD control law + Feedforward Term. |
|
- |
6.26 (F) 6.27 (F) 6.28 (F) 6.29 (F) |
CL_Dynamic_Solver.m (02 FF Control) |
This code Runs the closed loop simulation of 3R manipulator with PD controller with Feedforward Term. |
|
- |
- |
IDC_Control.m (03 IDC Control) |
This function generates the feedback torques based on Inverse Dynamics + PID control law. |
|
- |
6.30 (F) 6.31 (F) |
CL_Dynamic_Solver.m (03 IDC Control) |
This code Runs the closed loop simulation of 3R manipulator with Inverse Dynamic + PID controller |
|
- |
- |
PIDC_Control.m (04 PIDC Control) |
This function generates the feedback torques based on Partial IDC + PID |
|
- |
6.32 (F) 6.33 (F) |
CL_Dynamic_Solver.m (04 PIDC Control) |
This code Runs the closed loop simulation of 3R manipulator with Partial IDC + PID. |
|
- |
- |
RIDC_Control.m (05 RIDC Control) |
This function generates the feedback torques based on Robust IDC + PID control law. |
|
- |
6.34 (F) 6.35 (F) 6.36 (F) 6.37 (F) |
CL_Dynamic_Solver.m (05 RIDC Control) |
This code Runs the closed loop simulation of 3R manipulator with Robust IDC + PID. |
|
- |
6.38 (F) 6.39 (F) 6.40 (F) |
PlotData.m (Compare) |
This program plots the results of different controllers. |
|
Ap.B |
B.1 |
B.1 (F) |
Cubic_2R.m |
This code provides Trajectory planning of 2R Robot By Cubic Polynomials. |
B.2 |
B.5(F) |
Cubic_2R_via.m |
This code provides Trajectory planning of 2R Robot By Cubic Polynomials with via point. |
|
B.3 |
B.6 (F) |
Quintic_2R.m |
This code provides Trajectory planning of 2R Robot By Quintic Polynomials. |
|
B.4 |
B.8 (F) |
blend_2R.m |
This code provides Trajectory planning of 2R Robot By Linear with parabolic blend. |
|
B.5 |
B.9 (F) |
opt_blend_2R.m |
This code provides Trajectory planning of 2R Robot By Linear with parabolic blend (Time optimal) |
|
B.6 |
B.10 (F) B.11 (F) |
CubicE_2R.m |
This code provides Trajectory planning of 2R Robot in Cartesian Space by Cubic Polynomials. |