Skip to main content

Functions for the lie groups SE(2), SO(2), and SO(3), and SE(3).

Project description

LieGroupsPy

Functions for the Lie Algebra group SE(2) and SE(3)

$$ SE(2) = \begin{bmatrix} R_{11} & R_{12} & t_1 \ R_{21} & R_{22} & t_2 \ 0 & 0 & 1 \end{bmatrix} $$

where:

  • ( $\mathbf{R} \in SO(2) $) is the rotation matrix.
  • ( $\mathbf{t} \in \mathbb{R}^2 $) is the translation vector.

$$ SE(3) = \begin{bmatrix} R_{11} & R_{12} & R_{13} & t_1 \ R_{21} & R_{22} & R_{23} & t_2 \ R_{31} & R_{32} & R_{33} & t_3 \ 0 & 0 & 0 & 1 \end{bmatrix} $$

where:

  • ( $\mathbf{R} \in SO(3) $) is the rotation matrix.
  • ( $\mathbf{t} \in \mathbb{R}^3 $) is the translation vector.

This representation is commonly used in robotics and computer vision for rigid body transformations.

Screenshot 2025-03-31 at 9 37 41 AM

Install

To install the library run: pip install lie_groups_py

Development

  1. Install Poetry
  2. make init to create the virtual environment and install dependencies
  3. make format to format the code and check for errors
  4. make test to run the test suite
  5. make clean to delete the temporary files and directories
  6. poetry publish --build to build and publish to https://pypi.org/project/lie_groups_py/

Usage

"""Basic docstring for my module."""

import matplotlib.pyplot as plt
import numpy as np
from loguru import logger

from se3_group import se3


def main() -> None:
    """Run a simple demonstration."""
    pose_0 = se3.SE3(
        xyz=np.array([0.0, 0.0, 0.0]),
        rot=np.eye(3),
    )
    pose_1 = se3.SE3(
        xyz=np.array([[2.0], [4.0], [8.0]]),
        roll_pitch_yaw=np.array([np.pi / 2, np.pi / 4, np.pi / 8]),
    )

    logger.info(f"Pose 1: {pose_0}")
    logger.info(f"Pose 2: {pose_1}")

    fig = plt.figure()
    ax = fig.add_subplot(111, projection="3d")
    pose_0.plot(ax)
    pose_1.plot(ax)

    for t in np.arange(0.0, 1.01, 0.1):
        pose_interp = se3.interpolate(pose_1, pose_0, t=t)
        pose_interp.plot(ax)
        logger.info(f"Interpolated Pose at t={t:.2f}: {pose_interp}")

    plt.axis("equal")
    ax.set_xlabel("x-axis")
    ax.set_ylabel("y-axis")
    ax.set_zlabel("z-axis")
    plt.tight_layout()
    plt.show()


if __name__ == "__main__":
    main()

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

lie_groups_py-0.2.0.tar.gz (6.0 kB view details)

Uploaded Source

Built Distribution

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

lie_groups_py-0.2.0-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file lie_groups_py-0.2.0.tar.gz.

File metadata

  • Download URL: lie_groups_py-0.2.0.tar.gz
  • Upload date:
  • Size: 6.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.13.2 Darwin/24.4.0

File hashes

Hashes for lie_groups_py-0.2.0.tar.gz
Algorithm Hash digest
SHA256 09ae3697727c7e3578e0fa5c832dc2ebb60f2866d44050e79f2722e36109cb83
MD5 36319c820dd85eaeeaac599c3a789a32
BLAKE2b-256 fc47dd4a39277d54a845de4f7998da334b1211d7f39be672ca9ca70b08a8299e

See more details on using hashes here.

File details

Details for the file lie_groups_py-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: lie_groups_py-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.13.2 Darwin/24.4.0

File hashes

Hashes for lie_groups_py-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4b9d349c00f07019c73c1799421e53b41282102ab76108dc820504f0c15d48c5
MD5 29471d7e50d37917b969c42120d08b53
BLAKE2b-256 cd32aefc217700c1ca98f1726ee79e5819b12e99c5cb168c0c7aeaaab725d350

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