メインコンテンツまでスキップ

トラブルシューティング & FAQ

Reachy Mini サポートページへようこそ。以下の質問をクリックすると、回答が表示されます。

🛠️ トラブルシューティング - よくある問題​

重要なトラブルシューティング - まず最初にお読みください。既知の問題はすべてこれで解決します!

他のどの対処よりも前に、すべての問題でまずは:アップデート & 再起動

最新のソフトウェアを使用していること、そしてロボットとコンピュータの両方を再起動したことを確認してください。 ロボットを再起動するには、OFF を押し、5 秒待ってから ON を押します。この簡単な手順で、よくある既知の問題の多くが解決します。

ソフトウェアをアップデートする方法:

  • Reachy Mini Control を使用している場合 「⚙️」設定タブから「Check for updates」を選択します。アップデートが利用可能な場合は「Update now」をクリックします。
  • クローンしたリポジトリを使用している場合 次のいずれかを確認してください:
    • 最新のタグ付きリリースを使用している
    • main ブランチが最新である(git pull)。

Wireless Reachy Mini の場合:reachyminios_check を実行して、すべてが正常であることを確認してください(Get Started を参照)。

ブートストラップやアップデートが失敗する / Python 環境の問題(Lite & Simulation)

Reachy Mini Control が初回ブートストラップ中に失敗したり、仮想環境の作成中に止まってしまう場合、またはアップデート後に Python 環境が壊れた状態になってしまった場合は、デスクトップアプリから仮想環境をリセットできます。

リセットオプションは 2 種類あります:

  • Reset apps environment — apps_venv(インストール済みアプリが使用する環境)のみを再作成します。インストール済みアプリは再インストールが必要になります。アプリだけが起動しない、またはインストールできない場合は、まずこれを使用してください。
  • Full Environment Reset — すべての Python ファイルを削除し、すべてを再ダウンロードします(インタプリタ + 2 つの venv)。ブートストラップ自体が失敗する場合、または「Reset apps environment」で解決しなかった場合に使用してください。数分かかることがあります。

これらのボタンの場所:

  • 接続前(Finding Robot 画面):右上の ⚙️ アイコンをクリックします。「Local environment (USB & Sim)」の下に「Reset apps environment」とフルリセットオプションのメニューが表示されます。
  • 接続後(USB / Simulation モード):Settings オーバーレイを開き、「Environment」セクションに移動します。ここに「Reset Apps Environment」と「Full Environment Reset」ボタンがあります。

フルリセット後、次回起動時にデスクトップアプリが再度ブートストラップを実行します。

モーター関連の問題

これは次のような問題に関するものです:

  • モーターが赤く点滅する、または反応しない / 動かない。
  • モーターに「Overload Error」などのエラーが表示される。
  • モーターが見つからない:「No motor found on port」「Missing motor」など。

上記のいずれかの症状がある場合は、モーター関連の問題を診断・解決するための詳細な手順について、モーター診断とトラブルシューティングガイド を参照してください。

Reachy Mini Testbench アプリを使用すると、これらの問題を効果的に特定して解決するのに役立ちます。

Electrical Shock Error

Dynamixel モーターで Electrical shock error が発生する場合、電源に問題があるか、どこかで短絡が起きていることを意味します。 フット PCB からヘッドまでのケーブルに損傷がないか確認してください。特に次のケーブルを確認してください:

  • 電源ケーブル(黒 & 赤)
  • モーター用 3 芯ケーブル(300mm、200mm、100mm、40mm)

これは、上で説明した「モーターが赤く点滅する、または Overload Error」と同じ原因である場合もあります。

マイクが動作しない

次のような症状がある場合:

  • 音声録音が動作しない / 無音になる
  • 音声録音の結果がすべてゼロになる

マイクケーブルが上下逆に接続されている可能性があります。

  • ケーブルが白と青の場合は、青い側が上になっているかどうか、組み立て手順をもう一度確認してください。
  • ケーブルが黒の場合は、「Main Board」と書かれている側が上になっていることを確認してください(下の写真を参照)。 mic_cable

ケーブルが正しく接続されているにもかかわらず問題が続く場合、マイクの FPC ケーブルが損傷している可能性が高いです。この問題を解決するには、チュートリアル Reachy Mini のマイクの FPC ケーブルを交換する方法 を参照してください。

音量が小さい
  • ロボットをバージョン 1.2.3 以降にアップデートしてください

詳細については、ドキュメントを参照してください: Getting Started

Permission エラー
  • ロボットをバージョン 1.2.3 以降にアップデートしてください
  • ロボットを再起動してください
アンテナが 90° または 180° 回転しているように見える

これは製造上の問題です。

次のガイドに従えば、簡単に修正できます: アンテナ再配置ガイド

