Skip to main content

Unified High-Throughput Robotics Library

Project description

RoboCore: Unified High-Throughput Robotics Library

License Python

Developed by Synria Robotics Co., Ltd. ๐Ÿค–


โœจ Features

Module Functionality Status
Modeling URDF/MJCF parsing, Robot model abstraction โœ… Stable
Forward Kinematics NumPy/PyTorch backends, Batch processing โœ… Stable
Inverse Kinematics DLS/Pinv/Transpose methods, Multi-start โœ… Stable
Jacobian Analytic/Numeric/Autograd methods โœ… Stable
Transform SE(3)/SO(3) operations, Conversions โœ… Stable
Analysis Workspace/Singularity analysis โœ… Beta
Planning Trajectory generation ๐Ÿšง Alpha
Visualization Kinematic tree display โœ… Stable
Configuration YAML-based config management โœ… Stable

Supported Robot Formats

  • โœ… URDF (Unified Robot Description Format)
  • โœ… MJCF (MuJoCo XML) - Subset implementation for serial chains

Backend Support

  • โœ… NumPy - CPU-optimized, 50-100x faster than pure Python
  • โœ… PyTorch - GPU acceleration for batch operations

๐Ÿš€ Performance Benchmarks

Test Platform: Intel i7-10700K, NVIDIA RTX 3080, 6-DOF Manipulator

Single Configuration

Operation Pure Python NumPy Speedup
Forward Kinematics 2.5 ms 0.05 ms 50x
Inverse Kinematics 450 ms 5.6 ms 80x
Jacobian (Analytic) 3.2 ms 0.03 ms 107x
Jacobian (Numeric) 18 ms 0.35 ms 51x

Batch Processing (1000 configs)

Operation NumPy (CPU) PyTorch (GPU) Speedup
Forward Kinematics 45 ms 3.2 ms 14x
Jacobian (Analytic) 28 ms 2.1 ms 13x

๐Ÿ“ฆ Installation

# Clone repository
git clone https://github.com/Synria-Robotics/RoboCore.git
cd RoboCore

# Install (development mode)
pip install -e .

# Optional: Install with PyTorch for GPU support
pip install torch torchvision

๐ŸŽฏ Quick Start

Basic Example

from robocore.modeling import RobotModel

# Load robot (auto-detects URDF/MJCF)
robot = RobotModel("path/to/robot.urdf")

# Display model info
robot.summary(show_chain=True)
robot.print_tree()

# Forward Kinematics
q = [0.0] * robot.num_dof()
pose = robot.fk(q, backend='numpy', return_end=True)

# Inverse Kinematics
result = robot.ik(pose, q_initial=q, method='pinv')
print(f"Solution: {result['q']}, Success: {result['success']}")

# Jacobian
J = robot.jacobian(q, method='analytic')  # Shape: (6, dof)

Batch Processing (GPU)

import torch

# Generate random configurations
q_batch = robot.random_q_batch(batch_size=1000)

# Batch FK on GPU
poses = robot.fk(
    torch.tensor(q_batch), 
    backend='torch', 
    device='cuda',
    return_end=True
)

๐Ÿ“š Examples

# Robot model loading and validation
python examples/modeling/demo_robot_model.py --validate --show-tree

# Forward/Inverse kinematics
python examples/kinematics/demo_fk.py
python examples/kinematics/demo_ik.py

# Jacobian computation
python examples/kinematics/demo_jacobian.py

# Workspace analysis
python examples/analysis/demo_workspace.py --samples 10000

# Performance benchmark
python examples/kinematics/benchmark.py

๐Ÿงช Testing

# Run all tests
pytest

# Specific test suites
pytest test/unit/          # Unit tests
pytest test/integration/   # Integration tests

# With coverage report
pytest --cov=robocore --cov-report=html

๐Ÿ“‹ TODO & Roadmap

High Priority ๐Ÿ”ด

  • Collision Detection - Mesh-based collision checking
  • Path Planning - RRT/RRT*/PRM algorithms
  • Dynamics - Inverse/Forward dynamics computation
  • Control - PID, MPC, impedance controllers

Medium Priority ๐ŸŸก

  • Optimization - Further SIMD/vectorization improvements
  • Mobile Manipulators - Support for mobile bases
  • Multi-Arm Systems - Coordinated multi-robot control

Low Priority ๐ŸŸข

  • Visualization - 3D interactive visualization (PyBullet/MuJoCo)
  • Documentation - API docs, tutorials, best practices

๐Ÿ—๏ธ Project Structure

RoboCore/
โ”œโ”€โ”€ robocore/
โ”‚   โ”œโ”€โ”€ modeling/          # Robot model abstraction & parsers
โ”‚   โ”œโ”€โ”€ kinematics/        # FK/IK/Jacobian solvers
โ”‚   โ”œโ”€โ”€ transform/         # SE(3)/SO(3) operations
โ”‚   โ”œโ”€โ”€ planning/          # Motion planning (WIP)
โ”‚   โ”œโ”€โ”€ analysis/          # Workspace/singularity analysis
โ”‚   โ”œโ”€โ”€ configs/           # Configuration management
โ”‚   โ””โ”€โ”€ utils/             # Backend abstraction, utilities
โ”œโ”€โ”€ examples/              # Demo scripts
โ”œโ”€โ”€ test/                  # Unit & integration tests
โ””โ”€โ”€ docs/                  # Documentation

๐Ÿ“„ License

GPL-3.0 License
Copyright ยฉ 2025 Synria Robotics Co., Ltd.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

See the LICENSE file for the full license text.


๐Ÿ“ง Contact


๐Ÿ“– Citation

@software{robocore2025,
  title = {RoboCore: High-Performance Robotics Kinematics Library},
  author = {Synria Robotics Team},
  year = {2025},
  publisher = {Synria Robotics Co., Ltd.},
  url = {https://github.com/Synria-Robotics/RoboCore},
  version = {1.0.0}
}

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

synria_robocore-1.0.0.tar.gz (104.8 kB view details)

Uploaded Source

Built Distribution

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

synria_robocore-1.0.0-py3-none-any.whl (140.1 kB view details)

Uploaded Python 3

File details

Details for the file synria_robocore-1.0.0.tar.gz.

File metadata

  • Download URL: synria_robocore-1.0.0.tar.gz
  • Upload date:
  • Size: 104.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for synria_robocore-1.0.0.tar.gz
Algorithm Hash digest
SHA256 68ea7ed1eaa23d6983a352af100c226bcada5d54a9612bb10b5dc04b6d172a67
MD5 d5bbd6739e1b9a75c761916a30011328
BLAKE2b-256 3113c77ef2657baf61a4217be4163775fbc03b355573259d5d492d91422bf81a

See more details on using hashes here.

File details

Details for the file synria_robocore-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for synria_robocore-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c7e282e44474f14202f8947548238810365a6e44c9c3dc788e19525c30a324c3
MD5 89dd84ffa30bc8298fba33705dbed05f
BLAKE2b-256 6b985f4ede1bc917d61b63c5d895cec640241cdb4f5fbc4185b4958aff54c629

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