← トップへ戻る

HOW TO USE

使いかた

ロボットの配置や移動など、基本的な使い方はどの端末でも同じです。操作する場所の選び方と決定のしかたが端末によって異なります。

このページの中身

  1. 6つの手順
  2. 腕のあるロボットでは、腕も操作できます
  3. 記録して、同じ場所で再現する
  4. お使いの端末での始めかた
  5. AR の画面を PC や大きな画面に映す
  6. ロボットを重ねた映像を、カメラ映像として配信する
  7. USD や ROS 2 のログ(MCAP)から記録を作る
  8. 置く機器を選ぶ・機器を追加する

1. 6つの手順

床に出た青い輪
青い輪は床の位置を指定するときに表示されます

置く場所、移動先。床を指しているときに出ます。

ロボットの足元に出たオレンジの輪
オレンジの輪はロボットを選択したときに表示されます

選ばれているロボットの足元に出ます。点線の輪は行き先です。

  1. 1床を指す

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

  2. 2機種を選ぶ

    青い輪の位置を決定すると、「ここに置く」メニューが表示されます。「配置」を選ぶと、ロボットの一覧が表示されます。ヒューマノイド型、四足歩行型、ロボットアーム、AMR などから、設定の「置く機器」で選んだロボットを選べます(はじめは 10 種類。8. を参照)。

  3. 3置く

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

  4. 4移動先を指す

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

  5. 5動かす

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

  6. 6操作する・消す

    ロボットを選ぶとメニューが出ます。「操作」(腕のあるロボットだけ)で腕を動かし、「置き直す」で別の場所へ置き直し、「削除」で消します。ロボットの足元に表示される ⟲ または ⟳ を選んで決定すると、その場で向きを変えられます。何体でも置けます。

2. 腕のあるロボットでは、腕も操作できます

腕を操作している様子
手先を持って動かす

VRヘッドセットなら、コントローラのトリガーを押したまま手を動かすと手先がついてきます(手だけのときは、つまんだまま)。手を動かした分だけ、ロボットの手先も動きます。たとえば手を 10cm 動かすと、手先も約 10cm 動きます。

胴を上下させている様子
胴を伸ばす・縮める

昇降する胴を持つロボット(TIAGo++)は、頭上に出る上下の矢印で高さを変えられます。

手首とグリッパ(ヘッドセットの操作モード)

ロボット手首の向きグリッパ
OpenArm(双腕)○○
Franka Panda○○
SO-101△(関節が 5 つで、向きは近づけられる範囲まで)○
TIAGo++(双腕)○○
G1(双腕)○×(指の関節が無い)
UR5○付け替えた手しだい(グリッパ・吸着・なし)

スマートフォン・iPad は手先の位置だけを動かします。

UR5 のエンドエフェクタ

エンドエフェクタ操作入手元・ライセンス
Robotiq 2F-85 平行グリッパグリップボタンの握り具合で閉じる(手は親指と中指)PickNik ros2_robotiq_gripper, BSD-3-Clause
Robotiq EPick 吸着グリップボタンを握る間オンPickNik ros2_epick_gripper, BSD-3-Clause

「操作」を選ぶと「エンドエフェクタ」を選べます。操作の終わりは、コントローラは B/Y ボタン、手は拳です。