モーターが震える

アンテナが震える場合

最も一般的なケースです。アンテナ(モーター 17 と 18)は、垂直位置(0°)に設定すると震えやすくなります。この角度では、ギアボックスのバックラッシュにより、モーターは倒立振り子のような不安定な平衡状態になります。摩擦が非常に小さい位置の周りで姿勢を補正し続けるため、振動が発生します。

最も簡単な対処法は、アンテナを数度(通常は 10° 程度で十分)ずらすことです。これにより、重力がわずかなバイアスとして働き、機械的な遊びを一方向に取り切ることで、震えが解消されます。

これは現在 Reachy Mini のデフォルト動作になっています。詳細は PR #952 を参照してください。

PID 値の調整

別の方法として、PID 制御値を調整することもできます。最適な値はロボット個体ごとに異なる場合があります。製造上のごくわずかな摩擦の違いでも挙動が変わるためです。

まずは、モーター 10(足)、17 および 18(アンテナ)の P を 180 に下げてみてください。 効果がない場合は、同じモーターの D を 10 に上げてみることもできます。

ヘッドが動くときにきしみ音や摩擦音がする

ロボットのヘッドが動くときに高音のきしみ音や摩擦音が聞こえる場合、Stewart プラットフォームのロッドにある球面ジョイント(ボールジョイント)のメンテナンスが必要になっている可能性があります。連結ロッドの周囲に黒い粉や残留物が見られることもあります。

これは時間の経過に伴う通常の摩耗です。球面ジョイントメンテナンスガイド に従って、ジョイントを清掃し、再度グリスアップしてください。

Lite バージョンで画像が暗い

➡️ クイック対処:カメラ設定で露光時間を調整する

暗い画像を改善するには、オート露光を有効にするか、カメラ制御アプリケーションを使って露光時間を手動で延長してください。これらのアプリケーションは、露光やその他のカメラパラメータを調整するための直感的なインターフェースを提供します。

推奨アプリケーション:

  • macOS: CameraController - USB カメラ制御用のオープンソース GUI アプリケーション
  • Linux: qv4l2 - V4L2 カメラ制御用の Qt ベース GUI アプリケーション
    • インストール:sudo apt install qv4l2
  • Windows: 高度なカメラ制御用に Webcam Settings または ManyCam を使用

これらのアプリケーションを使用すると、直感的なグラフィカルインターフェースを通じて、露光時間、明るさ、その他のカメラパラメータを調整できます。


➡️ 上級者向け:libuvc を使用した詳細なカメラ制御

カメラパラメータを厳密に制御したい上級ユーザーは、libuvc ベースのコマンドラインユーティリティを使用できます。これらのツールは、すべての UVC カメラ制御に対する低レベルアクセスを提供します。

暗さの問題を特に解決するには、これらのコマンドラインツールを使用して auto-exposure-priority=1 を設定してください。

プラットフォーム別コマンドラインツール:

  • macOS: uvc-util

  • Linux: v4l2-ctl

    • インストール:sudo apt install v4l-utils
  • Windows: Windows には直接相当するツールはありません。

注意: これらのコマンドラインツールには技術的な知識が必要であり、利用可能なカメラパラメータは選択したツールによって異なる場合があります。変更を行う前に、--help を使用し、利用可能なコントロールを一覧表示してください。

パッケージの中に部品が足りない

まずはすべてを開封したことを確認してください。一部の部品はあらかじめ組み立てられています(例:ヘッド下部のパーツはすでにヘッド後部パーツに取り付けられています)。

head_parts

次に、組み立てガイドの部品リストを確認し、本当に部品が不足しているかどうかを確認してください。 100% 間違いなく部品が不足している場合は、手元にあるすべての部品の写真と注文番号または請求書番号を添えて、sales@pollen-robotics.com までご連絡ください。 その間、自分で 3D プリントできるように、stl ファイル も用意されています。

USB-C ケーブルで Wireless Reachy Mini に接続できない

Wireless ユニットは、Lite バージョンのように USB 経由でロボットを公開しないため、USB-C ケーブルをノート PC に接続しても有効な接続にはなりません。 代わりに、次のようにしてください:

  • ロボットを Wi-Fi ネットワークに参加させ、ノート PC 上の SDK クライアントを使用してリモートで制御します。
  • 組み込み Raspberry Pi 上で直接コードを実行したい場合は、SSH で接続し、そこでスクリプトを実行してください(これは、アプリを公開 / インストールした後に Reachy Mini Control が行っていることと同じです)。
  • テザリング接続の場合は、USB-C-イーサネットアダプタとイーサネットケーブルを使用します。これにより、Wi‑Fi を有線イーサネットに置き換えるだけで済みます。
Details

