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.0rc2.tar.gz (280.0 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.0rc2-cp313-cp313-win_amd64.whl (812.5 kB view details)

Uploaded CPython 3.13Windows x86-64

synria_robocore-2.5.0rc2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (897.5 kB view details)

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

synria_robocore-2.5.0rc2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (856.4 kB view details)

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

synria_robocore-2.5.0rc2-cp313-cp313-macosx_11_0_arm64.whl (812.0 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

synria_robocore-2.5.0rc2-cp312-cp312-win_amd64.whl (812.4 kB view details)

Uploaded CPython 3.12Windows x86-64

synria_robocore-2.5.0rc2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (897.5 kB view details)

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

synria_robocore-2.5.0rc2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (856.4 kB view details)

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

synria_robocore-2.5.0rc2-cp312-cp312-macosx_11_0_arm64.whl (811.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

synria_robocore-2.5.0rc2-cp311-cp311-win_amd64.whl (806.1 kB view details)

Uploaded CPython 3.11Windows x86-64

synria_robocore-2.5.0rc2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (892.0 kB view details)

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

synria_robocore-2.5.0rc2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (849.2 kB view details)

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

synria_robocore-2.5.0rc2-cp311-cp311-macosx_11_0_arm64.whl (802.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

File details

Details for the file synria_robocore-2.5.0rc2.tar.gz.

File metadata

  • Download URL: synria_robocore-2.5.0rc2.tar.gz
  • Upload date:
  • Size: 280.0 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.0rc2.tar.gz
Algorithm Hash digest
SHA256 14d4d1319c23d582607f557d38cd355006a2845972af439fae2a5291a35ac09c
MD5 e479d809bb59b7e4085fb5aa1077bc3c
BLAKE2b-256 53d68684641ce1e660cd6979ed2c7d8cf3c79393ad7fe3ddd63a6a12b09685fa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 110739a6dc9b4085789dc286ea54a7d1d184bd897f788778816a290fc221ada6
MD5 2dccfe5324e5ee26089cca7e06a95159
BLAKE2b-256 879b4ba50f70a2b805c423eca1bde82ee431691c621534a2fd4d1ea991c72711

See more details on using hashes here.

File details

Details for the file synria_robocore-2.5.0rc2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7fed6413d1fe76bfb062b21a65048a511273b7c1fc75aea63201e3924e5216bb
MD5 af457556f6b7d95ac88cf13c569ccdfc
BLAKE2b-256 e4a4728b3d5f8762ba305e8c33472f85cb5f9037592404f9fd9bca0641530fb7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c0bee376a564df118e1f3d1ce38111d2fd34c0420bb49b295020f628eb8d4bb0
MD5 599319039dc74a2696b02852f722d5bd
BLAKE2b-256 a8ee5822aece50c3dd8594d465099774a0f0536c3d9e7b9e76feebf267aa070c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d75406194b5079d4a9729581445103752bdc3ec13600599da313b77925fb43c4
MD5 48053537c9ea824c3c6d16ee8030bdaf
BLAKE2b-256 91a9786c95449b3c6d463e219c7e3810007e60aca87fd96ef907c20cb3f2826c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c06ee82733a0321037d4bdcb1428f7d52b1b089c4dd13de3dbeaf5143058d4ba
MD5 27b8baf48b4d50f21cb9bd85a20e1075
BLAKE2b-256 d5045b692c45409efec5b255bd43349020cdcfb367b186d1075ad7144ff2e7fe

See more details on using hashes here.

File details

Details for the file synria_robocore-2.5.0rc2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5c4f9bcb5c37565b7cf8e74a42d8d063a1c27078c05b1998339bf284fef6abed
MD5 2741b6e08b8b9cb91f5ea80991e53b82
BLAKE2b-256 dd5baaf8e6758ec618cc675738ccdff448e59c0b81008a5e903cfbf84676d5c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5fb5d9a69426d8f436d7f0e395908964aa90456ead84d4ab0f640195f1bfe90c
MD5 feae147358398445ad0002f6bd56f1f6
BLAKE2b-256 5263e2134bb5dc8f3f6768d943ebb4b187528427be59e1c9d4fd8f349626376b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 75d0b3427c9109608fe5e4d5ea710266a9ab83713d28bb7b9d907e188bdd4874
MD5 3cf250bbabbd73d97462ed19cf35a66c
BLAKE2b-256 77788224fb5eca4aac31fb98d651a455424ab94d2b3c65895cadc3defce76c32

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d1ef4d96b28d8b1f862c736924445b23c25edce9a34dd28afffe12b18dcf5c85
MD5 bf97f56d3f83c18fadf74bc8e0ce1e6f
BLAKE2b-256 9774aaeb1fb250ba763931f34fa34554f804c2c04b122524015690cbc74404f4

See more details on using hashes here.

File details

Details for the file synria_robocore-2.5.0rc2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 63fe6b75d36d3c8b2a21cd0e2e1a93b7874fc27893e3f5490f2b91b7505445af
MD5 90dd674702a1cde4ac6cb3baef5c95cd
BLAKE2b-256 70d5e1a5de555efb8c9903333438c474b5eab46f05b477ba26817c3242002ccc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d2dc9234de6f81ed1bf6100d76197f75a7eb46b1c5bb927c7f9d3bc914858f6a
MD5 73de86db0ffdeca379eb2b5a6979f2e7
BLAKE2b-256 be9fbc37a1ed4a64ad9f85bbc1f8b470331308c77a41e934fdad8cbe594198a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for synria_robocore-2.5.0rc2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e6daea3b788977df8e42caf8ed652dc0e02afe9a340f72eaa683d3fb9993f1d6
MD5 51dcafe7cff5ee8de718156a6ca5beff
BLAKE2b-256 fdd5366cf4fcc5c13cf0a62588b3a574a1de3e221e40b512ffb4d3b0c1aae22f

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