Skip to content

aras-labs/Robotics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Robotics 🤖

GitHub stars GitHub forks GitHub issues

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.

📚 Books

1. An Introduction to Robotics

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

2. Parallel Robots: Mechanics and Control

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

🖥️ Code and Resources

Harness the power of these books with the following tools:

  • Open in MATLAB Online - Open in MATLAB Online
  • Open In Colab - Open in Google Colab

👨‍💻 Contributing

We welcome contributions! If you're interested in enhancing this repository:

  1. Fork the repository.
  2. Create a new branch (feature/your_feature or bugfix/your_bugfix).
  3. Implement your changes.
  4. Commit and push to your branch.
  5. Submit a pull request.

🐛 Issues

Encountered an issue or have a question? Open an issue on our GitHub repository.

📜 License

This project is licensed under the MIT License - feel free to use and modify as per your needs.

🌍 Repository

Check out the repository for detailed code and resources:

GitHub Repository

Leverage this repository for your robotics projects and research endeavors.

📑 Citation

If you find this repository useful in your research or work, please cite:

  1. H.D. Taghirad (2013). Parallel Robots: Mechanics and Control (1st ed.). CRC Press. DOI: 10.1201/b16096
  2. Repository for Robotics Code: https://github.com/aras-labs/Robotics/

Repository

Explore the code and resources for these books in the GitHub repository:

GitHub Repository

Feel free to use this repository for your robotics projects and research.

An Introduction To Robotics Book Open in MATLAB Online Open In Colab

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.