ワイヤレスアクセスポイントが表示されない - RPI が起動しない ヘッド内のボードには、特定の位置にしておく必要があるスイッチがあります。そうなっていない場合、AP は表示されません。組み立て中、あるいは工場でのミスにより、このスイッチが動かされている可能性があります。 スイッチが「download」ではなく「debug」の位置になっていることを確認してください。以下の写真を参照してください:

switch_position

このスイッチが正しい位置にあるにもかかわらず AP がまだ見えない場合は、reflash the RPI Iso tutorial に従って Raspberry Pi の iso を再フラッシュする必要があるかもしれません。

🚀 はじめに & 組み立て​

組み立てには通常どのくらい時間がかかりますか?

ほとんどのテスターは、1.5〜2時間と報告しています。経験レベルによっては最大 4 時間かかることもあります。

組み立て中に難しい工程はありますか?

特にありません。テスターは、楽しく、簡単で、満足感があると表現しています。基本的な工具と根気があれば十分です。最も難しいのは、ケーブル配線と部品を正しいトルクで締めることです。Reachy Mini Lite または Wireless を購入すると、印刷されたユーザーガイドが同梱されており、ビデオとデジタルガイドにもアクセスできます。 Reachy Mini 用ビデオ BETA、LITE、WIRELESS

Reachy Mini 用デジタル組み立てガイド BETA、LITE、WIRELESS

組み立てを終えたあとにケーブルが 2 本とネジが数本余りました。これは普通ですか?

はい、まったく問題ありません。 組み立て中に部品が破損したり紛失したりした場合に備えて、予備のケーブルとネジを意図的にキットに含めています。

それらを取り付ける必要はありません。

初回起動時に Reachy Mini が動きません。何を確認すればよいですか?
  • 電源: 7V-5A の電源が接続されていることを確認してください。USB 接続だけではモーターを駆動するには不十分です。
  • ケーブル: すべてのケーブルが奥までしっかり挿し込まれているか確認してください。電源ケーブルの緩みは「モーターが応答しない」エラーの一般的な原因です。
  • トラブルシューティングセクション: このページ上部の「Essential Troubleshooting」セクションを参照してください。
デーモンを手動で起動する必要がありますか?

いいえ

  • Reachy Mini (Wireless) では、デーモンは組み込みの Raspberry Pi 上ですでに動作しています。
  • Reachy Mini Lite では、デスクトップアプリを使用できます。
  • デスクトップアプリがあなたのシステム(例:ARM64、特殊なディストリビューション)で動作しない場合は、Python SDK をインストールして使用することができます。これは完全にサポートされた代替手段です!

🔌 接続 & Reachy Mini の制御​

ロボットを Wi‑Fi に接続するにはどうすればよいですか?

Wi‑Fi への接続に関する詳細な手順については、Reachy Mini Wireless ガイドを参照してください。

Wi‑Fi ホットスポットをリセットするにはどうすればよいですか?

ロボットの Wi‑Fi ホットスポットをリセットする必要がある場合(たとえば接続できない、ネットワークを変更したいなど)、Wi‑Fi リセットガイドの手順に従ってください。

ロボットには Web API はありますか?

はい。デーモンは REST API(FastAPI)と WebSocket を提供します。

  • ドキュメント: http://localhost:8000/docs(デーモンが動作しているときに利用可能)。
  • 機能: 状態取得、関節の移動、デーモンの制御。

API を使用してロボットを制御したり、その状態を取得したり、さらにはデーモン自体を制御することもできます。API は FastAPI と pydantic モデルを使って実装されています。

ロボットと対話するために必要なエンドポイントはすべて提供されており、次のようなことが可能です:

  • ロボットの状態(関節位置、モーターの状態など)の取得
  • ロボットの関節を動かす、または特定のポーズを設定する

API は OpenAPI を使ってドキュメント化されており、デーモンが動作しているときは http://localhost:8000/docs で利用可能なすべてのルートにアクセスしてテストできます。また、http://localhost:8000/openapi.json で生の OpenAPI スキーマにアクセスすることもできます。

これは、お好みのプログラミング言語やフレームワーク向けのクライアントコードを生成したり、AI アプリケーションに接続したり、さらには MCP サーバーを作成したりしたい場合に役立ちます。

WebSocket サポート

API はリアルタイム更新のための WebSocket 接続もサポートしています。たとえば、関節状態の更新を購読できます:

let ws = new WebSocket(`ws://127.0.0.1:8000/api/state/ws/full`);

ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log(data);
};
なぜ仮想環境 (.venv) が必要なのですか?

SDK のインストール時にパッケージの競合を防ぐのに役立ちます。

reachy-mini.local が解決できません

