Skip to content

Synria-Robotics/RoboCore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

83 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

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) - 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 .
pip install -r requirements.txt

🎯 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

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


πŸ“– 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}
}