Reachy Mini シミュレーション - セットアップガイド
物理ロボットがなくても開発を始められます!Reachy Mini シミュレーションは MuJoCo 上で動作し、アプリケーションのプロトタイピング、テスト、デバッグのためのリアルな物理環境を提供します。
1. インストール
📋 前提条件: シミュレーションをセットアップする前に、まず インストールガイド に従って、基本的なインストールと仮想環境のセットアップを完了しておく必要があります。本ガイドでは、すでに Reachy Mini SDK がインストールされ、仮想環境が有効化されていることを前提とします。
シミュレーションには mujoco Python バインディングが必要です。Reachy Mini ソフトウェアと一緒に、追加タグ [mujoco] を付けてインストールできます。
pip を使う場合は、次を実行します:
pip install "reachy-mini[mujoco]"
uv を使う場合は、次を実行します:
uv pip install "reachy-mini[mujoco]"
2. シミュレーションの起動
シミュレートされたロボットを起動するには、--sim フラグ付きでデーモンコマンドを実行するだけです:
reachy-mini-daemon --sim
ロボットの 3D ビューを表示するウィンドウが開きます。マウスを使ってビューを操作できます(ドラッグで回転、右クリックでパン、スクロールでズーム)。
🍎 Mac ユーザー(Apple Silicon / Intel)
macOS では、MuJoCo を GUI と正しく動作させるために特定のランチャーが必要です。上記のコマンドの代わりに、mjpython を使用してください:
mjpython -m reachy_mini.daemon.app.main --sim
⚠️ macOS ユーザー:
uvは macOS 上の MuJoCo と互換性の問題を抱えている可能性があります。インストールや実行時に問題が発生した場合は、MuJoCo 関連パッケージについてはuvではなくpipを直接使用することを推奨します。
3. Reachy Mini Control とアプリ
Reachy Mini Control を使って、シミュレートされたロボットと対話できます。アプリを開き、ローカルシミュレーションに接続するだけです。

- アプリ: アプリをインストールして実行できます!アプリはシミュレーション内で実行されます(例:ロボットが 3D ビューア内で動きます)。
4. シーンとオプション
--scene 引数を使って、シミュレーション環境をカスタマイズできます。
empty(デフォルト):何もない空間にロボットだけが存在します。minimal:テーブルと、遊ぶためのいくつかのオブジェクト(リンゴ、クロワッサン、アヒル)を追加します。
例:
reachy-mini-daemon --sim --scene minimal
5. 自分のコードを接続する
シミュレーションが動作してしまえば、USB 接続された実機の Reachy Mini Lite とまったく同じように振る舞います。デーモンは localhost で待ち受けており、任意の Python SDK スクリプトを変更なしで実行できます:
from reachy_mini import ReachyMini
from reachy_mini.utils import create_head_pose
# Connects to the simulation running on localhost
with ReachyMini() as mini:
print("Connected to simulation!")
# Look up and tilt head
print("Moving head...")
mini.goto_target(
head=create_head_pose(z=20, roll=10, mm=True, degrees=True),
duration=1.0
)
# Wiggle antennas
print("Wiggling antennas...")
mini.goto_target(antennas=[0.6, -0.6], duration=0.3)
mini.goto_target(antennas=[-0.6, 0.6], duration=0.3)
# Reset to rest position
mini.goto_target(
head=create_head_pose(),
antennas=[0, 0],
duration=1.0
)
次のステップ
- Python SDK: 動かす・見る・話す・聞くことを学びます。
- AI 連携: LLM を接続し、アプリを構築して Hugging Face に公開します。
- コアコンセプト: アーキテクチャ、座標系、安全制限について説明します。
❓ トラブルシューティング
macOS で mjpython を使用した際に libgstpython.dylib からセグメンテーションフォルトが発生する
次のようなエラーが表示される場合があります:
ERROR: Caught a segmentation fault while loading plugin file:
.../gstreamer_python/lib/gstreamer-1.0/libgstpython.dylib
この GStreamer プラグインのセグフォは既知の問題で、実機ロボットでも発生しますが、その場合は並列プロセス内で起こるため、目に見える問題は発生しません。しかし mjpython ではメインプロセスがクラッシュしてしまいます。対処法は、GStreamer がこのプラグインを読み込まないように、プラグインの名前を変更することです:
# Find the file inside your environment (adjust the path to match yours)
mv $(python -c "import gstreamer_python, pathlib; print(pathlib.Path(gstreamer_python.__file__).parent / 'lib/gstreamer-1.0/libgstpython.dylib')") \
$(python -c "import gstreamer_python, pathlib; print(pathlib.Path(gstreamer_python.__file__).parent / 'lib/gstreamer-1.0/libgstpython_.dylib')")
これは単に GStreamer がプラグインを自動ロードしないようにするだけで、通常のオーディオ/ビデオ機能には影響しません。
他の問題が発生していますか? 👉 トラブルシューティング & FAQ ガイドを確認