العودة إلى الرئيسية

من Hugging Face Hub إلى الأجهزة الروبوتية باستخدام وكلاء Strands وLeRobot

اكتشف كيف تسد وكلاء ستراندز ولي-روبوت الفجوة بين نماذج الذكاء الاصطناعي على منصة هاغينغ فيس هاب والأجهزة الروبوتية الواقعية، مما يتيح نشرًا سلسًا للوكلاء الأذكياء لأداء المهام المستقلة.

القراءة الصوتية غير متاحة في هذا المتصفح
من Hugging Face Hub إلى الأجهزة الروبوتية باستخدام وكلاء Strands وLeRobot

الوسوم

ملخص سريع

اكتشف كيف تسد وكلاء ستراندز ولي-روبوت الفجوة بين نماذج الذكاء الاصطناعي على منصة هاغينغ فيس هاب والأجهزة الروبوتية الواقعية، مما يتيح نشرًا سلسًا للوكلاء الأذكياء لأداء المهام المستقلة.

من Hugging Face Hub إلى الأجهزة الروبوتية باستخدام Strands Agents وLeRobot

التقاطع بين نماذج اللغة الكبيرة (LLMs) والروبوتات يتوسع بسرعة، مما يمكّن المطورين من الانتقال من المحاكاة إلى الأجهزة الحقيقية بسرعة غير مسبوقة. مشروعان مفتوحا المصدر—Strands Agents وLeRobot—في طليعة هذا التحول، مما يسمح لك بتنزيل سياسات التحكم في الروبوتات من Hugging Face Hub ونشرها على روبوتات مادية. تقدم هذه المقالة دليلاً عمليًا خطوة بخطوة لسد الفجوة بين نماذج الذكاء الاصطناعي السحابية والأجهزة الروبوتية الملموسة.

لماذا هذا مهم

تقليديًا، كان تطوير الروبوتات يتطلب برامج ثابتة مخصصة وبرامج احتكارية وضبطًا يدويًا مكثفًا. اليوم، بفضل مستودعات النماذج الموحدة وأطر العمل الوكلائية، يمكنك:

  • **تنزيل سياسات مدربة مسبقًا** (مثل الإمساك أو الملاحة أو المناولة) من Hugging Face Hub.
  • **تشغيلها باستخدام Strands Agents**، وهو إطار عمل معياري لتنسيق وكلاء الذكاء الاصطناعي.
  • **تنفيذها على أجهزة روبوتية حقيقية** باستخدام LeRobot، وهي مكتبة للتحكم منخفض المستوى في الروبوتات والمحاكاة.

يقلل هذا الخط من وقت التطوير من أشهر إلى أيام ويضفي الطابع الديمقراطي على الوصول إلى الذكاء الاصطناعي المتقدم في الروبوتات.

المتطلبات

قبل البدء، تأكد من أن نظامك يلبي المتطلبات التالية:

  • **نظام التشغيل**: Ubuntu 22.04 أو أحدث (macOS وWindows مع WSL2 مدعومان جزئيًا).
  • **بايثون**: الإصدار 3.10 أو 3.11.
  • **الأجهزة**: روبوت بواجهة مدعومة (مثل Franka Emika أو UR5 أو ذراع مخصص مع ROS 2). للاختبار بدون أجهزة، استخدم المحاكاة المدمجة في LeRobot.
  • **GPU**: موصى به لتشغيل نماذج LLM كبيرة (مثل NVIDIA GPU مع CUDA 12.1+).
  • **الإنترنت**: لتنزيل النماذج من Hugging Face Hub.

التبعيات البرمجية

  • **ROS 2 Humble أو Iron** (للاتصال بالأجهزة).
  • **Git** و **Git LFS** (لتنزيل ملفات النماذج الكبيرة).
  • **Conda** أو **venv** (لإدارة بيئة بايثون).

التثبيت خطوة بخطوة

سنقوم بإعداد بيئة كاملة من الصفر. افتح محطة طرفية ونفذ كل كتلة أوامر بالتسلسل.

