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 & 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 cuda in 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 cpp backend support.
  • torch extra: PyTorch-based solvers and GPU execution.
  • mujoco extra: MJCF parsing and MuJoCo runtime support.
  • sim extra: MuJoCo simulation bridge support, including mujoco-py compatibility.
  • descriptions extra: 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 run pip install -e . (PEP 517 isolated environment).
  • Eigen โ€” not a pip package; install on the system (see below) or set EIGEN3_INCLUDE_DIR to the directory that contains the Eigen/ folder (so Eigen/Dense exists).
  • If Eigen or pybind11 is missing when the .cpp sources 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


๐Ÿ“– 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-2.5.0rc3.tar.gz (283.3 kB view details)

Uploaded Source

Built Distributions

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

synria_robocore-2.5.0rc3-cp313-cp313-win_amd64.whl (790.5 kB view details)

Uploaded CPython 3.13Windows x86-64

synria_robocore-2.5.0rc3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (882.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

synria_robocore-2.5.0rc3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (843.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

synria_robocore-2.5.0rc3-cp313-cp313-macosx_11_0_arm64.whl (792.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

synria_robocore-2.5.0rc3-cp312-cp312-win_amd64.whl (790.4 kB view details)

Uploaded CPython 3.12Windows x86-64

synria_robocore-2.5.0rc3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (882.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

synria_robocore-2.5.0rc3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (844.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

synria_robocore-2.5.0rc3-cp312-cp312-macosx_11_0_arm64.whl (792.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

synria_robocore-2.5.0rc3-cp311-cp311-win_amd64.whl (783.8 kB view details)

Uploaded CPython 3.11Windows x86-64

synria_robocore-2.5.0rc3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (875.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

synria_robocore-2.5.0rc3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (836.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

synria_robocore-2.5.0rc3-cp311-cp311-macosx_11_0_arm64.whl (783.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Hashes for synria_robocore-2.5.0rc3.tar.gz
Algorithm Hash digest
SHA256 d40e51c0a5b8f3b05d92fc928f73fa49d9317e7b3c8f623e2dd665503af5f6e5
MD5 c34ba2dcab744475c471e0a293d95719
BLAKE2b-256 2c0169424e9a8c43e21186783e96297cb382daf4c4346773d0e12962492de1c1

See more details on using hashes here.

File details

Details for the file synria_robocore-2.5.0rc3-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 feffdcc025a0eb0256e486fe54520c40a95e5595f0eab651ea5c58502ac3b886
MD5 9d342c5f358da0e8eac22b50e82e7986
BLAKE2b-256 23c5b83b457c4c8e7c666225cd1ae4cf6f86181477e4e4d020fb3a2e229e9d09

See more details on using hashes here.

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

File hashes

Hashes for synria_robocore-2.5.0rc3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d6d95da72684f43e91728beeb6bff91debc2187c79ac27a9a13f50ec2230cb60
MD5 887edb52e06aa62d739aa6725f40c459
BLAKE2b-256 c758074970dc2983a8fec3ee5ef517fdf6a177c8a8472601bfdf6c85e6310128

See more details on using hashes here.

File details

Details for the file synria_robocore-2.5.0rc3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc3-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 eb157359116e9a6beaba0ba90639cf2b3e6afd6f2ba3778f83f9e7045e405245
MD5 9b89a13fb520d4f8ad6668270556bda9
BLAKE2b-256 625d69f794ce85b80d94a4fc23380e72ec0af9eec5c6eaf7f0c1c202e1fbb354

See more details on using hashes here.

File details

Details for the file synria_robocore-2.5.0rc3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f195d7922d5e9c9abcd0a782a03d180f0818fa52905a6820f074901b7aa4fde6
MD5 22d552bad2736266d4c804e7db5f000d
BLAKE2b-256 e7a9ef79564c92df65f3b53c84d329a1b8f8e7811acce0a0a36baeb06269fef8

See more details on using hashes here.

File details

Details for the file synria_robocore-2.5.0rc3-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 6b6671735ef5bdffd9a811d758a472c3279bc95f0e08a63562099f9df2865d95
MD5 b112a15552f502e6cde06c9d21ce365f
BLAKE2b-256 3a624724ea52869c5a95bcdeec14e4a6d14b14643b61d3e4b8ca7f5b02565dfc

See more details on using hashes here.

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

File hashes

Hashes for synria_robocore-2.5.0rc3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6615376aee699d35a971017e67ac36fb8b93dd353fc19a0ba6decd3ac9008050
MD5 ac84bb3c6502895dba0611b2f4268e11
BLAKE2b-256 7d920fd638215590de18f9d567558726c64cd48dbd777308e00d261bf6b5a4de

See more details on using hashes here.

File details

Details for the file synria_robocore-2.5.0rc3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8c1e27c6929b6e7736cc23f9a19b27a4369f3f208f8609183a9e9284db5b1800
MD5 92d4ed35952925455b5a87795978fbcd
BLAKE2b-256 a91c5f6d17130b669a852ad1e44611ebce86a20b43a090cc231c999a1c7a010e

See more details on using hashes here.

File details

Details for the file synria_robocore-2.5.0rc3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5e6f1aeff27fcb8c1e76df2a8e41132f15d77cc69c307272fdb5ff361f0acf96
MD5 2eacf284329db8434648f7ab12850a44
BLAKE2b-256 b70f2cf68506ec1a850170f0ade334ee701365bbcef8e4fd97b55e0b2ed69a37

See more details on using hashes here.

File details

Details for the file synria_robocore-2.5.0rc3-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8ba17097d112ad61d5011bbb034a3fb6e95d2811b5b8fc4e070c0501cb1c2cf0
MD5 27f5eac36698dc95a4420b47bbb4d39f
BLAKE2b-256 bdf7242d078f02d105776dafa6919680b63017522f80cbb155f507d8115e01f6

See more details on using hashes here.

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

File hashes

Hashes for synria_robocore-2.5.0rc3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6ee3dc36b15c2d4fbeab2092c0927fb588c2cf39a478ea7285d47311384303f5
MD5 aad9e94574fbad9707680178f9f543ed
BLAKE2b-256 e747215b146afec265a220e32d7474927bcce94aed5482e6215af04c8c03ecf1

See more details on using hashes here.

File details

Details for the file synria_robocore-2.5.0rc3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc3-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 757b8b137be19a5ac26774680edbd4bb674edac05c297d82782260777d503bcc
MD5 257a913dd2cad1ee3f986f30b77d0f79
BLAKE2b-256 e1d679286c82af870aaf4697fa3c25f8dd4e6575e654765137aa814dfa4f04be

See more details on using hashes here.

File details

Details for the file synria_robocore-2.5.0rc3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d135e2551389c68e07635f5efceee569a4f8b30c36016191883be1437d522296
MD5 b18b2579174abd7df24ac65757b63ee4
BLAKE2b-256 baae920427ffbfcb1e3c04ac8b9f4ef4f5232ee2a04c01aa67d71959ad550a6c

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