robotics-numpy


Namerobotics-numpy JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryA solely NumPy-dependent robotics Python package for basic kinematics, dynamics, and others.
upload_time2025-07-14 14:57:30
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords dynamics forward-kinematics inverse-kinematics kinematics lightweight motion-planning numpy robot-manipulator robotics
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # robotics-numpy

[![PyPI version](https://badge.fury.io/py/robotics-numpy.svg)](https://badge.fury.io/py/robotics-numpy)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![Powered by the Robotics Toolbox](https://raw.githubusercontent.com/petercorke/robotics-toolbox-python/master/.github/svg/rtb_powered.min.svg)](https://github.com/petercorke/robotics-toolbox-python)

A **lightweight, high-performance robotics library** inspired by Peter Corke's [robotics-toolbox-python](https://github.com/petercorke/robotics-toolbox-python), offering similar functionality with a strict **NumPy-only dependency**.

## Core Principles & Goals

*   **Inspired by `robotics-toolbox-python`**: Mimics API, function usage, and overall approach for a familiar user experience.
*   **NumPy-centric**: All core functionality relies solely on NumPy for minimal dependencies.
*   **Simple**: Clean, intuitive API for easy learning.

Ideal for education, research, and applications where dependency management is critical.

## Quick Start

### Installation

```bash
# Core library (NumPy only)
pip install robotics-numpy

# With visualization support (requires Plotly)
pip install robotics-numpy[visualization]
```

### Basic Usage: Transformations

```python
import robotics_numpy as rn
import numpy as np

# Create transformations (mimicking robotics-toolbox API)
T1 = rn.SE3.Trans(1, 2, 3)              # Translation
T2 = rn.SE3.RPY(0.1, 0.2, 0.3)         # Rotation from RPY
T3 = T1 * T2                            # Compose transformations

# Transform points
point = [0, 0, 0]
transformed_point = T3 * point
print(f"Transformed point: {transformed_point}")
```

### Basic Usage: Robot Kinematics (v0.2.0)

```python
import robotics_numpy as rn
import numpy as np

# Define a simple 2-DOF robot (similar to robotics-toolbox syntax)
robot = rn.models.DHRobot([
    rn.models.RevoluteDH(d=0.1, a=0.2, alpha=0, qlim=[-np.pi, np.pi]),
    rn.models.PrismaticDH(theta=0, a=0.1, alpha=0, qlim=[0, 0.5]),
])

# Forward kinematics
q = [np.pi / 4, 0.3]
pose = robot.fkine(q)
print(f"End-effector pose: {pose}")
# Jacobian
jacobian = robot.jacob0(q)
print(f"Jacobian:\n{jacobian}")
```

## Performance Comparison

This table benchmarks key operations, comparing `robotics-numpy` (NumPy-based) against `roboticstoolbox-python`.

```
================================================================================
Performance Comparison Table
================================================================================
| Feature             | robotics-numpy         | rtb                    | Difference (%) |
|---------------------|------------------------|------------------------|----------------|
| Forward Kinematics  | 0.870 ms             | 0.026 ms               |       +3189.61% |
|                     | 2.441 ms             | 0.054 ms               |       +4432.86% |
| Jacobian            | 1.997 ms             | 0.074 ms               |       +2599.14% |
|                     | 5.520 ms             | 0.158 ms               |       +3397.66% |
| Manipulability      | 5.482 ms             | 0.330 ms               |       +1559.99% |
================================================================================
```

## Contributing

We welcome contributions! Our focus is on:
*   **Readability**: Clear algorithms over complex optimizations.
*   **Testability**: Comprehensive unit and integration tests.
*   **Documentation**: Well-documented code and examples.

```bash
# Development setup
git clone https://github.com/chaoyue/robotics-numpy
cd robotics-numpy
pip install -e .[dev] # Or use uv for dependency management

# Run tests
pytest

# Check code quality
ruff check .
mypy src/
```

## License

MIT License - see [LICENSE](LICENSE) for details.

## Acknowledgments

Inspired by Peter Corke's [Robotics Toolbox](https://github.com/petercorke/robotics-toolbox-python),
with a focus on minimal dependencies.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "robotics-numpy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "dynamics, forward-kinematics, inverse-kinematics, kinematics, lightweight, motion-planning, numpy, robot-manipulator, robotics",
    "author": null,
    "author_email": "Chaoyue Fei <chaoyue.fei@vub.be>",
    "download_url": "https://files.pythonhosted.org/packages/ce/88/896de841f593f77c18bf4b92788b2b13edc749d8fff95504f94e76a51565/robotics_numpy-0.1.0.tar.gz",
    "platform": null,
    "description": "# robotics-numpy\n\n[![PyPI version](https://badge.fury.io/py/robotics-numpy.svg)](https://badge.fury.io/py/robotics-numpy)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![Powered by the Robotics Toolbox](https://raw.githubusercontent.com/petercorke/robotics-toolbox-python/master/.github/svg/rtb_powered.min.svg)](https://github.com/petercorke/robotics-toolbox-python)\n\nA **lightweight, high-performance robotics library** inspired by Peter Corke's [robotics-toolbox-python](https://github.com/petercorke/robotics-toolbox-python), offering similar functionality with a strict **NumPy-only dependency**.\n\n## Core Principles & Goals\n\n*   **Inspired by `robotics-toolbox-python`**: Mimics API, function usage, and overall approach for a familiar user experience.\n*   **NumPy-centric**: All core functionality relies solely on NumPy for minimal dependencies.\n*   **Simple**: Clean, intuitive API for easy learning.\n\nIdeal for education, research, and applications where dependency management is critical.\n\n## Quick Start\n\n### Installation\n\n```bash\n# Core library (NumPy only)\npip install robotics-numpy\n\n# With visualization support (requires Plotly)\npip install robotics-numpy[visualization]\n```\n\n### Basic Usage: Transformations\n\n```python\nimport robotics_numpy as rn\nimport numpy as np\n\n# Create transformations (mimicking robotics-toolbox API)\nT1 = rn.SE3.Trans(1, 2, 3)              # Translation\nT2 = rn.SE3.RPY(0.1, 0.2, 0.3)         # Rotation from RPY\nT3 = T1 * T2                            # Compose transformations\n\n# Transform points\npoint = [0, 0, 0]\ntransformed_point = T3 * point\nprint(f\"Transformed point: {transformed_point}\")\n```\n\n### Basic Usage: Robot Kinematics (v0.2.0)\n\n```python\nimport robotics_numpy as rn\nimport numpy as np\n\n# Define a simple 2-DOF robot (similar to robotics-toolbox syntax)\nrobot = rn.models.DHRobot([\n    rn.models.RevoluteDH(d=0.1, a=0.2, alpha=0, qlim=[-np.pi, np.pi]),\n    rn.models.PrismaticDH(theta=0, a=0.1, alpha=0, qlim=[0, 0.5]),\n])\n\n# Forward kinematics\nq = [np.pi / 4, 0.3]\npose = robot.fkine(q)\nprint(f\"End-effector pose: {pose}\")\n# Jacobian\njacobian = robot.jacob0(q)\nprint(f\"Jacobian:\\n{jacobian}\")\n```\n\n## Performance Comparison\n\nThis table benchmarks key operations, comparing `robotics-numpy` (NumPy-based) against `roboticstoolbox-python`.\n\n```\n================================================================================\nPerformance Comparison Table\n================================================================================\n| Feature             | robotics-numpy         | rtb                    | Difference (%) |\n|---------------------|------------------------|------------------------|----------------|\n| Forward Kinematics  | 0.870 ms             | 0.026 ms               |       +3189.61% |\n|                     | 2.441 ms             | 0.054 ms               |       +4432.86% |\n| Jacobian            | 1.997 ms             | 0.074 ms               |       +2599.14% |\n|                     | 5.520 ms             | 0.158 ms               |       +3397.66% |\n| Manipulability      | 5.482 ms             | 0.330 ms               |       +1559.99% |\n================================================================================\n```\n\n## Contributing\n\nWe welcome contributions! Our focus is on:\n*   **Readability**: Clear algorithms over complex optimizations.\n*   **Testability**: Comprehensive unit and integration tests.\n*   **Documentation**: Well-documented code and examples.\n\n```bash\n# Development setup\ngit clone https://github.com/chaoyue/robotics-numpy\ncd robotics-numpy\npip install -e .[dev] # Or use uv for dependency management\n\n# Run tests\npytest\n\n# Check code quality\nruff check .\nmypy src/\n```\n\n## License\n\nMIT License - see [LICENSE](LICENSE) for details.\n\n## Acknowledgments\n\nInspired by Peter Corke's [Robotics Toolbox](https://github.com/petercorke/robotics-toolbox-python),\nwith a focus on minimal dependencies.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A solely NumPy-dependent robotics Python package for basic kinematics, dynamics, and others.",
    "version": "0.1.0",
    "project_urls": null,
    "split_keywords": [
        "dynamics",
        " forward-kinematics",
        " inverse-kinematics",
        " kinematics",
        " lightweight",
        " motion-planning",
        " numpy",
        " robot-manipulator",
        " robotics"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "1cf2091ceee3780b237534918f11d3030936440d59b7efe716a159d600d6bc20",
                "md5": "c7b6294fe3a2f4965688a6ff165bfede",
                "sha256": "bc5eadd444acd697cb746f76dd82050028ea9e682574a722841dd1bfbf9543bf"
            },
            "downloads": -1,
            "filename": "robotics_numpy-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c7b6294fe3a2f4965688a6ff165bfede",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 42206,
            "upload_time": "2025-07-14T14:57:28",
            "upload_time_iso_8601": "2025-07-14T14:57:28.482320Z",
            "url": "https://files.pythonhosted.org/packages/1c/f2/091ceee3780b237534918f11d3030936440d59b7efe716a159d600d6bc20/robotics_numpy-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ce88896de841f593f77c18bf4b92788b2b13edc749d8fff95504f94e76a51565",
                "md5": "4ebe416da7abd2d2ccb53a08e8ce2509",
                "sha256": "7f5ec401c2f906d568193149c175bb6ddc3836be104eb9cccfb0b1be65cd5da1"
            },
            "downloads": -1,
            "filename": "robotics_numpy-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "4ebe416da7abd2d2ccb53a08e8ce2509",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 373692,
            "upload_time": "2025-07-14T14:57:30",
            "upload_time_iso_8601": "2025-07-14T14:57:30.287027Z",
            "url": "https://files.pythonhosted.org/packages/ce/88/896de841f593f77c18bf4b92788b2b13edc749d8fff95504f94e76a51565/robotics_numpy-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-14 14:57:30",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "robotics-numpy"
}
        
Elapsed time: 2.49440s