सॉफ्टवेयर सेटअप

SDK इंस्टालेशन, ROS2 होल-बॉडी कंट्रोल इंटरफ़ेस, ज्वाइंट स्टेट रीडिंग और कमांडिंग, लोकोमोशन एपीआई बेसिक्स, म्यूजोको ह्यूमनॉइड सिमुलेशन और शीर्ष 3 समस्या निवारण मुद्दे।

किसी अनुभाग पर जाएँ:

चरण 1 - एसडीके इंस्टालेशन

बूस्टर एसडीके स्थापना

बूस्टर एसडीके को इस प्रकार वितरित किया गया है booster_robotics_sdk_python पीईपीआई पर. यह K1 के नेटवर्क नियंत्रण इंटरफ़ेस को पायथन बाइंडिंग प्रदान करता है।

एक आभासी वातावरण बनाएं (अनुशंसित)

python3 -m venv ~/.venvs/booster-k1
source ~/.venvs/booster-k1/bin/activate

एसडीके स्थापित करें

pip install booster_robotics_sdk_python

स्थापना सत्यापित करें

python3 -c "import booster_robotics_sdk; print('SDK ready')"

नेटवर्क कॉन्फ़िगरेशन

K1 वायर्ड ईथरनेट पर संचार करता है। कनेक्ट करने से पहले अपने होस्ट पीसी के नेटवर्क इंटरफ़ेस को कॉन्फ़िगर करें:

# Set your PC's Ethernet interface to 192.168.10.10
sudo ip addr add 192.168.10.10/24 dev eth0
sudo ip link set eth0 up

# Verify connectivity to the K1
ping 192.168.10.102
चरण 2 - ROS2 एकीकरण

ROS2 संपूर्ण-बॉडी नियंत्रण इंटरफ़ेस

K1 एक ROS2 ब्रिज नोड के साथ आता है जो मानक के रूप में सभी जोड़ों को उजागर करता है ros2_control हार्डवेयर इंटरफ़ेस. यह MoveIt2, प्रक्षेपवक्र योजनाकारों और कस्टम नियंत्रकों के साथ एकीकरण को सक्षम बनाता है।

ROS2 विनम्र स्थापित करें

sudo apt update && sudo apt install software-properties-common curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | \
  sudo apt-key add -
sudo sh -c 'echo "deb http://packages.ros.org/ros2/ubuntu jammy main" \
  > /etc/apt/sources.list.d/ros2.list'
sudo apt update
sudo apt install ros-humble-desktop ros-humble-ros2-control \
  ros-humble-ros2-controllers ros-humble-joint-state-publisher-gui -y

क्लोन करें और K1 ROS2 पैकेज बनाएं

mkdir -p ~/k1_ws/src && cd ~/k1_ws/src
git clone https://github.com/BoosterRobotics/booster_ros2.git
cd ~/k1_ws
source /opt/ros/humble/setup.bash
colcon build --symlink-install

K1 पुल लॉन्च करें

source ~/k1_ws/install/setup.bash
ros2 launch booster_ros2 k1_bringup.launch.py \
  robot_ip:=192.168.10.102

संयुक्त राज्यों का निरीक्षण करें

# List all available topics
ros2 topic list

# Stream joint states (22 joints at 500 Hz)
ros2 topic echo /joint_states
चरण 3 - संयुक्त राज्य एपीआई

संयुक्त राज्यों को पढ़ना और कमांड करना

पायथन एसडीके सभी 22 जोड़ों तक सीधी पहुंच प्रदान करता है। गति का आदेश देने से पहले हमेशा DAMP मोड में प्रारंभ करें।

संयुक्त राज्यों को कनेक्ट करें और पढ़ें

from booster_robotics_sdk import BoosterRobot, RobotMode

# Connect to the robot
robot = BoosterRobot(ip="192.168.10.102")
robot.connect()

# Enter DAMP mode (safe, low impedance)
robot.set_mode(RobotMode.DAMP)

# Read full joint state
state = robot.get_state()
print(f"Mode: {state.mode}")
print(f"Joint positions (rad): {state.joint_positions}")
print(f"Joint velocities (rad/s): {state.joint_velocities}")
print(f"Joint torques (Nm): {state.joint_torques}")
print(f"IMU euler (deg): {state.imu_euler}")

robot.disconnect()

