RoboCore: Unified High-Throughput Robotics Library
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
- Website: synriarobotics.ai
- Email: support@synriarobotics.ai
📖 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}
}
Metadata
Release files for synria-robocore 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| synria_robocore-1.0.0.tar.gz | 104.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| synria_robocore-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 244.9 kB
Release files / synria_robocore-1.0.0.tar.gz
| Download URL | synria_robocore-1.0.0.tar.gz |
|---|---|
| Size | 104.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
68ea7ed1eaa23d6983a352af100c226bcada5d54a9612bb10b5dc04b6d172a67
|
|
BLAKE2b-256 checksum How to use checksums |
3113c77ef2657baf61a4217be4163775fbc03b355573259d5d492d91422bf81a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.19
|
Release files / synria_robocore-1.0.0-py3-none-any.whl
| Download URL | synria_robocore-1.0.0-py3-none-any.whl |
|---|---|
| Size | 140.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c7e282e44474f14202f8947548238810365a6e44c9c3dc788e19525c30a324c3
|
|
BLAKE2b-256 checksum How to use checksums |
6b985f4ede1bc917d61b63c5d895cec640241cdb4f5fbc4185b4958aff54c629
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.19
|