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
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
๐ค 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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
10742c5165381d6edbdf991f4f04a6c9b25912e6dd1be2a535be83f9397c1083
|
|
| MD5 |
074e8d20d07a0ffc28e305c9cc7bde42
|
|
| BLAKE2b-256 |
53e9bb5d84e6696f7b5f6b29c06c2a4ed4f9199ff5e1d53aba362b19a14f6b23
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dee055c29c3f9e307dc79fd719f8d2aed7d17cf414a179b7f1d587599ec33ee8
|
|
| MD5 |
b97be667fdbb07452f2ed439fdeb4edc
|
|
| BLAKE2b-256 |
01ec3aac46596ad88b2c3dfcf72bd7cb662e6ef0caf4a5effa4b3796b828e1ba
|