SynriaRD: Synria Robot Descriptions
English | 中文
This repository contains URDF (Unified Robot Description Format) and MJCF (MuJoCo Modeling Format) models for Synria robotic platforms.
Repository Structure
├── synriard
│ ├── meshes
│ │ ├── Alicia_D_v5_5
│ │ ├── Alicia_D_v5_6
│ │ ├── Alicia_M_v1_0
│ │ ├── Alicia_M_v1_1
│ │ ├── Bessica_D_v1_0
│ │ ├── Bessica_D_v1_1
│ │ └── Bessica_M_v1_0
│ ├── mjcf
│ │ ├── Alicia_D_v5_5
│ │ ├── Alicia_D_v5_6
│ │ ├── Alicia_M_v1_1
│ │ ├── Bessica_D_v1_0
│ │ ├── Bessica_D_v1_1
│ │ └── Bessica_M_v1_0
│ └── urdf
│ ├── Alicia_D_v5_5
│ ├── Alicia_D_v5_6
│ ├── Alicia_M_v1_0
│ ├── Alicia_M_v1_1
│ ├── Bessica_D_v1_0
│ ├── Bessica_D_v1_1
│ └── Bessica_M_v1_0
Naming Convention
All model files follow a unified naming format: {name}_{version}_{variant}.{ext}
- name: Robot name (e.g.,
Alicia_D,Alicia_M,Bessica_D,Bessica_M) - version: Version number (e.g.,
v5_5,v5_6,v1_0,v1_1) - variant: Variant identifier
- For robots with grippers (Alicia_D, Alicia_M):
gripper_{size}(e.g.,gripper_50mm,gripper_100mm) - For other variants (Bessica_D): Direct variant name (e.g.,
covered,skeleton,skeleton_interactive)
- For robots with grippers (Alicia_D, Alicia_M):
- ext: File extension (
.urdfor.xml)
Examples
Alicia_D_v5_6_gripper_50mm.urdf- Alicia_D v5.6 version with 50mm gripperAlicia_D_v5_6_gripper_100mm.urdf- Alicia_D v5.6 version with 100mm gripperAlicia_M_v1_1_gripper_100mm.urdf- Alicia_M v1.1 version with 100mm gripperBessica_D_v1_0_covered.urdf- Bessica_D v1.0 version, covered variantBessica_D_v1_1_skeleton.urdf- Bessica_D v1.1 version, skeleton variantBessica_D_v1_0_covered_interactive.xml- Bessica_D v1.0 version, covered interactive variant (MJCF)
Usage API
from synriard import get_model_path, list_available_models
# Get model path
urdf_path = get_model_path("Alicia_D", version="v5_6", variant="gripper_50mm")
mjcf_path = get_model_path("Alicia_D", version="v5_6", variant="gripper_50mm", model_format="mjcf")
# List all available models
print(list_available_models(model_format="urdf"))
print(list_available_models(model_format="urdf", show_path=True))
Products
Alicia-D
- Description: Agile manipulation arm
- DOF: 6
- Gripper Configurations: 50mm and 100mm
- Versions: v5.5, v5.6
- Variants:
gripper_50mm- 50mm gripper configurationgripper_100mm- 100mm gripper configurationleader- Leader arm configuration (v5.6 only)vertical_50mm- Vertical 50mm configuration (v5.6 only)
- Locations:
Alicia-M
- Description: Cloud-powered robotic arm
- DOF: 6
- Versions: v1.0, v1.1
- Gripper Configuration: 100mm
- Locations:
Bessica-D
- Description: Dual-arm humanoid robot
- DOF: 14 (Dual 7-DOF arms)
- Versions: v1.0, v1.1
- Appearance: Skeleton and covered versions
Skeleton Version
- v1.0 URDF:
Bessica_D_v1_0_skeleton.urdf - v1.0 MuJoCo XML:
Bessica_D_v1_0_skeleton.xml - v1.1 URDF:
Bessica_D_v1_1_skeleton.urdf - v1.1 MuJoCo XML:
Bessica_D_v1_1_skeleton.xml - v1.1 MuJoCo XML (Interactive):
Bessica_D_v1_1_skeleton_interactive.xml
Covered Version (v1.0 only)
- URDF:
Bessica_D_v1_0_covered.urdf - MuJoCo XML:
Bessica_D_v1_0_covered.xml - MuJoCo XML (Interactive):
Bessica_D_v1_0_covered_interactive.xml
Bessica-M
- Description: Dual-arm humanoid robot (M series)
- DOF: 14 (Dual 7-DOF arms)
- Version: v1.0
- Location:
Bessica_M_v1_0
Adding New Robot Models
After adding new robot models, run the automation script to automatically generate the required __init__.py files:
# 1. Add model files to the corresponding directory
mkdir -p synriard/mjcf/RobotName_v1_0
cp RobotName_v1_0_gripper_100mm.xml synriard/mjcf/RobotName_v1_0/
# 2. Run the automation script
python3 auto_generate_init.py
# The script will automatically:
# - Generate __init__.py for each robot directory
# - Update parent directory __init__.py to register all robots
Script options:
--format mjcf|urdf|all: Specify the format to process (default: all)--synriard-path PATH: Specify the synriard directory path (default: auto-detect)
Supported Simulation Environments
- ROS/ROS2 (via URDF)
- MuJoCo (via MJCF)
- Gazebo (via URDF)
- PyBullet (via URDF)
- Isaac Sim (via URDF/MJCF)
Metadata
Release files for synriard 1.2.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| synriard-1.2.4.tar.gz | 53.0 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| synriard-1.2.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 106.1 MB
Release files / synriard-1.2.4.tar.gz
| Download URL | synriard-1.2.4.tar.gz |
|---|---|
| Size | 53.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a5a80119947c965aaba80b6c6855102d5a361fdb114f865ca6609c5dc888a596
|
|
BLAKE2b-256 checksum How to use checksums |
a055bc6373a199835f54ef86cdacea8f94f98a42e47154742dbe4b0e8f1e3724
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|
Release files / synriard-1.2.4-py3-none-any.whl
| Download URL | synriard-1.2.4-py3-none-any.whl |
|---|---|
| Size | 53.0 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1dd6f1c1289a358dfac37c68bdedd07144cf27ed5b8da28e415b99532e304e56
|
|
BLAKE2b-256 checksum How to use checksums |
c08649e37ee1d24d600a8db45d41aba80006b78bc21a7c94e47ec9c874ce7272
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|