دليل إعداد Booster K1
أكمل الإعداد خطوة بخطوة للروبوت الآلي Booster K1 - بدءًا من فتح العلبة وحتى خطوات المشي الأولى وحتى تكامل النظام الأساسي.
السلامة وإعداد مساحة العمل
متطلبات مساحة العمل
- الحد الأدنى لمساحة الأرضية: 3 م × 3 م سطح واضح وصلب ومستو
- إزالة السقف: الحد الأدنى 2.2 م
- لا توجد عقبات داخل نصف قطر التشغيل أثناء وضع المشي
- التوقف في حالات الطوارئ: تأكد من أن وحدة التحكم عن بعد مشحونة وفي متناول اليد قبل تشغيلها
- جهاز الرفع: مطلوب لتطوير الوضع المخصص - يجب تعليق الروبوت قبل الدخول إلى التحكم على مستوى المفصل
فتح القائمة المرجعية
- افحص جميع الوصلات الـ 22 بحثًا عن أي تلف أثناء الشحن - حرك كل منها برفق باليد في حالة DAMP
- تأكد من تضمين كابل Ethernet ومن أن محطة العمل الخاصة بك تحتوي على منفذ سلكي مجاني
- قم بشحن جهاز التحكم عن بعد بالكامل قبل الاستخدام الأول
- اقرأ دليل تعليمات Booster Robotics K1 الموجود في العلبة
تسلسل التشغيل والتمهيد
قم بتكوين واجهة Ethernet الخاصة بك
عنوان IP السلكي الافتراضي لـ K1 هو 192.168.10.102. قم بتعيين واجهة الشبكة السلكية للكمبيوتر الخاص بك على:
- عنوان IP:
192.168.10.10 - قناع الشبكة الفرعية:
255.255.255.0 - بوابة:
192.168.10.1
التحقق من الاتصال
ping 192.168.10.102 # should respond with <5ms latency on wired
فحص حالة التمهيد عبر SSH
ssh booster@192.168.10.102 # password: 123456 booster-cli launch -c status # confirm service is running
تثبيت SDK والاتصال الأول
قم بتثبيت Booster SDK
يتم توزيع Python SDK الرسمي على PyPI ويتطلب Python 3.8 أو إصدار أحدث.
pip install booster_robotics_sdk_python --user
أول اتصال SDK وقراءة الحالة
import booster
client = booster.BoosterClient("192.168.10.102")
status = client.get_robot_status()
print(f"Mode: {status.mode}")
print(f"Battery: {status.battery_percentage:.1f}%")
print(f"IMU: {status.imu_status}")
إدارة خدمة الروبوت (SSH)
booster-cli launch -c start # start service booster-cli launch -c stop # stop service booster-cli launch -c restart # restart service cat /opt/booster/version.txt # check firmware version
اختبار الحركة الأساسي
تسلسل انتقال الوضع: DAMP → PREP → WALK
اتبع دائمًا هذا التسلسل الدقيق. لا تقم أبدًا بتخطي PREP أو الانتقال مباشرةً من DAMP إلى WALK.
import booster
import time
client = booster.BoosterClient("192.168.10.102")
# Step 1: Enter PREP — robot stands and holds position
client.change_mode(booster.Mode.PREP)
time.sleep(3) # IMPORTANT: wait full 3s for balance stabilization
print("Robot standing in PREP mode.")
# Step 2: Enter WALK mode
client.change_mode(booster.Mode.WALK)
time.sleep(2)
# Step 3: Walk forward slowly
client.walk(0.2, 0.0, 0.0) # forward 0.2 m/s
time.sleep(3)
client.walk(0.0, 0.0, 0.0) # stop
# Return to standing
client.change_mode(booster.Mode.PREP)
معلمات سرعة المشي
ال client.walk(forward, lateral, angular) يقبل المكالمة:
- إلى الأمام: −0.5 إلى +0.5 م/ث (موجب = للأمام)
- جانبي: −0.5 إلى +0.5 م/ث (موجب = يمين)
- الزاوي: −1.0 إلى +1.0 راد/ثانية (موجب = انعطف يسارًا)
اختصارات جهاز التحكم عن بعد
- إل تي + بداية: أدخل وضع الإعدادية
- رات + أ: الدخول إلى وضع المشي (من الإعدادية)
- إل تي + العودة: أدخل وضع DAMP
- العصا اليسرى: اتجاه السير · العصا اليمنى: دور
- لوحة D: حركة الرأس
الإجراءات المحددة مسبقًا (وضع المشي)
client.play_action("wave") # wave hand
client.play_action("handshake") # handshake
client.play_action("bow") # bow
client.play_action("fortune_cat") # fortune cat pose
client.play_action("new_year_dance") # new year dance
client.play_action("rock_dance") # rock dance
التلاعب بالذراع
التحكم في وضعية الرأس
التحكم في انحراف الرأس (±90 درجة) ودرجة الميل (-40 درجة إلى +30 درجة) باستخدام set_head_pose(yaw_rad, pitch_rad). تحويل الدرجات إلى راديان أولاً:
import math def deg2rad(d): return d * math.pi / 180.0 # Look 30° left and 10° down client.set_head_pose(deg2rad(30), deg2rad(-10)) # Return to center client.set_head_pose(0.0, 0.0)
الوضع المخصص — التحكم المباشر بالمفاصل
# Enter CUSTOM mode from PREP only, with robot on lifting device client.change_mode(booster.Mode.CUSTOM) # Joint indexing: j1=head_yaw, j2=head_pitch, j3–j22=body joints # Refer to K1 Instruction Manual for full joint map
أوضاع الوكيل المضمنة
client.enter_agent("default") # Booster default agent
client.enter_agent("soccer") # soccer agent
client.enter_agent("hi_chat") # conversational AI agent
client.enter_agent("dance") # dance agent
جمع البيانات ومنصة Teleop
ال k1_agent.py يقوم البرنامج النصي بتوصيل Booster K1 إلى منصة RoboticsCenter عبر WebSocket، مما يتيح التشغيل عن بعد والمراقبة المشتركة وجمع بيانات العرض التوضيحي من المتصفح.
تثبيت وتشغيل الوكيل
pip install websockets # Real hardware python k1_agent.py \ --backend wss://your-backend.run.app \ --session YOUR_SESSION_ID \ --node-id k1-lab-01 \ --telemetry-hz 8 # Mock mode — no K1 hardware required python k1_agent.py \ --backend ws://localhost:8000 \ --session test-session \ --mock
القياس عن بعد الذي يتم بثه بواسطة الوكيل (افتراضي 8 هرتز)
- زوايا المفاصل لستة مفاصل أساسية بالدرجات (j1 – j6)
- حالات المحرك: الموضع، عدد الدورات في الدقيقة، درجة الحرارة لكل محرك
- مكونات سرعة المشي: vx، vy، wz
- نسبة البطارية وسلسلة الوضع الحالي
- اسم الوكيل النشط (الافتراضي / كرة القدم / الرقص / HiChat)
- الطابع الزمني بالمللي ثانية لمحاذاة الإطار
booster-cli log -st YYYYMMDD-HHMMSS -et YYYYMMDD-HHMMSS -o /home/booster/Documents