1. إنشاء بيئة بايثون افتراضية

اعزل التبعيات لتجنب التعارضات.

python3 -m venv strands_robot_env
source strands_robot_env/bin/activate

2. تثبيت LeRobot

يوفر LeRobot الواجهة منخفضة المستوى للتحكم في الروبوت. قم بتثبيت أحدث إصدار من PyPI.

pip install lerobot

إذا كنت تخطط لاستخدام المحاكاة (موصى به للاختبار)، قم بالتثبيت مع الإضافات الخاصة بالمحاكاة:

pip install "lerobot[sim]"

3. تثبيت Strands Agents

Strands Agents هي طبقة التنسيق عالية المستوى. استنسخ المستودع وقم بالتثبيت في الوضع القابل للتحرير.

git clone https://github.com/huggingface/strands-agents.git
cd strands-agents
pip install -e .

4. تثبيت ROS 2 (للاتصال بالأجهزة)

إذا كنت تنوي التشغيل على روبوت مادي، قم بتثبيت ROS 2 Humble. اتبع دليل تثبيت ROS 2 الرسمي لنظام التشغيل الخاص بك. لـ Ubuntu 22.04:

sudo apt update
sudo apt install ros-humble-desktop
source /opt/ros/humble/setup.bash

أضف أمر المصدر إلى ملف `~/.bashrc` للاستمرارية:

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc

5. المصادقة مع Hugging Face Hub