3. 記録して、同じ場所で再現する

  • AR の中のメニュー「床の枠を決定する」で、床の四隅を決めます。ヘッドセット(Quest)では部屋の床が枠としてすぐに表示されるので、確認して「この枠で決定」を選びます。それ以外の端末では「床の角 1 を指定してください」の案内に沿って、角を1つずつ指定します。部屋の四隅は、家具の陰になっていても、角がありそうな所を指定してください。屋外では、後で見つけられる物を目印にします。
  • 確認画面「床の枠の確認」が出ます。「どこを基準にしたか忘れないように、この確認画面をキャプチャすることをお勧めします」。違っていれば「指定し直す」を選びます。辺が 0.5 m より短い場合や辺が交差する場合は決定できません。
  • メニュー「記録を保存」を選びます。配置したロボットと移動経路が、アカウントに保存されます。保存されるのは床の四隅の座標とメモだけで、面や映像は保存しません。実測値と「四隅のメモ」は、AR を抜けてから、記録の「実測・保存…」で入れられます。
  • 保存した記録は、アプリの画面の「記録」に並びます。
  • 記録を選んで AR を始めると「現実の部屋の角 1 を指定してください」と表示されます。記録したときと同じ順に、現実の部屋の角 1〜4 を1つずつ指定します。角を指定している間は、次の角の番号が付いた水色の丸が表示されるので、中心の白い点を角に合わせます(ヘッドセットでは照準を向けてトリガー、スマートフォンでは「決定」キー、iOS の WebXR Viewer では画面のどこかをタップ)。記録の角にメモがあれば、案内の後ろに表示されます。4 つ目を指定すると、記録した床の枠が 4 点に合う位置と大きさで、薄いグレーの四角で表示され、「床の枠の確認」のメニューが出ます。4 点が記録の床より狭ければミニチュアになり、ロボットと動きもその縮尺で表示されます(メニューの題に「実寸の 1/70」のように出ます。決定した後も、枠の外側の床の近くに小さく表示されます)。四角が床より浮いたり沈んだりしていれば「高さ +2 cm」「高さ −2 cm」で合わせ、「この枠で決定」を選ぶと、記録した場所と動きを再現できます(メニュー「再現」→「記録を再現」)。指定した点から離れた角は赤く表示されます。「指定し直す」で角 1 から、「キャンセル」でやめます。ずれたときはメニュー「床の枠を合わせ直す」を選び、角 1 から指定し直します。Quest・Android・iOS の WebXR Viewer ではまだ確かめていません。スマートフォンの映像画面(指 1 本で枠をスライド、2 本指で拡大・縮小)も、実機ではまだ確かめていません。目印2点で作った古い記録は、これまでどおり2か所に目印を置いて再現できます。
  • 記録はアカウントごとにサーバに保存されるので、ログインした別の端末にも同じ記録が並びます。通信が切れている間は記録を端末に保存し、「サーバ未保存」と表示します。通信が復旧するとサーバへ送信します。
  • ほかの人へ渡すときは、「ファイルに保存」で .json として書き出し、相手が「ファイルを開く」で読み込みます。
  • 設定で MQTT ブローカーを設定すると、記録内の機器と MQTT メッセージを送受信できます。

4. お使いの端末での始めかた

VRゴーグル

WebXR に対応した機種(Meta Quest 3 / 3S など)。屋内でお使いください。

  1. スマートフォンまたはパソコンで Google アカウントでログインします
  2. ヘッドセットのブラウザで physicalsandbox.com を開き、右上の「VRゴーグル認証」を選びます(6桁のコードが表示されます)
  3. スマートフォンまたはパソコンでアプリの右上のアイコンから「VR ゴーグルをつなぐ」を開き、ヘッドセットに表示された6桁のコードを入力し、「許可する」を押します
  4. 「現地で試す(AR)」を押す
  5. 右のコントローラで指して、トリガーで決める
  6. メニューを閉じたり、選択を取り消したりするには、手を握ります(コントローラではグリップでも同じです。ただし、手先を開閉できるロボットの腕を操作している間はグリップで手先を閉じるため、B / Y ボタンで操作を終えます)
  7. ARを終えるときは、床を指して決め、メニューの「AR を終了」を選ぶ

コントローラーを使わず、ハンドトラッキングでも基本的な操作ができます(つまむ=決定、握る=キャンセル)。
置く・動かす・腕・胴:すべて

Android

ARCore 対応の端末と Chrome。屋外でも使えます。

  1. Chrome で physicalsandbox.com を開いてGoogle でログイン
  2. 「現地で試す(AR)」を押す
  3. 端末を床に向けると、画面の中央の床に青い輪が出る
  4. 画面下の「決定」で決める
  5. 腕のあるロボットを選んで「操作」を押すと、画面下にスティックが出ます。動かし終えたら「終了」

画面をタップしても選択は確定しません。画面に触れただけでロボットを配置しないようにするためです。
置く・動かす・腕・胴:すべて

iOS

Safari は WebXR に対応していないため、WebXR Viewer(無料)が必要です。

  1. App Store から WebXR Viewer を入れる
  2. WebXR Viewer で physicalsandbox.com を開き、Google アカウントにログインします
  3. 「現地で試す(AR)」を押す
  4. 端末を床に向けると、画面の中央の床に青い輪が出る
  5. 青い輪が表示されている位置をタップすると決定します。メニューは、操作したい項目をタップします
  6. 腕のあるロボットを選んで「操作」を押すと、画面下にスティックが出ます(左右同時にも動かせます)。動かし終えたら「終了」

置く・動かす・腕・胴:すべて

5. AR の画面を PC や大きな画面に映す

画面をほかの人に見せたり録画したりするには、お使いの端末の画面共有・録画機能を使います。端末に表示されている画面が、そのまま別の画面に表示されます。Physical Sandbox 側の設定は要りません。