ワイヤレスユニットは mDNS を通じて reachy-mini.local として自らをアドバタイズします。これはほとんどの家庭用およびオフィスネットワークで動作しますが、一部の企業ネットワーク、カンファレンス会場、ホテルのネットワークでは失敗することがあります。

reachy-mini.local が解決できない場合:

  • ルーターの DHCP クライアント一覧でロボットの IP アドレスを確認します。
  • Reachy Mini Control アプリを使用します — ローカルネットワーク上でロボットを検出できます。
  • 最後の手段として、サブネットをスキャンします:
for i in $(seq 1 254); do
curl -sf --connect-timeout 0.3 "http://192.168.1.${i}:8000/api/daemon/status" > /dev/null 2>&1 && echo "Found: 192.168.1.${i}"
done

ネットワークに合わせて 192.168.1. プレフィックスを調整してください。

カンファレンス/ホテルの WiFi でロボットとコンピュータが通信できません

多くのカンファレンスやホテルの WiFi ネットワークでは、クライアント分離が有効になっており、同じネットワーク上のデバイス同士が通信できないようになっています。症状としては、両方のデバイスが WiFi に接続され、同じサブネット上の IP アドレスを持っているにもかかわらず、互いの HTTP エンドポイントに到達できない、というものです。

回避策: モバイルフォンのホットスポットを使用します。ロボットとコンピュータの両方をそのホットスポットに接続します。これにより、デバイス同士が互いを認識できるシンプルなネットワークが提供されます。

別の方法として、USB-C-イーサネットアダプタとイーサネットケーブルを使用して、ロボット(Wireless バージョン)に直接接続します。

中国から HuggingFace のサービスにアクセスするには?

このミラーを使用できます:https://hf-mirror.com/

次の環境変数を設定する必要があります:

export HF_ENDPOINT=https://hf-mirror.com/

PyPI や GitHub などのサービスにアクセスするためにも、ミラーを使用する必要がある場合があることに注意してください。

中国で会話アプリを動作させるには?

Reachy Mini の会話アプリは OpenAI gpt-realtime API に依存しており、中国からはアクセスできない可能性があります。

現時点での最良の回避策は、マシン(Lite バージョン)、ロボット(Wireless バージョン)、またはルーター自体に VPN を設定することです。

VPN のルーティングルールを設定する際は:

  1. ローカルネットワークトラフィックを除くトラフィックを VPN 経由にルーティングし、デバイスがローカルネットワークから引き続きアクセス可能な状態を保ちます。

次のものをホワイトリストに登録する必要があります:

  • ローカル LAN の IP レンジ(ネットワーク構成に応じて、192.168.0.0/16、192.168.1.0/24 など)。
  • 次のポート:
    • 22 (SSH)
    • 8000 (Reachy Mini デーモン)
    • 5353 TCP/UDP (mDNS / ローカル検出)

これにより、ロボットはローカルで到達可能かつ検出可能な状態が維持され、mDNS(reachy-mini.local)もネットワーク上で引き続き機能するはずです。

  1. VPN が選択的ルーティングをサポートしている場合は、すべての HTTPS トラフィックをトンネリングするのではなく、必要な外部サービスのみを VPN 経由にルーティングする方が望ましいアプローチです。

可能であれば、huggingface.co と api.openai.com に対してのみ VPN を使用するように設定してください。

これによりネットワークへの副作用を最小限に抑えつつ、ローカルサービスを通常どおり動作させることができます。

Wireless バージョンでは、ロボット上で VPN を設定したあと、変更を反映させるためにデーモンを再起動します:

sudo systemctl restart reachy-mini-daemon

同じネットワーク上のデバイスからロボットに到達できることを確認するには、次を実行できます:

ping reachy-mini.local

オープンウェイトモデルに基づくアプローチも開発中です。続報をお待ちください!

🤖 ハードウェア、モーター & 制限​

ハードウェアについての詳しい情報はどこで確認できますか?

ロボットのハードウェアコンポーネントに関する詳細情報については、Reachy Mini ハードウェアページを参照してください。

安全限界(ヘッド & ボディ)はどのようになっていますか?

これらの限界を超えるポーズを指示した場合、ロボットは自動的に最も近い安全なポーズにクランプされます。

  • ボディヨー: [-180°, 180°]。
  • ヘッドピッチ/ロール: [-40°, 40°]。
  • ヘッドヨー: [-180°, 180°]。
  • 複合制限: body_yaw と head_yaw の差は [-65°, 65°] の範囲内でなければなりません。
なぜモーターが「ぐにゃぐにゃ」または「固い」のですか?(コンプライアンス)
  • enable_motors(): モーター ON(固い)。ロボットは姿勢を保持します。
  • disable_motors(): モーター OFF(ぐにゃぐにゃ)。手で動かすことができます。
  • make_motors_compliant(): モーターは ON だがソフト。デモンストレーションによる教示に便利です。
