Skip to content

Synria-Robotics/RoboCore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

40 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

RoboCore: Unified High-Throughput Robotics Library

License Python

Developed by Synria Robotics Co., Ltd. πŸ€–


✨ Features

Module Functionality Status
Modeling URDF/MJCF parsing, Robot model abstraction βœ… Stable
Forward Kinematics NumPy/PyTorch backends, Batch processing βœ… Stable
Inverse Kinematics DLS/Pinv/Transpose methods, Multi-start βœ… Stable
Jacobian Analytic/Numeric/Autograd methods βœ… Stable
Transform SE(3)/SO(3) operations, Conversions βœ… Stable
Analysis Workspace/Singularity analysis βœ… Beta
Planning Trajectory generation 🚧 Alpha
Visualization Kinematic tree display βœ… Stable
Configuration YAML-based config management βœ… Stable

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 .

# Optional: Install with PyTorch for GPU support
pip install torch torchvision

🎯 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, backend='numpy', 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

# Generate random configurations
q_batch = robot.random_q_batch(batch_size=1000)

# Batch FK on GPU
poses = robot.fk(
    torch.tensor(q_batch), 
    backend='torch', 
    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

πŸ§ͺ Testing

# Run all tests
pytest

# Specific test suites
pytest test/unit/          # Unit tests
pytest test/integration/   # Integration tests

# With coverage report
pytest --cov=robocore --cov-report=html

πŸ“‹ TODO & Roadmap

High Priority πŸ”΄

  • Collision Detection - Mesh-based collision checking
  • Path Planning - RRT/RRT*/PRM algorithms
  • Dynamics - Inverse/Forward dynamics computation
  • Control - PID, MPC, impedance controllers

Medium Priority 🟑

  • Optimization - Further SIMD/vectorization improvements
  • Mobile Manipulators - Support for mobile bases
  • Multi-Arm Systems - Coordinated multi-robot control

Low Priority 🟒

  • Visualization - 3D interactive visualization (PyBullet/MuJoCo)
  • Documentation - API docs, tutorials, best practices

πŸ—οΈ 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}
}