robot-kinematics


Namerobot-kinematics JSON
Version 1.1.0 PyPI version JSON
download
home_pagehttps://github.com/Sherin-SEF-AI/robo-kinematics
SummaryA comprehensive robotics kinematics library with URDF and PyBullet integration
upload_time2025-07-17 15:39:24
maintainerNone
docs_urlNone
authorSherin Joseph Roy
requires_python>=3.8
licenseNone
keywords robotics kinematics forward-kinematics inverse-kinematics jacobian urdf pybullet
VCS
bugtrack_url
requirements numpy scipy matplotlib pytest pytest-cov numba lxml xmltodict pybullet
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Robot Kinematics Library

A comprehensive, production-ready robotics kinematics library for Python that provides forward and inverse kinematics, Jacobian calculations, and advanced robotics analysis tools with URDF and PyBullet integration.

**Author:** Sherin Joseph Roy  
**Email:** sherin.joseph2217@gmail.com  
**Repository:** https://github.com/Sherin-SEF-AI/robot-kinematics

## Features

- **Forward Kinematics**: DH parameters, URDF parsing, multiple robot configurations
- **Inverse Kinematics**: Numerical, analytical, and hybrid solvers
- **Jacobian Analysis**: Geometric and analytical Jacobians, singularity detection
- **Robot Types**: UR5, Panda, SCARA, Delta, KUKA KR5, Stewart platform, mobile manipulators
- **Advanced Features**: Workspace analysis, singularity avoidance, performance optimization
- **Integration**: URDF import/export, PyBullet visualization and animation
- **High Performance**: JIT compilation, caching, vectorized operations

## Installation

### Basic Installation
```bash
pip install robot-kinematics
```

### With Visualization Support
```bash
pip install robot-kinematics[visualization]
```

### Full Installation (All Dependencies)
```bash
pip install robot-kinematics[full]
```

## Quick Start

```python
import numpy as np
from robot_kinematics.robots.serial import UR5Manipulator, KUKAKR5Manipulator
from robot_kinematics.inverse.numerical import NumericalIK
from robot_kinematics.core.transforms import Transform

# Create a UR5 robot
ur5 = UR5Manipulator()
print(f"Robot: {ur5.config['name']}")
print(f"Number of joints: {ur5.n_joints}")

# Forward kinematics
joint_config = np.array([0, 0, 0, 0, 0, 0])  # Home position
pose = ur5.forward_kinematics(joint_config)
print(f"End-effector position: {pose.position}")

# Inverse kinematics
target_pose = Transform(position=np.array([0.4, 0.0, 0.5]))
ik_solver = NumericalIK(robot=ur5, method="damped_least_squares")
solution, success, error = ik_solver.solve(target_pose, joint_config)

if success:
    print(f"IK solution: {solution}")
    print(f"Error: {error}")

# Create KUKA KR5 robot
kuka = KUKAKR5Manipulator()
print(f"KUKA KR5 robot: {kuka.config['name']}")
```

## URDF Integration

```python
from robot_kinematics.integration.urdf_utils import load_robot_from_urdf
from robot_kinematics.robots.serial import SerialManipulator

# Load robot from URDF file
config = load_robot_from_urdf("robot.urdf")
robot = SerialManipulator(config)
```

## PyBullet Visualization

```python
from robot_kinematics.integration.pybullet_utils import connect_gui, create_kuka_kr5_pybullet, animate_trajectory

# Connect to PyBullet GUI
connect_gui()

# Load robot model
robot_id = create_kuka_kr5_pybullet()

# Animate trajectory
joint_trajectory = [q1, q2, q3, ...]  # List of joint configurations
animate_trajectory(robot_id, joint_trajectory, dt=0.05)
```

## Documentation