कमांड आर्म संयुक्त स्थिति (कस्टम मोड)

कस्टम मोड बांह के सीधे संयुक्त-स्तरीय नियंत्रण की अनुमति देता है। एक उठाने वाले उपकरण की आवश्यकता है - रोबोट को अपने वजन का समर्थन नहीं करना चाहिए। देखें सुरक्षा पृष्ठ.

from booster_robotics_sdk import BoosterRobot, RobotMode, ArmCommand
import numpy as np

robot = BoosterRobot(ip="192.168.10.102")
robot.connect()

# Transition: DAMP -> PREP -> CUSTOM
robot.set_mode(RobotMode.DAMP)
robot.set_mode(RobotMode.PREP)
import time; time.sleep(3)  # Wait for PREP stabilization
robot.set_mode(RobotMode.CUSTOM)

# Command right arm to a target configuration (7 DOF)
# Joints: shoulder_pitch, shoulder_roll, shoulder_yaw,
#         elbow_pitch, wrist_pitch, wrist_roll, wrist_yaw
target = [0.0, -0.3, 0.0, 0.8, 0.0, 0.0, 0.0]
cmd = ArmCommand(side="right", joint_positions=target, kp=60, kd=2)
robot.send_arm_command(cmd)

robot.disconnect()

शीर्ष मुद्रा नियंत्रण

from booster_robotics_sdk import BoosterRobot, HeadCommand

robot = BoosterRobot(ip="192.168.10.102")
robot.connect()
robot.set_mode(RobotMode.PREP)

# Head: yaw in [-90, 90] deg, pitch in [-40, 30] deg
cmd = HeadCommand(yaw_deg=15.0, pitch_deg=-10.0)
robot.send_head_command(cmd)

robot.disconnect()
चरण 4 - लोकोमोशन एपीआई

लोकोमोशन एपीआई मूल बातें

K1 का लोकोमोशन नियंत्रक स्वायत्त रूप से संतुलन और चाल का प्रबंधन करता है। आप वेग लक्ष्यों का आदेश देते हैं; ऑनबोर्ड नियंत्रक स्थिरता को संभालता है। हमेशा एक स्पॉटर मौजूद रखें।

मोड संक्रमण क्रम

from booster_robotics_sdk import BoosterRobot, RobotMode, LocomotionCommand
import time

robot = BoosterRobot(ip="192.168.10.102")
robot.connect()

# Step 1: Enter DAMP (zero torque, safe to handle)
robot.set_mode(RobotMode.DAMP)
time.sleep(1)

# Step 2: Enter PREP (stand up to PREP posture)
robot.set_mode(RobotMode.PREP)
time.sleep(5)  # Wait for full PREP stabilization — do not skip

# Step 3: Enter WALK
robot.set_mode(RobotMode.WALK)
time.sleep(2)

कमांड लोकोमोशन (वेग मोड)

# Walk forward at 0.3 m/s
cmd = LocomotionCommand(
    vx=0.3,    # forward/back (m/s), range: [-0.5, 0.5]
    vy=0.0,    # lateral (m/s),      range: [-0.3, 0.3]
    vyaw=0.0   # rotation (rad/s),   range: [-1.0, 1.0]
)
robot.send_locomotion_command(cmd)
time.sleep(2)

# Stop
robot.send_locomotion_command(LocomotionCommand(vx=0, vy=0, vyaw=0))
time.sleep(1)

# Return to PREP then DAMP
robot.set_mode(RobotMode.PREP)
time.sleep(3)
robot.set_mode(RobotMode.DAMP)
robot.disconnect()

सॉफ़्टवेयर में आपातकालीन रोक

# Call from any thread — immediately enters DAMP mode
robot.emergency_stop()

आपात स्थिति के लिए हमेशा हार्डवेयर ई-स्टॉप बटन को प्राथमिकता दें। सॉफ्टवेयर ई-स्टॉप केवल एक बैकअप है।

वैकल्पिक - सिमुलेशन

मुजोको ह्यूमनॉइड सिमुलेशन

K1 URDF मॉडल SDK में शामिल है। हार्डवेयर परिनियोजन से पहले हरकत और हेरफेर नीतियों को विकसित और परीक्षण करने के लिए म्यूजोको का उपयोग करें।

म्यूजोको स्थापित करें

pip install mujoco