モーターのパラメータにアクセスするには?
  1. scan_motors.py スクリプトを使ってモーターをスキャンする方法を参照できます。
  • ロボットが Lite の場合、スクリプトをそのままお使いのコンピュータ上で実行できます:
python -m reachy_mini.tools.scan_motors
  • ロボットが Wireless の場合、ssh でロボットに接続します:
ssh pollen@reachy-mini.local
  • venv を有効化します:
source /venvs/mini_daemon/bin/activate
  • そしてスクリプトを実行します(そのためにはモーターの電源が入っている必要があります!):
python -m reachy_mini.tools.scan_motors --wireless
  • 検出されたモーターの一覧が表示されるはずです。すべてのモーターがボーレート 1000000 で、ID が 10,11, 12, 13, 14, 15,17, 18 になっている必要があります。いくつか欠けている場合は、ケーブルをもう一度確認してください。異なる ID やボーレートのモーターがある場合は、サポートにお問い合わせください。

正しい出力の例:

Trying baudrate: 9600
No motors found at baudrate 9600
Trying baudrate: 57600
No motors found at baudrate 57600
Trying baudrate: 115200
No motors found at baudrate 115200
Trying baudrate: 1000000
Found motors at baudrate 1000000: [10, 11,12,13, 14, 15, 16, 17, 18]
  1. Lite:Dynamixel Wizard を使ってモーターのパラメータを読み取ることもできます。ガイドはこちらを参照してください。
モーターがしばらくすると反応しなくなります。
  • 電源供給の接続を確認してください。
  • モーターがサーマルプロテクションモード(過熱)に入った可能性があります。電源を一度切ってから再度入れてください。
  • SDK を更新すること(pip install -U reachy-mini)で解決したユーザーもいます。
  • モーターの LED が赤く点滅している場合は、上記の「Motor blinking red or Overload Error」セクションを参照してください。
バッテリーには安全機能がありますか?

Wireless には適切なバッテリー充電器が含まれています。 バッテリーには温度センサー付きの BMS も内蔵されています。

残りのバッテリー残量はどうやって確認しますか?

設計上の既知の制限により、バッテリーの状態を確認する手段はありません。

充電が必要なときに「バッテリー残量低下」を示す LED 表示のみがあります。(緑 -> オレンジ -> 赤)

バッテリーの取り外し方
  • まず緑色の LED が点灯していないことを確認します。
  • 底面のネジ 3 本を外し、足部を少し引き出します。 remove_foot
  • 指示されたコネクタ(赤い矢印)を抜いて、バッテリーを取り外せるようにします。バッテリーを固定するための両面テープが付いているはずなので、取り外しに少し力が必要な場合があります。 battery_location
  • 再組み立ての際は、これらの手順を逆の順番で行ってください。ケーブルを挟み込まないように注意してください。
公式モーションの一部で頭が胴体に触れることがあります

この挙動は想定されたものであり、ハードウェアやソフトウェアのバグではありません。 ただし紛らわしい場合があるため、この接触を避けるようにモーションを更新する予定です。

外観(スキン/CAD)を変更できますか?
  • CAD: 完全な STEP ファイルはまだ公開されていませんが、今後公開する予定です。それまでの間は、リポジトリの assets フォルダにいくつかの STL ファイルがあります。
  • スキン: はい、コミュニティによってカスタムビルドが作成されています。いくつかの「スキン」STEP ファイルは Discord の "Pimp my Reachy Mini" チャンネルで共有されています。
マイクのフラットケーブルが壊れてしまいました

マイクケーブルの仕様は次のとおりです:

  • FFC/FPC フラットフレキシブルケーブル
  • 12 ピン
  • 0.5mm ピッチ
  • タイプ A(コネクタが同じ側)
  • 長さ 15mm

マイクケーブルの交換品を探している場合の参考例をいくつか挙げます:

🐍 SDK、アプリ & プログラミング​

Python からはどうやって接続しますか?

ReachyMini クラスを使用します。

from reachy_mini import ReachyMini

with ReachyMini() as mini:
# Your code here
print(mini.state)
新しいアプリはどうやって作成しますか?

app assistant CLI を使用します:

reachy-mini-app-assistant create my_app_name /path/to/destination --publish

完全なガイドはこちらを参照してください:Building & Publishing Apps — アプリの構成、テスト、公開、デバッグ、デプロイについて説明しています。

アプリが黙ってクラッシュする、または起動しません

アプリが環境にインストールされていないパッケージに依存している場合、インポート時にエラーが表示されずにクラッシュします。手動でインポートをテストしてください:

# On Wireless
ssh pollen@reachy-mini.local "/venvs/apps_venv/bin/python3 -c 'from my_app.main import MyApp'"

