HOW TO USE
使いかた
ロボットの配置や移動など、基本的な使い方はどの端末でも同じです。操作する場所の選び方と決定のしかたが端末によって異なります。
このページの中身
- 6つの手順
- ロボットアーム付きの機体では、腕も操作できます
- 記録して、同じ場所で再現する
- お使いの端末での始めかた
- AR の画面を PC や大きな画面に映す
- ロボットを重ねた映像を、カメラ映像として配信する
- USD や ROS 2 のログ(MCAP)から記録を作る
1. 6つの手順
置く場所、移動先。床を指しているときに出ます。
選ばれている機体の足元に出ます。点線の輪は行き先です。

1床を指す
置きたい場所を指すと、床の上に青い輪が出ます。段差や傾きのある場所でも、実際の床の上に乗ります。

2機種を選ぶ
青い輪の位置を決定すると、「ここに置く」メニューが表示されます。「配置」を選ぶと、ロボットの一覧が表示されます。ヒューマノイド型、四足歩行型、ロボットアーム、AMR など、7種類のロボットから選べます。

3置く
選んだ場所に、実物と同じ大きさで表示されます。近づいて見上げることも、横から回り込むこともできます。

4移動先を指す
置いた機体を選ぶと足元にオレンジの輪が出ます。そのまま床を指すと、行き先に点線の輪が出ます。ロボットから 8 m 以内の場所を移動先に指定してください。

5動かす
移動先を決定すると、ロボットはその方向を向いてから移動します。脚のある機体は歩幅に合わせて脚が動きます。