K1 जिम वातावरण को क्लोन करें

git clone https://github.com/BoosterRobotics/booster_gym.git
cd booster_gym
pip install -e .

वॉकिंग सिमुलेशन चलाएँ

python examples/walk_sim.py --render

इसहाक सिम (उन्नत)

NVIDIA आइज़ैक सिम बड़े पैमाने पर नीति प्रशिक्षण के लिए GPU-त्वरित समानांतर सिमुलेशन प्रदान करता है। K1 URDF आइज़ैक सिम 4.x में साफ़-साफ़ आयात करता है। एक NVIDIA GPU (16 GB VRAM अनुशंसित) और Isaac सिम लाइसेंस की आवश्यकता है। देखें ह्यूमनॉइड तुलना लेख सिमुलेशन बेंचमार्क के लिए।

सिम-टू-रियल संरेखण - K1 म्यूजोको मॉडल में कैलिब्रेटेड जड़ता पैरामीटर और संयुक्त सीमाएं शामिल हैं जो वास्तविक हार्डवेयर से मेल खाती हैं। सिमुलेशन में प्रशिक्षित नीतियों को न्यूनतम लाभ ट्यूनिंग के साथ तैनात किया जा सकता है।

समस्या निवारण

ह्यूमनॉइड सेटअप के लिए शीर्ष 3 मुद्दे

त्रुटि 1 K1 से कनेक्ट नहीं हो सकता: Connection refused / ping timeout

सबसे आम मुद्दा. होस्ट पीसी पक्ष पर लगभग हमेशा एक नेटवर्क गलत कॉन्फ़िगरेशन होता है।

हल करना:

# 1. Verify your PC's interface is on the correct subnet
ip addr show eth0
# Should show 192.168.10.10/24

# 2. Set it if not configured
sudo ip addr flush dev eth0
sudo ip addr add 192.168.10.10/24 dev eth0
sudo ip link set eth0 up

# 3. Ping the robot
ping -c 4 192.168.10.102

# 4. If ping fails, verify the K1 is fully booted
# The K1 takes ~60 seconds to boot. Look for the LED sequence
# to complete before attempting connection.
त्रुटि 2 PREP से WALK संक्रमण के दौरान रोबोट गिर जाता है

K1 को बैलेंस कंट्रोलर को आरंभ करने के लिए PREP में कम से कम 3 सेकंड की आवश्यकता होती है। पहले सेटअप के दौरान गिरने का सबसे आम कारण बहुत तेजी से बदलाव है।

हल करना:

# Always wait at least 5 seconds in PREP before WALK
robot.set_mode(RobotMode.PREP)
time.sleep(5)  # Do not reduce this

# Verify PREP is fully active before proceeding
state = robot.get_state()
assert state.mode == RobotMode.PREP, "PREP not confirmed"

# Have your spotter positioned with the e-stop
robot.set_mode(RobotMode.WALK)
त्रुटि 3 ROS2 ब्रिज विफल: hardware interface not found

ROS2 ब्रिज K1 का हार्डवेयर इंटरफ़ेस नहीं ढूँढ सकता। आमतौर पर लॉन्च फ़ाइल में गुम पैकेज या गलत रोबोट आईपी के कारण होता है।

हल करना:

# 1. Install missing ros2_control packages
sudo apt install ros-humble-ros2-control \
  ros-humble-ros2-controllers -y

# 2. Rebuild the workspace
cd ~/k1_ws && colcon build --symlink-install

# 3. Source both ROS2 and your workspace
source /opt/ros/humble/setup.bash
source ~/k1_ws/install/setup.bash

# 4. Verify robot_ip matches actual K1 IP
ros2 launch booster_ros2 k1_bringup.launch.py \
  robot_ip:=192.168.10.102

# 5. Check the K1 is connected and responding
ping 192.168.10.102

अभी भी अटके हुए हैं? में पोस्ट करें एसवीआरसी फोरम आपके उबंटू संस्करण, सटीक त्रुटि संदेश और एसडीके संस्करण के साथ (pip show booster_robotics_sdk_python).

सॉफ्टवेयर काम कर रहा है? डेटा एकत्र करना प्रारंभ करें.

एक बार जब K1 चल रहा है, तो अगला कदम पूरे शरीर का टेलीऑपरेशन और प्रदर्शन रिकॉर्डिंग है।