VRゴーグル

Meta Quest の「キャスト」。ヘッドセットとパソコンを同じ Wi-Fi ネットワークに接続します。

  1. PC の Chrome か Edge で oculus.com/casting を開き、ゴーグルと同じ Meta アカウントでログインする
  2. ゴーグルでメニューを開き、カメラ → キャスト を選ぶ
  3. 映す先にコンピューターを選ぶ

スマホの Meta Horizon アプリにも映せます。

iOS

Mac があれば、QuickTime Player で映して、そのまま録画もできます。

  1. iPhone・iPad を Mac にケーブルでつなぐ
  2. Mac で QuickTime Player を開き、「ファイル」→「新規ムービー収録」を選びます
  3. 録画ボタンの横の ∨ から、つないだ端末を選ぶ

ケーブルなしなら、コントロールセンターの画面ミラーリングで Mac や Apple TV に映せます。

Android

テレビや大きな画面へは「画面のキャスト」。機種によって呼び名が違います。

  1. 画面の上から下へなぞって、クイック設定を開く
  2. 画面のキャスト(スクリーンキャスト・Smart View など)を選ぶ
  3. 映す先(Chromecast・Google TV など)を選ぶ

PC に映すときは、USB でつないで使う無料のツール scrcpy があります。

6. ロボットを重ねた映像を、カメラ映像として配信する

PC の「映像に重ねる」画面の映像(カメラの映像+ロボット)を、ネットワークカメラと同じ形式で配信できます。Node-RED のダッシュボード、録画ソフト、ロボット学習のツール(LeRobot など)が、通常のカメラ映像と同じように読み込めます。映像はお使いのパソコン内で処理され、Physical Sandbox のサーバには届きません。

準備する物