# On Lite / local
python -c "from my_app.main import MyApp"

さらなるデバッグのヒント(ログの確認、よくある落とし穴)については、Debugging Apps を参照してください。

Reachy Mini Control から直接アプリをインストールできますか?

はい。ネイティブアプリであれば Reachy Mini Control から直接インストールでき、Web ベースのアプリであればお気に入りに追加できます。

Windows でアプリのインストールがすべて失敗します!

Windows でシンボリックリンクを作成する権限が不十分であることが原因の可能性があります。環境変数 HF_HUB_DISABLE_SYMLINKS_WARNING を 1 に設定すると、失敗の原因となっている警告を無効にできます。

ターミナルで次を実行します:

set HF_HUB_DISABLE_SYMLINKS_WARNING=1
Hugging Face からのアプリインストールに失敗します。

SDK を更新してください。初期バージョンには Space のインストールに関するバグがありました。

pip install -U reachy-mini
シミュレーションモードはありますか?

はい、MuJoCo 経由で利用できます。まだ開発中ですが、--sim フラグを付けてコードを実行するか、物理演算なしでロジックだけをテストする場合は ReachyMini(media_backend="no_media") を使用できます。

Wireless 上でアプリをどうやってデバッグしますか?

組み込みコンピュータに SSH 接続し、アプリをクローン(またはコピー)して手動で実行します。これは Reachy Mini Control がアプリを起動するときの動作を再現します。

ssh pollen@reachy-mini.local
# password: root
cd your_app_name
python your_app_name/main.py

GUI は通常のアドレス(例:http://reachy-mini.local:8042)で開きます。

🕹️ ロボットを動かす​

頭部はどうやって動かしますか?

create_head_pose と一緒に goto_target を使用します:

from reachy_mini.utils import create_head_pose

# ... inside with ReachyMini() as mini:
mini.goto_target(head=create_head_pose(yaw=-10, pitch=20))
goto_target と set_target の違いは何ですか?
  • goto_target:スムーズ。時間をかけてモーションを補間します(デフォルト 0.5 秒)。ジェスチャーに最適です。
  • set_target:即時。ターゲットを即座に設定します。高頻度制御(テレオペレーション、数式で定義された軌道)に最適です。
動きを記録して再生するにはどうすればよいですか?

記録: 制御ループの前後を start_recording() と stop_recording() で囲みます。

mini.start_recording()
# ... move robot ...
move = mini.stop_recording()

再生: Hugging Face ライブラリから動きを読み込むには RecordedMoves クラスを使用します。

mini.play_move(recorded_moves.get("dance_1"))
ロボットの動きがぎこちなく見えます。制御ループは正しく動作していますか?

デーモンのステータスを確認することで、モーター制御ループが正しく動作しているか確認できます:

  • SDK 経由
mini = ReachyMini()
print(mini.client.get_status())
  • Lite では http://localhost:8000/docs、Wireless では http://reachy-mini.local:8000/docs の REST API 経由(/api/daemon/status エンドポイントを探してください)

およそ 50Hz(約 20ms 周期)の値が表示されるはずです:

{
...
"motor_controller": "ControlLoopStats(period=~19.99ms, read_dt=~1.94 ms, write_dt=~0.19 ms)"
...
}

周期が 20ms を大きく上回る場合、制御ループが十分な速度で動作していないことを意味します。これは次のような原因が考えられます:

  • コンピュータの CPU 負荷が高い(例:他のアプリが CPU を使いすぎている)。
  • (Lite のみ)USB レイテンシが高い(シリアルポートの設定を試してください)。

👁️ ビジョン & オーディオ​

音量が小さすぎます(Linux)
  1. alsamixer を実行します。
  2. PCM1 を 100% に設定します。
  3. PCM,0 を使って全体の音量を調整します。

設定を永続化するには:

CARD=$(aplay -l | grep -i "reSpeaker" | head -n1 | sed -n 's/^card \([0-9]*\):.*/\1/p')
amixer -c "$CARD" set PCM,1 100%
sudo alsactl store "$CARD"

これは XVF3800 ベースのサウンドカードに関する既知の問題です。

カメラフレームはどうやって取得しますか?

media オブジェクトを使用します。

with ReachyMini() as mini:
frame = mini.media.get_frame()
# Returns a numpy array (BGR format, compatible with OpenCV)
マイク / スピーカーはどう使えばよいですか?
# Get audio
sample = mini.media.get_audio_sample()

# Play audio
mini.media.push_audio_sample(numpy_chunk)
Reachy に何かを見させるにはどうすればよいですか?
  • 2D(画像): mini.look_at_image(x, y) - (0,0 は左上)。
  • 3D(ワールド): mini.look_at_world(x, y, z) - ロボット座標系での座標。
顔追跡が遅く感じられます。

性能は照明条件に大きく依存します。顔が十分に明るく照らされていることを確認してください。ローカルバックエンド(GStreamer IPC)は、オンデバイスアプリケーションに対して最も低いレイテンシを提供します。

サウンドシステムが動作しているかどうかを確認するには?

Reachy Mini Lite バージョン​

Lite バージョンをテストする最も簡単な方法は、コンピュータから Pollen Robotics Reachy Mini Audio デバイスを直接使用して、正しく動作しているか確認することです。

Reachy Mini Wireless バージョン​

Wireless バージョンでは、次の GStreamer コマンドを使用して音声の録音と再生をテストできます:

Wireless バージョンの場合、次のコマンドを使用できます:

# record a sound
gst-launch-1.0 -e alsasrc device="reachymini_audio_src" ! audioconvert ! audioresample ! wavenc ! filesink location="test.wav"
# playback the recording
gst-launch-1.0 filesrc location=test.wav ! wavparse ! audioconvert ! alsasink device=reachymini_audio_sink
#playback a test sound (pink noise)
gst-launch-1.0 audiotestsrc wave="pink-noise" ! audioconvert ! audioresample ! alsasink device="reachymini_audio_sink"

高度なテスト: 録音しながら同時にサウンドを再生して、エコーキャンセル性能をテストできます。これにより、マイクアレイがスピーカーからのエコーを適切に処理・除去しているか確認できます。

トラブルシューティングのヒント:

  • ホームディレクトリに .asoundrc ファイルが存在することを確認する
  • マイクが認識されているか確認: arecord -l
  • スピーカーが認識されているか確認: aplay -l
  • No Reachy Mini Audio USB device found! というエラーで audio-board の設定に失敗する場合は、 ReSpeaker オーディオボードが接続されているマシン上で SDK コードを実行してください。 Lite の場合はあなたのコンピュータ、Wireless の場合はロボット本体です。

🔧 特定のエラーメッセージと対処方法​

モーター '<name>' のハードウェアエラー: ['Input Voltage Error']

Reachy Mini ではより高い電圧を使用していますが、これは意図的なものです :)