6操作する・消す
機体を選ぶとメニューが出ます。「操作」(腕のある機体だけ)で腕を動かし、「置き直す」で別の場所へ置き直し、「削除」で消します。ロボットの足元に表示される ⟲ または ⟳ を選んで決定すると、その場で向きを変えられます。何体でも置けます。
2. ロボットアーム付きの機体では、腕も操作できます
VRゴーグルなら、握ったまま手を動かすと手先がついてきます。手を動かした分だけ、ロボットの手先も動きます。たとえば手を 10cm 動かすと、手先も約 10cm 動きます。
昇降する胴を持つ機体(TIAGo++)は、頭上に出る上下の矢印で高さを変えられます。
3. 記録して、同じ場所で再現する
- AR の中のメニュー「記録」で、床に目印を2つ置いて「記録を保存」を選びます。配置したロボットと移動経路が、アカウントに保存されます。
- 保存した記録は、アプリの画面の「記録」に並びます。
- 記録を選んで AR を始め、前回と同じ2か所に目印を置いてメニュー「再現」→「記録を再現」を選ぶと、記録した場所と動きを再現できます。
- 記録はアカウントごとにサーバに保存されるので、ログインした別の端末にも同じ記録が並びます。通信が切れている間は記録を端末に保存し、「サーバ未保存」と表示します。通信が復旧するとサーバへ送信します。
- ほかの人へ渡すときは、「ファイルに保存」で .json として書き出し、相手が「ファイルを開く」で読み込みます。
- 設定で MQTT ブローカーを設定すると、記録内の機器と MQTT メッセージを送受信できます。
4. お使いの端末での始めかた
VRゴーグル
WebXR に対応した機種(Meta Quest 3 / 3S など)。屋内でお使いください。
- スマートフォンまたはパソコンで Google アカウントでログインします
- ヘッドセットのブラウザで physicalsandbox.com を開き、右上の「VRゴーグル認証」を選びます(6桁のコードが表示されます)
- スマートフォンまたはパソコンでアプリの右上のアイコンから「VR ゴーグルをつなぐ」を開き、ヘッドセットに表示された6桁のコードを入力し、「許可する」を押します
- 「現地で試す(AR)」を押す
- 右のコントローラで指して、トリガーで決める
- メニューを閉じたり、選択を取り消したりするには、手を握ります(グリップでも同じ)
- ARを終えるときは、床を指して決め、メニューの「AR を終了」を選ぶ
コントローラーを使わず、ハンドトラッキングでも基本的な操作ができます(つまむ=決定、握る=キャンセル)。
置く・動かす・腕・胴:すべて
Android
ARCore 対応の端末と Chrome。屋外でも使えます。
- Chrome で physicalsandbox.com を開いてGoogle でログイン
- 「現地で試す(AR)」を押す
- 端末を床に向けると、画面の中央の床に青い輪が出る
- 画面下の「決定」で決める
- 腕のある機体を選んで「操作」を押すと、画面下にスティックが出ます。動かし終えたら「終了」
画面をタップしても選択は確定しません。画面に触れただけでロボットを配置しないようにするためです。
置く・動かす・腕・胴:すべて
iOS
Safari は WebXR に対応していないため、WebXR Viewer(無料)が必要です。
- App Store から WebXR Viewer を入れる
- WebXR Viewer で physicalsandbox.com を開き、Google アカウントにログインします
- 「現地で試す(AR)」を押す
- 端末を床に向けると、画面の中央の床に青い輪が出る
- 青い輪が表示されている位置をタップすると決定します。メニューは、操作したい項目をタップします
- 腕のある機体を選んで「操作」を押すと、画面下にスティックが出ます(左右同時にも動かせます)。動かし終えたら「終了」
置く・動かす・腕・胴:すべて
5. AR の画面を PC や大きな画面に映す
画面をほかの人に見せたり録画したりするには、お使いの端末の画面共有・録画機能を使います。端末に表示されている画面が、そのまま別の画面に表示されます。Physical Sandbox 側の設定は要りません。
VRゴーグル
Meta Quest の「キャスト」。ヘッドセットとパソコンを同じ Wi-Fi ネットワークに接続します。
- PC の Chrome か Edge で oculus.com/casting を開き、ゴーグルと同じ Meta アカウントでログインする
- ゴーグルでメニューを開き、カメラ → キャスト を選ぶ
- 映す先にコンピューターを選ぶ
スマホの Meta Horizon アプリにも映せます。
iOS
Mac があれば、QuickTime Player で映して、そのまま録画もできます。
- iPhone・iPad を Mac にケーブルでつなぐ
- Mac で QuickTime Player を開き、「ファイル」→「新規ムービー収録」を選びます
- 録画ボタンの横の ∨ から、つないだ端末を選ぶ
ケーブルなしなら、コントロールセンターの画面ミラーリングで Mac や Apple TV に映せます。
Android
テレビや大きな画面へは「画面のキャスト」。機種によって呼び名が違います。
- 画面の上から下へなぞって、クイック設定を開く
- 画面のキャスト(スクリーンキャスト・Smart View など)を選ぶ
- 映す先(Chromecast・Google TV など)を選ぶ
PC に映すときは、USB でつないで使う無料のツール scrcpy があります。
6. ロボットを重ねた映像を、カメラ映像として配信する
PC の「映像に重ねる」画面の映像(カメラの映像+ロボット)を、ネットワークカメラと同じ形式で配信できます。Node-RED のダッシュボード、録画ソフト、ロボット学習のツール(LeRobot など)が、通常のカメラ映像と同じように読み込めます。映像はお使いのパソコン内で処理され、Physical Sandbox のサーバには届きません。
準備する物
映像を受信する中継ツールを、PS を開くパソコンと同じパソコンに用意します。
- PC と Web カメラ
- Chrome か Edge
- Node-RED(同じ PC で起動。http://localhost:1880)
- Node-RED の ps camera ノード(公開版の nodes/node-red-contrib-ps-camera)
Node-RED を使わないときは、公開版の tools/camera_relay.py を動かします(http://localhost:8790)。
手順
「映像配信」を有効にしている間だけ、映像を配信します。画面に「配信中」と表示されます。
- Node-RED に ps camera ノードを1つ置き、名前(cam-1)を付けてデプロイする
- 「現地で試す(AR)」→「この PC で映像に重ねる」→「カメラを使う」
- 画面の方眼を机や床に合わせ、「決定」で位置を決定して、ロボットを置く
- 上の帯の「映像配信」を押す
- ブラウザが「このサイトが手元の機器へ接続しようとしています」と尋ねたら、許可する
絵に写るのは、カメラの映像とロボットだけです。方眼・メニュー・ラベルは写りません。
読む側
カメラ映像を表示できるアプリや機器に、以下のアドレスを設定します。
- 連続して取得する: http://localhost:1880/ps-camera/cam-1.mjpg
- 1枚だけ取得する: http://localhost:1880/ps-camera/cam-1.jpg
- Node-RED の中では、ノードの出口から1枚ずつ(JPEG)流れます
読めるのは同じ PC の中からだけです。5 秒以上新しい映像が届かない場合、古い映像の配信を停止します。Safari では試していません。
7. USD や ROS 2 のログ(MCAP)から記録を作る
Blender などで付けた USD 形式のロボット動作データや、ROS 2 で記録した走行ログ(MCAP)を、JSON 形式の記録に変換してから「ファイルを開く」で読み込みます。Physical Sandbox は USD も MCAP もそのままは開けません。変換には公開版に付属するツールを使います。変換はお使いのパソコンの中で済み、場面のデータは Physical Sandbox のサーバには届きません。
準備する物
公開版(physical-sandbox)の tools/ フォルダーにある変換ツールを、パソコンの Python 環境で実行します。
- 公開版のリポジトリ(GitHub)を PC に置き、tools/dev-serve.sh を一度動かす(ロボットのモデルデータが生成されます)
- Python 3 と、USD なら pip install usd-core、MCAP なら pip install mcap mcap-ros2-support
- Blender を使うなら 5.3 以降(3D Gaussian Splatting(3DGS)形式を読み込めます)。手順は公開版の examples/usd/blender/README.md
変換ツールが、座標や関節の動き、時刻の形式を変換します: 床の目印 2 点を原点と +x に、機体の関節を角度に、時刻を 1 秒 30 コマに。選んだ物だけを書き出せば、絞り込みの指定は要りません。
USD(Blender など)
場面に目印 2 点とロボットの機種名が要ります。
- Blender で PhysicalSandbox という空のオブジェクトの下に Marker1・Marker2 を置く(現実の床の目印 2 点の場所)
- ロボットモデルは公開版の examples/usd/blender/ps_robot_import.py を使って配置します(機種名 ps_model が付きます)。関節に対応するオブジェクトを回転させ、キーフレームを設定します
- File → Export → USD で、Animation と Custom Properties をオン、Selection Only で書き出す
- python3 tools/usd_to_record.py 場面.usda --out 場面.recording.json --site desk
- Physical Sandbox の「ファイルを開く」で 場面.recording.json を選び、「選ぶ」→「現地で試す(AR)」→ 目印 2 点を置いて「再現」
USD の単位と上向きの軸は道具が読み替えます。他のツールで作ったシーン全体を含む USD ファイルは、--model /World/arm=so101 や --marker1 x,y,z --marker2 x,y,z でロボットモデルと目印の位置を指定します。
ROS 2 のログ(MCAP)
bag には複数のデータが記録されているため、機体ごとに使用するトピックを指定します。
- rosbag2 の sqlite3 形式なら ros2 bag convert で MCAP にする
- python3 tools/mcap_to_record.py 走行.mcap --out 走行.recording.json --site yard --device scout=scout,odom=/odom --device arm=so101,joints=/joint_states
- 目印を 2 点指定する場合は、map 座標を使います(--marker1 x,y,z --marker2 x,y,z)。指定しない場合は、原点と +x 方向を目印として扱います
- 「ファイルを開く」で 走行.recording.json を選ぶ
読めるのは odometry(nav_msgs/Odometry)、/tf の親子 1 組、joint_states(sensor_msgs/JointState)です。ROS は要りません。