لتنزيل النماذج، قم بتسجيل الدخول إلى Hugging Face Hub. ستحتاج إلى رمز وصول مستخدم (أنشئ واحدًا على [hf.co/settings/tokens](https://huggingface.co/settings/tokens)).

huggingface-cli login

الصق رمزك عند الطلب.

6. التحقق من التثبيت

اختبر أن جميع المكونات قابلة للوصول.

python -c "import lerobot; print('LeRobot version:', lerobot.__version__)"
python -c "import strands_agents; print('Strands Agents imported successfully')"

تنزيل سياسة مدربة مسبقًا من Hugging Face Hub

يستضيف Hugging Face Hub مئات من سياسات الروبوتات. في هذا المثال، سنستخدم سياسة لمهام الالتقاط والوضع، مدربة على مجموعة بيانات `lerobot/pusht`.

1. قائمة السياسات المتاحة

استخدم واجهة سطر الأوامر الخاصة بـ LeRobot لتصفح النماذج.

lerobot list --datasets

يعرض هذا الأمر مجموعات البيانات والسياسات المرتبطة بها. ابحث عن إدخالات مثل `lerobot/pusht` أو `lerobot/aloha`.

2. تنزيل سياسة محددة

قم بتنزيل أوزان السياسة والتكوين.

lerobot download --dataset lerobot/pusht --policy diffuser

يقوم هذا بتنزيل سياسة `diffuser` لمجموعة بيانات `pusht` إلى `~/.cache/lerobot/`.

3. فحص النموذج

تحقق من هيكل السياسة ومواصفات المدخلات والمخرجات.

from lerobot.common.policies.diffusion.model import DiffusionPolicy
policy = DiffusionPolicy.from_pretrained("lerobot/pusht")
print(policy.config)

سترى معلمات التكوين مثل أبعاد الملاحظات وأبعاد الإجراءات وهندسة النموذج.

تشغيل السياسة باستخدام Strands Agents

يقوم Strands Agents بتغليف السياسة في وكيل يمكنه التفاعل مع البيئة أو الأجهزة.

1. إنشاء سكريبت وكيل بسيط

اكتب ملف بايثون `run_pusht_agent.py`:

from strands_agents import Agent
from lerobot.common.policies.diffusion.model import DiffusionPolicy
import numpy as np

# تحميل السياسة
policy = DiffusionPolicy.from_pretrained("lerobot/pusht")

# تعريف وكيل مخصص يستخدم السياسة
class PushtAgent(Agent):
    def __init__(self, policy):
        super().__init__()
        self.policy = policy

    def step(self, observation):
        # تحويل الملاحظة إلى موتر وتشغيل السياسة
        action = self.policy.select_action(observation)
        return action

# إنشاء الوكيل
agent = PushtAgent(policy)

# اختبار بملاحظة وهمية (مثل صورة وزوايا مفاصل)
dummy_obs = {
    "image": np.random.rand(3, 96, 96).astype(np.float32),
    "joint_positions": np.random.rand(7).astype(np.float32)
}
action = agent.step(dummy_obs)
print("الإجراء المتوقع:", action)

قم بتشغيل السكريبت:

python run_pusht_agent.py

يوضح هذا أن الوكيل يمكنه معالجة الملاحظات وإخراج الإجراءات.

2. الاتصال ببيئة محاكاة

يتضمن LeRobot بيئة على نمط Gym لمهمة `pusht`. استخدمها لاختبار الوكيل في المحاكاة.

from lerobot.envs import create_env
from strands_agents import Agent
from lerobot.common.policies.diffusion.model import DiffusionPolicy

# إنشاء البيئة
env = create_env("lerobot/pusht", simulation=True)

# تحميل السياسة
policy = DiffusionPolicy.from_pretrained("lerobot/pusht")

# تغليف السياسة كوكيل
class PolicyAgent(Agent):
    def step(self, obs):
        return policy.select_action(obs)

agent = PolicyAgent(policy)

# تشغيل حلقة واحدة
obs, info = env.reset()
for _ in range(200):
    action = agent.step(obs)
    obs, reward, done, truncated, info = env.step(action)
    if done:
        break
env.close()
print("انتهت الحلقة.")

النشر على أجهزة روبوتية حقيقية

الانتقال من المحاكاة إلى الروبوت المادي يتطلب تكوينًا خاصًا بالأجهزة. سنستخدم ذراع Franka Emika Panda كمثال.

1. تكوين واجهة ROS 2

تأكد من تشغيل مشغلات ROS 2 الخاصة بالروبوت. بالنسبة لـ Franka، ابدأ مشغل `franka_ros2`.

ros2 launch franka_bringup franka.launch.py robot_ip:=192.168.1.100

2. إنشاء وكيل مدرك للأجهزة

قم بتعديل الوكيل للتواصل مع الروبوت عبر موضوعات ROS 2. استخدم فئة `Robot` من LeRobot.

from lerobot.robot import Robot
from strands_agents import Agent
from lerobot.common.policies.diffusion.model import DiffusionPolicy

# تهيئة واجهة الروبوت
robot = Robot("franka", control_mode="position")

# تحميل السياسة
policy = DiffusionPolicy.from_pretrained("lerobot/pusht")

class HardwareAgent(Agent):
    def step(self, obs):
        return policy.select_action(obs)

agent = HardwareAgent(policy)

# حلقة التحكم الرئيسية
while True:
    # الحصول على الملاحظة الحالية من مستشعرات الروبوت
    obs = robot.get_observation()
    # حساب الإجراء
    action = agent.step(obs)
    # إرسال الإجراء إلى الروبوت
    robot.send_action(action)

3. احتياطات السلامة

قبل التشغيل على الأجهزة:

  • **تعيين حدود السرعة** في تكوين الروبوت.
  • **تفعيل الإيقاف الطارئ**.
  • **البدء بوضع كسب منخفض**.
  • **استخدام حدود مفصل افتراضية** لمنع الاصطدامات.

يوفر LeRobot وحدة `safety`؛ أضفها إلى السكريبت الخاص بك:

from lerobot.utils.safety import SafetyController
safety = SafetyController(velocity_limit=0.5)
action = safety.limit(action)

أمثلة على الاستخدام

مثال 1: الالتقاط والوضع مع المحاكاة

قم بتنزيل سياسة الالتقاط والوضع وتشغيلها في بيئة محاكاة.

lerobot download --dataset lerobot/aloha --policy act
python -c "
from lerobot.envs import create_env
from lerobot.common.policies.act.model import ACTPolicy
env = create_env('lerobot/aloha', simulation=True)
policy = ACTPolicy.from_pretrained('lerobot/aloha')
obs = env.reset()
for _ in range(500):
    action = policy.select_action(obs)
    obs, reward, done, _, _ = env.step(action)
    if done: break
print('تم إكمال الالتقاط والوضع.')
"

مثال 2: وكيل مخصص مع تعليمات لغوية

يدعم Strands Agents الاستدلال القائم على LLM. ادمج سياسة مع نموذج لغوي للتخطيط عالي المستوى للمهام.

from strands_agents import Agent
from lerobot.common.policies.diffusion.model import DiffusionPolicy
from transformers import pipeline

class LanguageGuidedAgent(Agent):
    def __init__(self, policy, llm):
        self.policy = policy
        self.llm = llm

    def step(self, obs, instruction):
        # استخدام LLM لتحسين الإجراء بناءً على التعليمات
        prompt = f"بالنظر إلى الملاحظة {obs}، التعليمات: {instruction}"
        response = self.llm(prompt)
        # تعيين مخرجات LLM إلى معلمات السياسة
        return self.policy.select_action(obs)

policy = DiffusionPolicy.from_pretrained("lerobot/pusht")
llm = pipeline("text-generation", model="gpt2")
agent = LanguageGuidedAgent(policy, llm)
action = agent.step(dummy_obs, "حرك المكعب إلى اليسار")

استكشاف المشكلات الشائعة وإصلاحها

  • **فشل تنزيل النموذج**: تأكد من تثبيت Git LFS (`git lfs install`).
  • **أخطاء اتصال ROS 2**: تحقق من تطابق `ROS_DOMAIN_ID` عبر جميع العقد.
  • **نفاد ذاكرة CUDA**: قلل حجم الدفعة أو استخدم الاستدلال على وحدة المعالجة المركزية (`device="cpu"` في تحميل السياسة).
  • **عدم تطابق المحاكاة مع الأجهزة**: قم بتطبيع بيانات الملاحظة بشكل متسق.

الخاتمة

الجمع بين Hugging Face Hub وStrands Agents وLeRobot يخلق خط أنابيب قويًا مفتوح المصدر لنشر نماذج الذكاء الاصطناعي على روبوتات حقيقية. يمكنك الآن تنزيل أحدث السياسات وتنسيقها بمنطق وكيل مرن وتشغيلها على الأجهزة—كل ذلك ببضعة أسطر من بايثون.

يخفض هذا النهج حاجز الدخول للبحث والتطوير في مجال الروبوتات، مما يتيح تجربة وتكرارًا أسرع. مع نمو النظام البيئي، توقع تكاملًا أوثق بين نماذج LLM والمحاكاة والروبوتات المادية، مما يسهل أكثر من أي وقت مضى الانتقال من نموذج على Hub إلى روبوت في مختبرك.

**الخطوات التالية**: استكشف مجموعات بيانات أخرى على Hugging Face Hub (مثل `lerobot/trifinger` و`lerobot/libero`)، وجرب سلوكيات وكيل مخصصة، وساهم بسياساتك المدربة الخاصة مرة أخرى إلى المجتمع.

المصادر

أسئلة شائعة

عن ماذا يتحدث هذا المقال؟

يتناول هذا المقال موضوع "من Hugging Face Hub إلى الأجهزة الروبوتية باستخدام وكلاء Strands وLeRobot" ضمن تصنيف وكلاء الذكاء الاصطناعي. اكتشف كيف تسد وكلاء ستراندز ولي-روبوت الفجوة بين نماذج الذكاء الاصطناعي على منصة هاغينغ فيس هاب والأجهزة الروبوتية الواقعية، مما يتيح نشرًا سلسًا للوكلاء الأذكياء لأداء المهام المستقلة.

لمن يفيد هذا المقال؟

يفيد القراء المهتمين بفهم أدوات وتقنيات الذكاء الاصطناعي بطريقة عملية وواضحة.

ما الخطوة التالية؟

اقرأ المقال كاملاً، راجع المصادر المرفقة، ثم جرّب الأفكار المناسبة لاحتياجك بحذر.