エラー: "OSError: PortAudio library not found"

このエラーは sounddevice を直接使用したとき(例:release_media() を呼び出した後)に発生します。次のシステム依存パッケージをインストールしてください:

sudo apt-get install libportaudio2
警告: "Circular buffer overrun"(シミュレーション / Mujoco)

ロボットに接続しているにもかかわらずビデオフレームを消費しない場合、バッファが一杯になり、このメッセージが表示されます。

  • 対処: ビデオが不要な場合は、ReachyMini(media_backend="no_media") で初期化してください。
アップデート後に Conversation アプリが起動時にクラッシュする(カスタムプロファイル)

古いバージョンで Conversation アプリ用のカスタムプロファイルを作成しており、アップデート後にアプリがすぐ終了してしまう場合、アプリは既に存在しないパス上のプロファイルを探しています — 最近のリリースでデフォルトのプロファイル位置が変更されました。

症状 — ログの末尾が prompts.py から送出された SystemExit: 1 で終わります。例:

File ".../reachy_mini_conversation_app/prompts.py", line 88, in get_session_instructions
sys.exit(1)
SystemExit: 1

推奨される対処: Reachy Mini Control デスクトップアプリから Reset apps environment をクリックします(上記「Bootstrap またはアップデートの失敗 / Python 環境の問題」を参照)。その後、アプリを再インストールする必要があります。

代替案(上級者向け): ロボットに SSH 接続します(Wireless: ssh pollen@reachy-mini.local)し、アプリ用 venv を直接削除してから Conversation アプリを再インストールします:

rm -rf /venvs/apps_venv
マイク入力 / 到来方向(Direction of Arrival)がない(ベータ版ユニット)
  • 入力なし: ファームウェア 2.1.3 が必要です。update script を実行してください。
  • 方向なし: ファームウェア 2.1.0 以上が必要です。
  • フラットフレキシブルケーブルが正しい向きで取り付けられているか確認してください(組み立てガイドのスライド 45〜47)。
サーボパラメータ復元スクリプト

サーボ(例:S5)のパラメータが異常な場合、バックアップ / 復元ツールを使用して標準パラメータを書き戻すことができます。

関連ファイル

  • dynamixel_xl330_backup_restore.py — バックアップ / 復元ツール
  • DYNAMIXEL_XL330_BACKUP.json — このモデル用の標準パラメータファイル

ダウンロード URL: dynamixel_xl330_backup_restore.py および DYNAMIXEL_XL330_BACKUP.json

