Skip to main content

Python implementation of Product of Exponentials (POE) and Screw Theory algorithms derived from the ST24R (Screw Theory Toolbox for Robotics) MATLAB by Dr. Jose M. Pardos-Gotor

Project description

poekit

PyPI PyPI - Python Version License Research POE Screw%20Theory Geometry

Screw Theory Toolkit for Python

๐ŸŒ€ Product of Exponentials (POE) โ€ข ๐Ÿ”ฉ Screw Theory โ€ข ๐ŸŒ SE(3) โ€ข ๐Ÿ“ Robot Kinematics

Built for Robotics Research, Education, and Simulation

๐Ÿ”ฌ Inspired and adapted from the ST24R MATLAB Toolbox


T = exp([S]ฮธ) M


๐Ÿ” Overview

poekit is a professional Python toolkit for robot modeling and analysis based on the Product of Exponentials (POE) formulation, Screw Theory, and rigid-body motion in SE(3). Designed for researchers, students, and robotics engineers, it provides modern geometric tools for kinematics, dynamics, and motion analysis.

The package includes comprehensive utilities for twists, wrenches, Jacobians, rigid-body transformations, and robot dynamics, enabling rapid development, education, simulation, and robotics research.


โœจ Features

  • ๐Ÿ”ฉ Screw Theory Operations
  • ๐ŸŒ€ Twist Algebra & Motion Operations
  • โš™๏ธ Wrench & Force-Moment Operations
  • ๐ŸŒ SE(3) Rigid-Body Transformations
  • ๐Ÿงญ SO(3) Rotation Representations
  • ๐Ÿค– Robot Kinematics & Dynamics
  • ๐Ÿ“ Spatial and Body Jacobians
  • ๐ŸŽฏ Padenโ€“Kahan Inverse Kinematics Subproblems

๐Ÿ“ฆ Installation

PyPI

pip install poekit

From Source

git clone https://github.com/VibhuSharma19/poekit.git

cd poekit

pip install -e .

๐Ÿš€ Quick Example

from poekit.forward_kine import ForwardKine

T = ForwardKine.forward_kinematics_poe(TwMag)

print(T)

๐Ÿ“‚ Project Structure

poekit
โ”‚
โ”œโ”€โ”€ examples
โ”‚   โ”œโ”€โ”€ jaco2_fk.py                       # Example: Forward kinematics analysis of the Kinova Jaco2 manipulator
โ”‚   โ”œโ”€โ”€ jaco2_ik.py                       # Example: Inverse kinematics analysis of the Kinova Jaco2 manipulator
โ”‚   โ””โ”€โ”€ jaco2_jacobian.py                 # Example: Jacobian computation and analysis of the Kinova Jaco2 manipulator
โ”‚
โ””โ”€โ”€ src
    โ””โ”€โ”€ poekit
        โ”œโ”€โ”€ coriolis_utils.py             # Coriolis and centrifugal effects in robot dynamics
        โ”œโ”€โ”€ expmapping.py                 # Exponential map and Lie group operations
        โ”œโ”€โ”€ forward_kine.py               # Forward kinematics using the Product of Exponentials formulation
        โ”œโ”€โ”€ inertia_utils.py              # Inertia and mass matrix computation
        โ”œโ”€โ”€ jacobian.py                   # Geometric Jacobian computation in spatial and body forms
        โ”œโ”€โ”€ paden_kahan.py                # Padenโ€“Kahan subproblem solvers
        โ”œโ”€โ”€ potential_utils.py            # Potential energy and gravity vector computation
        โ”œโ”€โ”€ rotation_utils.py             # SO(3) rotation representations and operators
        โ”œโ”€โ”€ skewops.py                    # Skew-symmetric matrix operators
        โ”œโ”€โ”€ tform_utils.py                # SE(3) rigid-body transformation utilities
        โ”œโ”€โ”€ twist_utils.py                # Twist algebra and screw motion utilities
        โ”œโ”€โ”€ utils.py                      # Common geometric and mathematical helper functions
        โ””โ”€โ”€ wrench_utils.py               # Wrench algebra and force-moment utilities

๐Ÿง  Mathematical Foundations

poekit is built around:

  • ๐ŸŒ€ Product of Exponentials (POE)
  • ๐Ÿ”ฉ Screw Theory
  • ๐ŸŒ SO(3) & SE(3)
  • ๐ŸŒ€ Twists & โš™๏ธ Wrenches
  • ๐Ÿ”„ Adjoint Transformations
  • ๐Ÿ“ Geometric Jacobians
  • ๐ŸŽฏ Padenโ€“Kahan Subproblems

๐ŸŽ“ Core Concepts

Twist            ฮพ = (v, ฯ‰)

Screw Axis       ฯ‰

Exponential Map  e^[Sฮธ]

Rigid Motion     T โˆˆ SE(3)

Adjoint          Ad(T)

Jacobian         J

๐Ÿ“š References

๐Ÿ“– Primary Literature

Josรฉ M. Pardos-Gotor

Screw Theory in Robotics: An Illustrated and Practicable Introduction to Modern Mechanics

๐Ÿ”— Software Reference

ST24R (STAR) MATLAB Toolbox

๐Ÿค– Robot Platform

Kinova Jaco2 7-DOF Manipulator


๐Ÿ—๏ธ Relationship to ST24R

This package contains Python implementations derived from concepts and algorithms presented in the ST24R (STAR) MATLAB Screw Theory Toolbox, developed by Dr. Josรฉ M. Pardos-Gotor.

The software architecture has been redesigned for Python while preserving the underlying mathematical formulations and educational philosophy of the original toolbox.


๐Ÿ“œ License

GNU Lesser General Public License v3.0 (LGPL-3.0)

See:

for complete licensing information.


๐Ÿ‘ค Author

Vibhu Sharma

๐ŸŽ“ M.Tech (Gold Medalist) โ€” Automation and Robotics

๐Ÿ”— GitHub: https://github.com/VibhuSharma19

๐Ÿ“ง Email: 1999vibhusharma@gmail.com


Geometry. Motion. Robotics.

Modern Screw Theory and Product of Exponentials tools for Python.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

poekit-0.1.0.tar.gz (26.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

poekit-0.1.0-py3-none-any.whl (28.8 kB view details)

Uploaded Python 3

File details

Details for the file poekit-0.1.0.tar.gz.

File metadata

  • Download URL: poekit-0.1.0.tar.gz
  • Upload date:
  • Size: 26.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for poekit-0.1.0.tar.gz
Algorithm Hash digest
SHA256 10742c5165381d6edbdf991f4f04a6c9b25912e6dd1be2a535be83f9397c1083
MD5 074e8d20d07a0ffc28e305c9cc7bde42
BLAKE2b-256 53e9bb5d84e6696f7b5f6b29c06c2a4ed4f9199ff5e1d53aba362b19a14f6b23

See more details on using hashes here.

File details

Details for the file poekit-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: poekit-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 28.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for poekit-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dee055c29c3f9e307dc79fd719f8d2aed7d17cf414a179b7f1d587599ec33ee8
MD5 b97be667fdbb07452f2ed439fdeb4edc
BLAKE2b-256 01ec3aac46596ad88b2c3dfcf72bd7cb662e6ef0caf4a5effa4b3796b828e1ba

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page