Developed by Synria Robotics Co., Ltd. π€
| 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 | βͺ |
- β URDF (Unified Robot Description Format)
- β MJCF (MuJoCo XML) - Subset implementation for serial chains
- β NumPy - CPU-optimized, 50-100x faster than pure Python
- β PyTorch - GPU acceleration for batch operations
Test Platform: Intel i7-10700K, NVIDIA RTX 3080, 6-DOF Manipulator
| 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 |
| Operation | NumPy (CPU) | PyTorch (GPU) | Speedup |
|---|---|---|---|
| Forward Kinematics | 45 ms | 3.2 ms | 14x |
| Jacobian (Analytic) | 28 ms | 2.1 ms | 13x |
# Clone repository
git clone https://github.com/Synria-Robotics/RoboCore.git
cd RoboCore
# Install (development mode)
pip install -e .
pip install -r requirements.txtfrom 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)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
)# 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.pyRoboCore/
βββ 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
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.
- Website: synriarobotics.ai
- Email: support@synriarobotics.ai
@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}
}