映像を受信する中継ツールを、PS を開くパソコンと同じパソコンに用意します。

  1. PC と Web カメラ
  2. Chrome か Edge
  3. Node-RED(同じ PC で起動。http://localhost:1880)
  4. Node-RED の ps camera ノード(公開版の nodes/node-red-contrib-ps-camera)

Node-RED を使わないときは、公開版の tools/camera_relay.py を動かします(http://localhost:8790)。

手順

「映像配信」を有効にしている間だけ、映像を配信します。画面に「配信中」と表示されます。

  1. Node-RED に ps camera ノードを1つ置き、名前(cam-1)を付けてデプロイする
  2. 「現地で試す(AR)」→「この PC で映像に重ねる」→「カメラを使う」
  3. 床の枠(記録が無いときは 1 m の方眼)をつかんで机や床にスライドさせ、「回転」「見下ろし」「傾き」「高さ」のアイコンと「+」「−」で合わせて、「決定」で位置を決定し、ロボットを置く
  4. 上の帯の「映像配信」を押す
  5. ブラウザが「このサイトが手元の機器へ接続しようとしています」と尋ねたら、許可する

配信する映像に写るのは、カメラの映像とロボットだけです。床の枠・メニュー・ラベルは写りません。

読む側

カメラ映像を表示できるアプリや機器に、以下のアドレスを設定します。

  1. 連続して取得する: http://localhost:1880/ps-camera/cam-1.mjpg
  2. 1枚だけ取得する: http://localhost:1880/ps-camera/cam-1.jpg
  3. Node-RED の中では、ノードの出口から1枚ずつ(JPEG)流れます

読めるのは同じ PC の中からだけです。5 秒以上新しい映像が届かない場合、古い映像の配信を停止します。Safari では試していません。

7. USD や ROS 2 のログ(MCAP)から記録を作る

デジタルツインや Blender などの USD 形式のデータ、ROS 2 で記録した走行ログ(MCAP)を、JSON 形式の記録に変換してから再現します。.usda は「ファイルを開く」で開くと、画面上でそのまま記録に変換できます。MCAP と、.usda 以外の USD は、公開版に付属するツールで先に変換します。どちらの変換もお使いの端末の中で済み、場面のデータは Physical Sandbox のサーバには届きません。

USD(.usda)を画面で変換する

.usda(文字の形の USD)が 1 つのファイルになっていれば、ツールは要りません。工場や倉庫のデジタルツインの一部を現場で再現するときに使います。

  1. 「ファイルを開く」で .usda を選ぶ。模様(画像)も表示するなら、画像のファイルも一緒に選択する
  2. 天井から見下ろした映像が表示されます。屋根や天井で中が見えないときは「天井を外す高さ」を下げる
  3. 表示された床の枠(シーンから提案されます)を確認する。違っていれば「床の角を指定し直す」を選び、映像の上で床の角 1〜4 を順にクリックする
  4. ロボットにする物をクリックし、表示された候補から根元の物を「ロボットにする」で選び、機種を選択する
  5. 「記録に変換する」を押すと、記録の一覧に入ります。「選ぶ」→「現地で試す(AR)」→ 床の枠を合わせて「再現」

別のファイルを読み込む USD(Omniverse や Isaac Sim から書き出した物の多く)、バイナリの .usd・.usdc、.usdz は、パソコンで公開版の python3 tools/usd_flatten.py 場面.usd --out 出力先/ を一度実行して、1 つの .usda と画像のフォルダにしてから開きます。

準備する物

公開版(physical-sandbox)の tools/ フォルダーにある変換ツールを、パソコンの Python 環境で実行します。

  1. 公開版のリポジトリ(GitHub)を PC に置き、tools/dev-serve.sh を一度動かす(ロボットのモデルデータが生成されます)
  2. Python 3 と、USD なら pip install usd-core、MCAP なら pip install mcap mcap-ros2-support
  3. Blender を使うなら 5.3 以降(3D Gaussian Splatting(3DGS)形式を読み込めます)。手順は公開版の examples/usd/blender/README.md

変換ツールが、座標や関節の動き、時刻の形式を変換します: 床の枠の角1・角2を原点と +x に、ロボットの関節を角度に、時刻を 1 秒 30 コマに。選んだ物だけを書き出せば、絞り込みの指定は要りません。

USD(Blender など、ツールで変換する)

場面にロボットの機種名が要ります。床の枠は、場面の形から提案されます(--floor で四隅を指定することもできます)。

  1. ロボットモデルは公開版の examples/usd/blender/ps_robot_import.py を使って配置します(機種名 ps_model が付きます)。関節に対応するオブジェクトを回転させ、キーフレームを設定します
  2. File → Export → USD で、Animation と Custom Properties をオン、Selection Only で書き出す
  3. python3 tools/usd_to_record.py 場面.usda --out 場面.recording.json --site desk
  4. Physical Sandbox の「ファイルを開く」で 場面.recording.json を選び、「選ぶ」→「現地で試す(AR)」→ 床の枠を合わせて「再現」

USD の単位と上向きの軸は道具が読み替えます。他のツールで作ったシーン全体を含む USD ファイルは、--model /World/arm=so101 でロボットモデルを、--floor で床の四隅を指定します。

ROS 2 のログ(MCAP)

bag には複数のデータが記録されているため、ロボットごとに使用するトピックを指定します。

  1. rosbag2 の sqlite3 形式なら ros2 bag convert で MCAP にする
  2. python3 tools/mcap_to_record.py 走行.mcap --out 走行.recording.json --site yard --device scout=scout,odom=/odom --device arm=so101,joints=/joint_states
  3. 目印を 2 点指定する場合は、map 座標を使います(--marker1 x,y,z --marker2 x,y,z)。指定しない場合は、原点と +x 方向を目印として扱います
  4. 「ファイルを開く」で 走行.recording.json を選ぶ

読めるのは odometry(nav_msgs/Odometry)、/tf の親子 1 組、joint_states(sensor_msgs/JointState)です。ROS は要りません。

8. 置く機器を選ぶ・機器を追加する

  • 置く機器は設定で選びます。アプリの「設定」の「置く機器」で、AR の「配置」に表示する機器を選びます。機器の一覧にあるロボットは、すべて置けます。はじめはドローンを除く 10 種類のロボットが入っています。
  • 選んだ内容はお使いの端末に保存されます。アカウントには保存されないため、端末ごとに選んでください。
  • 機器の一覧には、エンドエフェクタ(アームの先に付ける手)も、どの取り付け口に合うかを示すために並びます。エンドエフェクタは単独では置けません。アームを選んで「操作」を押したときに付け替えます。
  • 一覧に無い機器は、公開版(physical-sandbox)のリポジトリへのプルリクエストで追加されます。追加の手順は、公開版の CONTRIBUTING.md にあります。公開された入手元とライセンスがある機器に限ります。
  • 「不明な機器」は、記録がこの版に入っていない機器を使っていることを示します。その記録は一覧に並びますが、再現できません。エンドエフェクタだけが入っていない場合は、アームを手なしで表示します。
  • 「機器の一覧を読み込めませんでした」と表示された場合は、ページを読み込み直してください。

Google でログインして始める