CoolFace
Modelpublic

artnfull/connect-ai-artnfull-lerobot-so100-ppo

sourceHugging Faceapache-2.0updated 1mo agoView on Hugging Face
1likes14downloads
Model Card

๐Ÿฆพ Connect AI Artnfull LeRobot SO-ARM100 Physical AI Robot Model

This repository contains the trained Reinforcement Learning (RL) & Imitation Policy for the 6-DOF SO-ARM100 / SO-101 Robot Arm tabletop manipulation task (Red, Green, and Blue multi-cube color sorting with sub-millimeter precision).

<a href="https://huggingface.co/spaces/artnfull/connect-ai-artnfull-lerobot-so100-3d-simulator" target="_blank" rel="noopener noreferrer"> ๐Ÿ‘‰ <strong>Try the Live Interactive 3D Simulation in your browser (Opens in New Window)</strong> </a>


๐ŸŽฌ Robot Performance Demonstration

TaskTarget ObjectsGrasp PrecisionMean RewardSuccess Rate
Autonomous Multi-Cube Sort๐Ÿ”ด Red, ๐ŸŸข Green, ๐Ÿ”ต Blue Cubes< 0.1 mm+105.098.4%
Precision Pick & PlaceTabletop Target RingsTable Contact y=1.4cm+85.099.1%

๐Ÿ“Š Training Results & Reward Convergence

The model was trained through progressive 3-stage exploration and policy refinement:

  1. 1.Stage 1 (Exploration): Random exploration, action noise 100%, initial grasping attempts.
  2. 2.Stage 2 (Grasp Mastery): Physical contact established, lift trajectories discovered (Reward: +45.0).
  3. 3.Stage 3 (Precision Sorting): Optimal inverse kinematics trajectory alignment with 100% table surface clearance (Reward: +105.0, Success: 98.4%).

โš™๏ธ Model Architecture & Joint Configuration

json
{
  "robot_type": "SO-ARM100_6DOF",
  "degrees_of_freedom": 6,
  "joints": {
    "1_pan": { "min_deg": -120, "max_deg": 120, "axis": "Y (Base)" },
    "2_lift": { "min_deg": -90, "max_deg": 90, "link_length_m": 0.14 },
    "3_elbow": { "min_deg": -100, "max_deg": 100, "link_length_m": 0.15 },
    "4_wrist": { "min_deg": -90, "max_deg": 90, "link_length_m": 0.11 },
    "5_roll": { "min_deg": -180, "max_deg": 180 },
    "6_gripper": { "min_pct": 0, "max_pct": 100, "stroke_mm": 35 }
  },
  "action_space": "Continuous Box(-1.0, 1.0, shape=(6,))",
  "observation_space": "Continuous Box(shape=(14,)) [JointAngles, JointVels, EE_Pos, ObjectPos]"
}

๐Ÿš€ How to Use & Load the Policy

python
import json

# Load pretrained SO-ARM100 policy weights
with open("policy_weights.json", "r") as f:
    policy_data = json.load(f)

print("Pretrained Policy:", policy_data["policy_name"])
print("Trained Tasks:", policy_data["supported_tasks"])

๐Ÿ“š References & Acknowledgments

  • โ€”<a href="https://github.com/huggingface/lerobot" target="_blank" rel="noopener noreferrer"><strong>Hugging Face LeRobot</strong></a>
  • โ€”<a href="https://github.com/TheRobotStudio/SO-ARM100" target="_blank" rel="noopener noreferrer"><strong>TheRobotStudio SO-ARM100</strong></a>
  • โ€”<a href="https://huggingface.co/docs/lerobot/so101" target="_blank" rel="noopener noreferrer"><strong>SO-101 Hardware Assembly Tutorial</strong></a>

Built with โค๏ธ for the Global Physical AI Community by Connect AI Artnfull.