前提条件

  • Python 3;Reachy Mini を U2D2 経由でコンピュータに接続し、サーボに通常どおり電源が入っていること(日常的なデバッグ時と同じ)。
  • 依存関係をインストール:pip install dynamixel-sdk pyserial
  • 2 つのファイルを同じフォルダに配置し、そのフォルダ内で全てのコマンドを実行します。

手順

  1. ツールを起動する

    python dynamixel_xl330_backup_restore.py

    U2D2 のシリアルポートとボーレート 1,000,000 を選択します。メインメニューではまず全サーボをスキャンして一覧表示します — 6 個すべてが存在し、モデルが XL330-M288 であること、および S5 の実際の ID を確認してください。

  2. 安全なバックアップ(必須)

    メニューオプション 2(Export / backup ALL)を選択して、6 個すべてのモーターの現在のパラメータを JSON ファイルにエクスポートします(デフォルト名は DYNAMIXEL_XL330_BACKUP_timestamp.json のような形式)。これを backup_all.json にリネームして保管してください。これは復元前の元の状態であり、ロールバックやレジスタ差分の確認に役立ちます。

  3. S5 に標準パラメータを復元する

    メニューオプション 3(Restore)を選択し、JSON リストから提供された標準パラメータファイルを選びます。マッピングモード 1(Same ID)を選択します。スクリプトは「restore plan」を表示し、どのサーボに書き込みが行われるか(現在 → バックアップ → 最終 ID)を示します。

    S5 が含まれていること、そして各モーターの最終 ID が現在の ID と一致していること(リネームされないこと)を確認し、RESTORE と入力します。

    スクリプトは次の処理を行います:Torque を強制的にオフ → 各 config / PID / profile / Indirect Address パラメータを書き込み → 各項目を読み戻して検証 → 最後に全体レビュー;処理中は Torque は常にオフで、意図しない動作は発生しません。

    標準パラメータファイルに S5 のエントリのみが含まれている場合は S5 のみが書き込まれます。6 個すべてが含まれている場合は、6 個すべてが標準パラメータでフラッシュされます。どちらの場合も「restore plan」に明確に一覧表示されるので、確認してから実行してください。

  4. スクリプトを終了し、サーボの電源を入れ直してから、ロボット上で S5 をフル可動域・高さ・負荷で再テストします。

チェックリスト

  • 再フラッシュ後、S5 は自力で上端まで到達できますか(まだ押す必要がある / ブザー音がするなどはありませんか)?
  • スクリプトの出力は RESTORE + VERIFY SUCCESS ですか、それとも何か [FAIL] 行がありますか(ある場合は該当行を送ってください)?
  • 手順 2 で作成した backup_all.json ファイル。

注意事項

  • 再フラッシュ後に Torque がオフのままなのは正常です — ロボットソフトウェアが起動時に有効化します。
  • スクリプトが MODEL MISMATCH を報告する場合、S5 のモデルが他のモーターと異なることを意味します — これは重要な手がかりなので、お知らせください。
  • 「restore plan」に S5 が含まれていない、または最終 ID が現在の ID と一致しない場合は、RESTORE と入力しないでください — 当社までご連絡ください(おそらくパラメータファイル内の ID が S5 の実際の ID と一致していません。修正版を提供します)。
  • 再フラッシュと検証が正常に完了しても問題が解決しない場合、設定は正常であると確認できるため、交換対応に進む根拠となります。

📦 出荷と保証​

荷物が破損している / 届かない。

すぐに Pollen Robotics チームに連絡してください。パッケージの写真、レシート番号または請求書番号、フルネームを添えて sales@pollen-robotics.com までメールをお送りください。輸送会社に確認し、状況を随時お知らせします。

返金ポリシー
  • 出荷前: sales@pollen-robotics.com に連絡していただければ 100% 返金いたします。
  • 出荷後: 荷物の返品は 30 日以内に行ってください。配送証明および請求書またはレシート番号を添えて sales(sales@pollen-robotics.com)にご連絡ください。コメントやフィードバックがあればぜひお知らせください。私たちは、オープンソースコミュニティが作ることを楽しめるロボットを作ることに注力しています。
保証

部品が破損している / 正常に動作しない場合、Pollen のアフターセールスチームが、それが保証対象となるハードウェア不良かどうかを判断します。その後、製造元から修理または交換用部品が提供されます。問題箇所の写真、レシート番号または請求書番号、フルネームを添えて sales@pollen-robotics.com までメールをお送りください。

💬 まだ解決しませんか?​

このガイドで問題の答えが見つからなかった場合は、ぜひ直接ご連絡ください! Pollen Robotics チームとコミュニティは Discord 上でアクティブに活動しており、個別の問題のトラブルシューティングをお手伝いします。

👉 Pollen Robotics Discord に参加する

Loading Comments...