Coder Social home page Coder Social logo

sarrasor / roboticmanipulators Goto Github PK

View Code? Open in Web Editor NEW
156.0 3.0 32.0 21.57 MB

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

License: MIT License

Python 100.00%
jacobian robotics inverse-kinematics forward-kinematics manipulator-robotics trajectory-generation trapezoidal-speed-profile robotic-manipulators jacobian-calculation trajectory-planning euler-lagrange-dynamics newton-euler robot-calibration calibration

roboticmanipulators's Introduction

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

roboticmanipulators's People

Contributors

sarrasor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

roboticmanipulators's Issues

Kinematics Issues

Hi, I have tried to compare the results of your forward kinematics with the values given in Roboguide (Fanuc official simulator) and also with the real robot, and the values when moving joint 2 are not correct, all other joints work, when moving joint 2 it does not give correct values for the end-effector position. Any idea what is happening?

Thank you for your work and time!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.