Unified High-Throughput Robotics Library
Project description
RoboCore: Unified High-Throughput Robotics Library
Developed by Synria Robotics Co., Ltd. ๐ค
๐ฅ Features & Roadmap
| Module | Features | Status |
|---|---|---|
| Kinematics | Forward Kinematics (NumPy/PyTorch Batch) | โ |
| Inverse Kinematics (NumPy/PyTorch Batch) | โ | |
| Jacobian (NumPy/PyTorch Batch) | โ | |
| Bimanual FK (indep/relative/mirror) | โ | |
| Bimanual IK (indep/relative/mirror) | โ | |
| Bimanual Jacobian (indep/relative) | โ | |
| Modeling | URDF parsing | โ |
| MJCF parsing | โ | |
| Robot model abstraction | โ | |
| Multi-chain support | โ | |
| Bimanual robot model | โ | |
| Workspace analysis | โ | |
| Transform | SE(3) operations | โ |
| SO(3) operations | โ | |
| Rotation conversions | โ | |
| Quaternion operations | โ | |
| Planning | Joint space (polynomial/spline/multi-segment) | โ |
| Cartesian space (linear/circular/spline) | โ | |
| Orientation planning (SLERP) | โ | |
| Velocity profiles (trapezoidal/S-curve) | โ | |
| Control | Joint position controller (PD/PID) | โ |
| Joint velocity controller | โ | |
| Joint trajectory tracking controller | โ | |
| Cartesian position controller | โ | |
| Cartesian velocity controller | โ | |
| Cartesian trajectory tracking controller | โ | |
| Computed torque controller | โช | |
| Impedance controller | โช | |
| MPC controller | โช | |
| Analysis | Workspace analysis | โ |
| Singularity analysis | ๐ก | |
| WDF | SDF (Signed Distance Field) | โ |
| RDF (Relative Distance Field) | โ | |
| Visualization | โ | |
| Config | YAML configuration | โ |
| Config schemas | โ | |
| Bridge | MuJoCo simulation bridge | โ |
| Physics simulation & evaluation | โ | |
| Real robot bridge (partial) | ๐ก | |
| Dynamics | Inverse dynamics | โช |
| Forward dynamics | โช | |
| Mass matrix computation | โช | |
| Coriolis & gravity computation | โช | |
| Collision | Mesh-based collision detection | โช |
| Distance computation | โช | |
| Path Planning | RRT/RRT* algorithms | โช |
| PRM algorithms | โช | |
| Optimization-based planning | โช |
Supported Robot Formats
- โ URDF - Unified Robot Description Format
- โ MJCF - MuJoCo XML
Backend Support
- โ NumPy - CPU vectorized reference implementation; see Performance benchmarks below
- โ
PyTorch - Same API with optional CUDA for batched FK / Jacobian / IK (
--device cudain the benchmark scripts) - โ
C++ / Eigen - Same FK, analytic Jacobian, and DLS IK API via pybind11 extensions (
cpp/IKSolverCpp); see Installation
๐ Performance Benchmarks
Representative run (Apple Silicon laptop, CPU PyTorch for RoboCore and PK; C++ extensions built).
vs C++ columns: latency ratio t_backend / t_RoboCore C++ for the same batch shape (1ร = same speed as C++; >1ร = that many times slower than C++).
Forward kinematics (end-effector 4ร4)
| Backend | batch=1 (ms/call) | batch=100 (ms/call) | vs C++ b=1 | vs C++ b=100 |
|---|---|---|---|---|
| pytorch_kinematics | 0.209 | 0.331 | ~209ร | ~39ร |
| pinocchio | 0.002 | 0.198 | ~2.0ร | ~23ร |
| RoboCore NumPy | 0.134 | 0.353 | ~134ร | ~42ร |
| RoboCore PyTorch (CPU) | 0.561 | 0.652 | ~561ร | ~77ร |
| RoboCore C++ / Eigen | 0.0010 | 0.0085 | 1ร | 1ร |
Analytic Jacobian (6 ร n)
| Backend | batch=1 (ms/call) | batch=100 (ms/call) | vs C++ b=1 | vs C++ b=100 |
|---|---|---|---|---|
| pytorch_kinematics | 0.652 | 0.900 | ~540ร | ~43ร |
| pinocchio | 0.0029 | 0.307 | ~2.4ร | ~15ร |
| RoboCore NumPy | 0.116 | 11.68 | ~97ร | ~560ร |
| RoboCore PyTorch (CPU) | 0.608 | 1.50 | ~510ร | ~72ร |
| RoboCore C++ / Eigen | 0.0012 | 0.0209 | 1ร | 1ร |
Inverse kinematics (single chain)
| Backend | batch=1 (ms/call) | batch=100 (ms/call) | vs C++ b=1 | vs C++ b=100 |
|---|---|---|---|---|
| pytorch_kinematics (PseudoInverseIK) | 195 | 259 | ~24kร | ~340ร |
| pinocchio (CLIK, Python) | 0.68 | 410 | ~85ร | ~530ร |
| RoboCore NumPy (DLS) | 2.195 | 62.03 | ~270ร | ~81ร |
| RoboCore PyTorch (CPU, DLS) | 3.49 | 57.17 | ~440ร | ~74ร |
| RoboCore C++ / Eigen (DLS) | 0.008 | 0.77 | 1ร | 1ร |
๐ฆ Installation
RoboCore is packaged as a light core with optional extras.
- Core install: NumPy-based kinematics, transforms, planning, analysis, configs, URDF parsing, and native
cppbackend support. torchextra: PyTorch-based solvers and GPU execution.mujocoextra: MJCF parsing and MuJoCo runtime support.simextra: MuJoCo simulation bridge support, includingmujoco-pycompatibility.descriptionsextra: Synria and Open robot-description packages (synriard,openrd) for examples and tests.
FK, Jacobian, and IK can run on NumPy, PyTorch, or cpp backends; only the cpp path uses native extensions, built with pybind11 + Eigen3 (headers only) + a C++17 compiler.
- pybind11 โ installed automatically for the build via
pyproject.toml([build-system] requires) when you runpip install -e .(PEP 517 isolated environment). - Eigen โ not a pip package; install on the system (see below) or set
EIGEN3_INCLUDE_DIRto the directory that contains theEigen/folder (soEigen/Denseexists). - If Eigen or pybind11 is missing when the
.cppsources are present, the build fails with an error (extensions are required).
C++ compiler
| Platform | How to install |
|---|---|
| macOS | xcode-select --install (Command Line Tools, includes clang++) or full Xcode from the App Store. |
| Debian / Ubuntu | sudo apt update && sudo apt install build-essential |
| Fedora | sudo dnf install gcc-c++ make |
| Windows | Visual Studio Build Tools with โDesktop development with C++โ, or use WSL2 and follow the Linux steps above. |
Eigen3
| Platform | Command / notes |
|---|---|
| macOS (Homebrew) | brew install eigen โ headers are under /opt/homebrew/include/eigen3 (Apple Silicon) or /usr/local/include/eigen3 (Intel); setup.py checks these paths. |
| Debian / Ubuntu | sudo apt install libeigen3-dev โ typically /usr/include/eigen3. |
| Fedora | sudo dnf install eigen3-devel |
| Windows | e.g. vcpkg install eigen3, or download Eigen and set EIGEN3_INCLUDE_DIR to the folder that directly contains the Eigen directory. |
Custom location:
export EIGEN3_INCLUDE_DIR="/path/to/include/eigen3" # must contain Eigen/Dense
Clone and install
# Clone repository
git clone https://github.com/Synria-Robotics/RoboCore.git
cd RoboCore
conda create -n synria python=3.10 -y
conda activate synria
# Install core package in development mode
pip install -e .
# Optional extras
pip install -e ".[torch]"
pip install -e ".[mujoco]"
pip install -e ".[sim]"
pip install -e ".[descriptions]"
# Everything
pip install -e ".[all]"
PyPI installs
# Core package
pip install synria-robocore
# Typical feature sets
pip install "synria-robocore[torch]"
pip install "synria-robocore[mujoco]"
pip install "synria-robocore[sim]"
pip install "synria-robocore[descriptions]"
# Full environment
pip install "synria-robocore[all]"
synriard and openrd are only needed for bundled examples/tests that load published robot-description assets. They are not required for the RoboCore core library itself.
๐ฏ 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, 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
import robocore as rc
# Generate random configurations
q_batch = robot.random_q_batch(batch_size=1000)
# Set global backend for GPU
rc.set_backend('torch', device='cuda')
# Batch FK on GPU
poses = robot.fk(
torch.tensor(q_batch),
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
๐๏ธ 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
MIT License
Copyright ยฉ 2025 Synria Robotics Co., Ltd.
RoboCore is released under the MIT License.
See LICENSE for the full text. Files under
robocore/modeling/parser/mjcf_parser include preserved upstream Apache-2.0
copyright and license notices where applicable.
๐ง 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}
}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file synria_robocore-2.5.0rc3.tar.gz.
File metadata
- Download URL: synria_robocore-2.5.0rc3.tar.gz
- Upload date:
- Size: 283.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d40e51c0a5b8f3b05d92fc928f73fa49d9317e7b3c8f623e2dd665503af5f6e5
|
|
| MD5 |
c34ba2dcab744475c471e0a293d95719
|
|
| BLAKE2b-256 |
2c0169424e9a8c43e21186783e96297cb382daf4c4346773d0e12962492de1c1
|
File details
Details for the file synria_robocore-2.5.0rc3-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc3-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 790.5 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
feffdcc025a0eb0256e486fe54520c40a95e5595f0eab651ea5c58502ac3b886
|
|
| MD5 |
9d342c5f358da0e8eac22b50e82e7986
|
|
| BLAKE2b-256 |
23c5b83b457c4c8e7c666225cd1ae4cf6f86181477e4e4d020fb3a2e229e9d09
|
File details
Details for the file synria_robocore-2.5.0rc3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 882.3 kB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6d95da72684f43e91728beeb6bff91debc2187c79ac27a9a13f50ec2230cb60
|
|
| MD5 |
887edb52e06aa62d739aa6725f40c459
|
|
| BLAKE2b-256 |
c758074970dc2983a8fec3ee5ef517fdf6a177c8a8472601bfdf6c85e6310128
|
File details
Details for the file synria_robocore-2.5.0rc3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 843.8 kB
- Tags: CPython 3.13, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb157359116e9a6beaba0ba90639cf2b3e6afd6f2ba3778f83f9e7045e405245
|
|
| MD5 |
9b89a13fb520d4f8ad6668270556bda9
|
|
| BLAKE2b-256 |
625d69f794ce85b80d94a4fc23380e72ec0af9eec5c6eaf7f0c1c202e1fbb354
|
File details
Details for the file synria_robocore-2.5.0rc3-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc3-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 792.4 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f195d7922d5e9c9abcd0a782a03d180f0818fa52905a6820f074901b7aa4fde6
|
|
| MD5 |
22d552bad2736266d4c804e7db5f000d
|
|
| BLAKE2b-256 |
e7a9ef79564c92df65f3b53c84d329a1b8f8e7811acce0a0a36baeb06269fef8
|
File details
Details for the file synria_robocore-2.5.0rc3-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc3-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 790.4 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b6671735ef5bdffd9a811d758a472c3279bc95f0e08a63562099f9df2865d95
|
|
| MD5 |
b112a15552f502e6cde06c9d21ce365f
|
|
| BLAKE2b-256 |
3a624724ea52869c5a95bcdeec14e4a6d14b14643b61d3e4b8ca7f5b02565dfc
|
File details
Details for the file synria_robocore-2.5.0rc3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 882.2 kB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6615376aee699d35a971017e67ac36fb8b93dd353fc19a0ba6decd3ac9008050
|
|
| MD5 |
ac84bb3c6502895dba0611b2f4268e11
|
|
| BLAKE2b-256 |
7d920fd638215590de18f9d567558726c64cd48dbd777308e00d261bf6b5a4de
|
File details
Details for the file synria_robocore-2.5.0rc3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 844.0 kB
- Tags: CPython 3.12, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c1e27c6929b6e7736cc23f9a19b27a4369f3f208f8609183a9e9284db5b1800
|
|
| MD5 |
92d4ed35952925455b5a87795978fbcd
|
|
| BLAKE2b-256 |
a91c5f6d17130b669a852ad1e44611ebce86a20b43a090cc231c999a1c7a010e
|
File details
Details for the file synria_robocore-2.5.0rc3-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc3-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 792.2 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e6f1aeff27fcb8c1e76df2a8e41132f15d77cc69c307272fdb5ff361f0acf96
|
|
| MD5 |
2eacf284329db8434648f7ab12850a44
|
|
| BLAKE2b-256 |
b70f2cf68506ec1a850170f0ade334ee701365bbcef8e4fd97b55e0b2ed69a37
|
File details
Details for the file synria_robocore-2.5.0rc3-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc3-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 783.8 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ba17097d112ad61d5011bbb034a3fb6e95d2811b5b8fc4e070c0501cb1c2cf0
|
|
| MD5 |
27f5eac36698dc95a4420b47bbb4d39f
|
|
| BLAKE2b-256 |
bdf7242d078f02d105776dafa6919680b63017522f80cbb155f507d8115e01f6
|
File details
Details for the file synria_robocore-2.5.0rc3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 875.7 kB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ee3dc36b15c2d4fbeab2092c0927fb588c2cf39a478ea7285d47311384303f5
|
|
| MD5 |
aad9e94574fbad9707680178f9f543ed
|
|
| BLAKE2b-256 |
e747215b146afec265a220e32d7474927bcce94aed5482e6215af04c8c03ecf1
|
File details
Details for the file synria_robocore-2.5.0rc3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
- Upload date:
- Size: 836.9 kB
- Tags: CPython 3.11, manylinux: glibc 2.27+ ARM64, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
757b8b137be19a5ac26774680edbd4bb674edac05c297d82782260777d503bcc
|
|
| MD5 |
257a913dd2cad1ee3f986f30b77d0f79
|
|
| BLAKE2b-256 |
e1d679286c82af870aaf4697fa3c25f8dd4e6575e654765137aa814dfa4f04be
|
File details
Details for the file synria_robocore-2.5.0rc3-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: synria_robocore-2.5.0rc3-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 783.3 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d135e2551389c68e07635f5efceee569a4f8b30c36016191883be1437d522296
|
|
| MD5 |
b18b2579174abd7df24ac65757b63ee4
|
|
| BLAKE2b-256 |
baae920427ffbfcb1e3c04ac8b9f4ef4f5232ee2a04c01aa67d71959ad550a6c
|