Skip to content

Sarrasor/RoboticManipulators

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