Skip to content

Calculation of forward and inverse kinematics, Jacobian matrices, dynamic modeling, trajectory planning and geometric calibration for robotic manipulators

License

Notifications You must be signed in to change notification settings

Sarrasor/RoboticManipulators

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Robotic manipulators

Calculation of Forward Kinematics (FK), Inverse Kinematics (IK), Jacobians, Dynamic Modeling (Euler-Lagrange, Newton-Euler), trajectory generation (Joint Space polynomial, Joint Space P2P, Cartesian Space Linear), and geometric calibration for robotic manipulators.

Repo contents

  • robots - Folder with IK and FK solutions. Solution descriptions are in .md files
  • utils - Several useful utils like SymbolicTransformation or TrajectoryGenerator that can help with matrix multiplication, planning and other Robotics-related stuff
  • docs - Folder with some theory
    • Dynamics.md - Review of dynamic modeling of robotics manipulators
    • FanucJacobians.md - Review of Jacobian calculation on the example of Fanuc manipulator
    • GeometricCalibration.md - Review of geometric parameter calibration on the example of Fanuc manipulator
    • TrajectoryPlanning.md - Review of trajectory planning for robotic manipulators
  • tests - Unit tests

How to run

Here are several useful commands to run:

RR Robot dynamic modeling

python rr_robot_dynamics.py

If you want to see how to model RR manipulator with gravity force and make it follow the desired trajectory. Check out docs/Dynamics.md to see how it is done.

No control

No control signal is applied, just gravity force is acting:

RR Robot gravity motion

Control

Control signal is applied:

RR Robot batman trajectory motion

RRR Robot trajectory planning

python rrr_robot_planning.py

If you want to see how to perform XYZ Polynomial and Trapezoidal trajectory planning for RRR Robot in Joint and Cartesian Space. Check out docs/TrajectoryPlanning.md to see how the planning is done.

Polynomial profile

Sample polynomial trajectory:

Polynomial profile plots

Here is how the manipulator will move:

Polynomial profile motion

Trapezoidal profile (Joint Space)

Sample trapezoidal trajectory in joint space:

Trapezoidal profile plots

Here is how the manipulator will move:

Trapezoidal profile motion

Trapezoidal profile (Cartesian Space)

Sample trapezoidal trajectory in cartesian space:

Trapezoidal cartesian profile plots

Their corresponding joint space plots:

Corresponding joint profile plots

Here is how the manipulator will move:

Trapezoidal cartesian profile motion

Fanuc Kinematics

python fanuc_kinematics.py

If you want to see how to use Fanuc165F forward and inverse kinematics calculation. Check out robots/FANUC165F.md for the solution description:

Fanuc plot

Fanuc Jacobians

python fanuc_jacobians.py

If you want to see how to calculate Fanuc165F Jacobian matrix using Scew theory and numerical matrix differentiation methods. The singularity analysis is also presented. Check out docs/FanucJacobians.md for the solution description:

Fanuc singularity

Fanuc Calibration

python fanuc_calibration.py

If you want to see how it is possible to calibrate a robotic manipulator. Check out docs/GeometricCalibration.md for the solution description

Before

Distance RMS (mm): 13.154
Max Distance diff (mm): 18.49

After

Distance RMS (mm): 0.531
Max Distance diff (mm): 1.32

Jacobian Calculation

python jacobian_calculation.py

If you want to see how to use the JacobianCalculator class:

Jacobian calculation

Symbolic Transformations

python symbolic_calculation.py

If you want to see how to use the SymbolicTransformation class:

Symbolic calculation

Unit Tests

python -m unittest discover

If you want to run all unit tests:

Tests