ソフトウェアのセットアップ

SDK のインストール、ROS2 全身制御インターフェイス、関節状態の読み取りとコマンド、移動 API の基本、MuJoCo ヒューマノイド シミュレーション、および上位 3 つのトラブルシューティングの問題。

セクションにジャンプします:

ステップ 1 — SDK のインストール

ブースターSDKのインストール

Booster SDK は次のように配布されます。 booster_robotics_sdk_python PyPIについて。 K1 のネットワーク制御インターフェイスに Python バインディングを提供します。

仮想環境を作成する (推奨)

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

SDKをインストールする

pip install booster_robotics_sdk_python

インストールを確認する

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

ネットワーク構成

K1 は有線イーサネット経由で通信します。 接続する前に、ホスト PC のネットワーク インターフェイスを設定します。

# 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 — 共同国家 API

共同国家を読み、指揮する

Python SDK は、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()

コマンドアーム関節位置(CUSTOMモード)

CUSTOM モードでは、アームを関節レベルで直接制御できます。 吊り上げ治具が必要です。ロボットは自重を支えてはいけません。 を参照してください。 安全ページ.

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 — ロコモーション API

ロコモーション API の基本

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()

緊急時には常にハードウェアの非常停止ボタンを優先します。 ソフトウェア非常停止はバックアップのみです。

オプション - シミュレーション

MuJoCo ヒューマノイド シミュレーション

K1 URDF モデルは SDK に含まれています。 MuJoCo を使用して、ハードウェアの導入前に移動と操作のポリシーを開発およびテストします。

MuJoCo をインストールする

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 Isaac Sim は、大規模なポリシー トレーニング向けに GPU 高速化された並列シミュレーションを提供します。 K1 URDF は Isaac Sim 4.x にきれいにインポートされます。 NVIDIA GPU (16 GB VRAM を推奨) と Isaac Sim ライセンスが必要です。 を参照してください。 人型比較記事 シミュレーションのベンチマーク用。

Sim と Real の調整 — K1 MuJoCo モデルには、実際のハードウェアに一致する、校正された慣性パラメーターとジョイント制限が含まれています。 シミュレーションでトレーニングされたポリシーは、最小限のゲイン調整で導入できます。

トラブルシューティング

ヒューマノイドのセットアップに関するトップ 3 の問題

エラー1 K1 に接続できません: Connection refused / ping timeout

最も一般的な問題。 ほとんどの場合、ホスト PC 側のネットワーク設定ミスが原因です。

修理:

# 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 のハードウェア インターフェイスを見つけることができません。 通常は、パッケージが欠落しているか、起動ファイル内のロボット IP が正しくないことが原因で発生します。

修理:

# 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

まだ行き詰まっていますか? に投稿してください SVRCフォーラム Ubuntu のバージョン、正確なエラー メッセージ、SDK バージョン (pip show booster_robotics_sdk_python).

ソフトウェアは動作していますか? データの収集を開始します。

K1が移動したら、次のステップは全身遠隔操作とデモンストレーション録画です。