For detailed documentation, examples, and API reference, visit our [documentation](https://robotkinematics.readthedocs.io/).

## Supported Robot Types

- **Serial Manipulators**: UR5, Panda, SCARA, Delta, KUKA KR5
- **Parallel Robots**: Stewart platform, Delta parallel
- **Mobile Manipulators**: Dual-arm systems, mobile bases

## Performance Features

- **JIT Compilation**: Using Numba for accelerated computations
- **Caching**: Thread-safe caching for repeated calculations
- **Vectorization**: Optimized NumPy operations
- **Memory Management**: Efficient memory usage for large-scale operations

## Examples

Check the `examples/` directory for comprehensive examples:
- `basic_usage.py` - Basic kinematics operations
- `simple_advanced_example.py` - Trajectory planning and analysis
- `pybullet_kuka_kr5_demo.py` - PyBullet visualization demo
- `urdf_import_export_demo.py` - URDF integration demo

## Testing

Run the test suite:

```bash
pytest tests/
```

## Contributing

We welcome contributions! Please see our [contributing guidelines](CONTRIBUTING.md) for details.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Citation

If you use this library in your research, please cite:

```bibtex
@software{robot_kinematics,
  title={Robot Kinematics Library},
  author={Sherin Joseph Roy},
  year={2024},
  url={https://github.com/Sherin-SEF-AI/robot-kinematics}
}
``` 

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/Sherin-SEF-AI/robo-kinematics",
    "name": "robot-kinematics",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "robotics, kinematics, forward-kinematics, inverse-kinematics, jacobian, urdf, pybullet",
    "author": "Sherin Joseph Roy",
    "author_email": "sherin.joseph2217@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/ae/62/0cb2d34f64dced48f9ba8cf33bd4209b100e8e1e19ce2a9a290a4ac72e8e/robot_kinematics-1.1.0.tar.gz",
    "platform": null,
    "description": "# Robot Kinematics Library\n\nA comprehensive, production-ready robotics kinematics library for Python that provides forward and inverse kinematics, Jacobian calculations, and advanced robotics analysis tools with URDF and PyBullet integration.\n\n**Author:** Sherin Joseph Roy  \n**Email:** sherin.joseph2217@gmail.com  \n**Repository:** https://github.com/Sherin-SEF-AI/robot-kinematics\n\n## Features\n\n- **Forward Kinematics**: DH parameters, URDF parsing, multiple robot configurations\n- **Inverse Kinematics**: Numerical, analytical, and hybrid solvers\n- **Jacobian Analysis**: Geometric and analytical Jacobians, singularity detection\n- **Robot Types**: UR5, Panda, SCARA, Delta, KUKA KR5, Stewart platform, mobile manipulators\n- **Advanced Features**: Workspace analysis, singularity avoidance, performance optimization\n- **Integration**: URDF import/export, PyBullet visualization and animation\n- **High Performance**: JIT compilation, caching, vectorized operations\n\n## Installation\n\n### Basic Installation\n```bash\npip install robot-kinematics\n```\n\n### With Visualization Support\n```bash\npip install robot-kinematics[visualization]\n```\n\n### Full Installation (All Dependencies)\n```bash\npip install robot-kinematics[full]\n```\n\n## Quick Start\n\n```python\nimport numpy as np\nfrom robot_kinematics.robots.serial import UR5Manipulator, KUKAKR5Manipulator\nfrom robot_kinematics.inverse.numerical import NumericalIK\nfrom robot_kinematics.core.transforms import Transform\n\n# Create a UR5 robot\nur5 = UR5Manipulator()\nprint(f\"Robot: {ur5.config['name']}\")\nprint(f\"Number of joints: {ur5.n_joints}\")\n\n# Forward kinematics\njoint_config = np.array([0, 0, 0, 0, 0, 0])  # Home position\npose = ur5.forward_kinematics(joint_config)\nprint(f\"End-effector position: {pose.position}\")\n\n# Inverse kinematics\ntarget_pose = Transform(position=np.array([0.4, 0.0, 0.5]))\nik_solver = NumericalIK(robot=ur5, method=\"damped_least_squares\")\nsolution, success, error = ik_solver.solve(target_pose, joint_config)\n\nif success:\n    print(f\"IK solution: {solution}\")\n    print(f\"Error: {error}\")\n\n# Create KUKA KR5 robot\nkuka = KUKAKR5Manipulator()\nprint(f\"KUKA KR5 robot: {kuka.config['name']}\")\n```\n\n## URDF Integration\n\n```python\nfrom robot_kinematics.integration.urdf_utils import load_robot_from_urdf\nfrom robot_kinematics.robots.serial import SerialManipulator\n\n# Load robot from URDF file\nconfig = load_robot_from_urdf(\"robot.urdf\")\nrobot = SerialManipulator(config)\n```\n\n## PyBullet Visualization\n\n```python\nfrom robot_kinematics.integration.pybullet_utils import connect_gui, create_kuka_kr5_pybullet, animate_trajectory\n\n# Connect to PyBullet GUI\nconnect_gui()\n\n# Load robot model\nrobot_id = create_kuka_kr5_pybullet()\n\n# Animate trajectory\njoint_trajectory = [q1, q2, q3, ...]  # List of joint configurations\nanimate_trajectory(robot_id, joint_trajectory, dt=0.05)\n```\n\n## Documentation\n\nFor detailed documentation, examples, and API reference, visit our [documentation](https://robotkinematics.readthedocs.io/).\n\n## Supported Robot Types\n\n- **Serial Manipulators**: UR5, Panda, SCARA, Delta, KUKA KR5\n- **Parallel Robots**: Stewart platform, Delta parallel\n- **Mobile Manipulators**: Dual-arm systems, mobile bases\n\n## Performance Features\n\n- **JIT Compilation**: Using Numba for accelerated computations\n- **Caching**: Thread-safe caching for repeated calculations\n- **Vectorization**: Optimized NumPy operations\n- **Memory Management**: Efficient memory usage for large-scale operations\n\n## Examples\n\nCheck the `examples/` directory for comprehensive examples:\n- `basic_usage.py` - Basic kinematics operations\n- `simple_advanced_example.py` - Trajectory planning and analysis\n- `pybullet_kuka_kr5_demo.py` - PyBullet visualization demo\n- `urdf_import_export_demo.py` - URDF integration demo\n\n## Testing\n\nRun the test suite:\n\n```bash\npytest tests/\n```\n\n## Contributing\n\nWe welcome contributions! Please see our [contributing guidelines](CONTRIBUTING.md) for details.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Citation\n\nIf you use this library in your research, please cite:\n\n```bibtex\n@software{robot_kinematics,\n  title={Robot Kinematics Library},\n  author={Sherin Joseph Roy},\n  year={2024},\n  url={https://github.com/Sherin-SEF-AI/robot-kinematics}\n}\n``` \n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A comprehensive robotics kinematics library with URDF and PyBullet integration",
    "version": "1.1.0",
    "project_urls": {
        "Bug Reports": "https://github.com/Sherin-SEF-AI/robo-kinematics/issues",
        "Documentation": "https://robotkinematics.readthedocs.io/",
        "Homepage": "https://github.com/Sherin-SEF-AI/robo-kinematics",
        "Source": "https://github.com/Sherin-SEF-AI/robo-kinematics"
    },
    "split_keywords": [
        "robotics",
        " kinematics",
        " forward-kinematics",
        " inverse-kinematics",
        " jacobian",
        " urdf",
        " pybullet"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "a2e6a0af5385d0c8cbaf7552095f390215830bcb7ead6e134db960441c358cc5",
                "md5": "f1b355e473c42247716fb4951d3ff61c",
                "sha256": "ab926cfc9452e67be0015e969489e2ec5493921a03cd644784edac68fffac074"
            },
            "downloads": -1,
            "filename": "robot_kinematics-1.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f1b355e473c42247716fb4951d3ff61c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 58531,
            "upload_time": "2025-07-17T15:39:21",
            "upload_time_iso_8601": "2025-07-17T15:39:21.655488Z",
            "url": "https://files.pythonhosted.org/packages/a2/e6/a0af5385d0c8cbaf7552095f390215830bcb7ead6e134db960441c358cc5/robot_kinematics-1.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ae620cb2d34f64dced48f9ba8cf33bd4209b100e8e1e19ce2a9a290a4ac72e8e",
                "md5": "1866f904c6e277d893c764f3c8f0910f",
                "sha256": "c6b28e984b0ce9a1fb5d9d7527d23a45b50977942ad025a725edfcd3e1e25cad"
            },
            "downloads": -1,
            "filename": "robot_kinematics-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "1866f904c6e277d893c764f3c8f0910f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 59688,
            "upload_time": "2025-07-17T15:39:24",
            "upload_time_iso_8601": "2025-07-17T15:39:24.029794Z",
            "url": "https://files.pythonhosted.org/packages/ae/62/0cb2d34f64dced48f9ba8cf33bd4209b100e8e1e19ce2a9a290a4ac72e8e/robot_kinematics-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-17 15:39:24",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Sherin-SEF-AI",
    "github_project": "robo-kinematics",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.21.0"
                ]
            ]
        },
        {
            "name": "scipy",
            "specs": [
                [
                    ">=",
                    "1.7.0"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    ">=",
                    "3.5.0"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": [
                [
                    ">=",
                    "6.0.0"
                ]
            ]
        },
        {
            "name": "pytest-cov",
            "specs": [
                [
                    ">=",
                    "2.12.0"
                ]
            ]
        },
        {
            "name": "numba",
            "specs": [
                [
                    ">=",
                    "0.56.0"
                ]
            ]
        },
        {
            "name": "lxml",
            "specs": [
                [
                    ">=",
                    "4.6.0"
                ]
            ]
        },
        {
            "name": "xmltodict",
            "specs": [
                [
                    ">=",
                    "0.12.0"
                ]
            ]
        },
        {
            "name": "pybullet",
            "specs": []
        }
    ],
    "lcname": "robot-kinematics"
}
        
Elapsed time: 1.18074s