遠隔操作#
Data Visualizer上にビジュアルパーツ Command Button を配置すると、ユーザーはボタンをクリックすることによってintdashサーバーにコマンドを送信することができます。
また、ビジュアルパーツ Gamepad を配置すると、PCに接続されたゲームパッドのボタンやスティックの状態をROS Topic型のメッセージとして送信することができます。
遠隔地にある操作対象(ロボットなど)に搭載したintdashエッジでこれらのデータ(コマンドやゲームパッドの状態)を受信することで、Data Visualizerを使った遠隔操作が可能になります。
これらの遠隔操作用データを送信するとき、Data Visualizerはエッジとして振る舞い、iSCP 2.0のアップストリームを使って、サーバーにリアルタイムにデータを送信します。 このときどのエッジとして振る舞うかは、Data Visualizer画面下部のSender Edgeボタンで選択します。 (画面下部にSender Edgeボタンが表示されていない場合は、 Miscメニューを開いてSender Edge機能をオンにしてください。)
操作対象のエッジでは、Data Visualizerから送信されるデータを受信するよう設定しておきます。 受信するデータは、送信元エッジのID(Data VisualizerのエッジのID)とデータIDを使って指定してください。
遠隔操作用データの送信#
Data Visualizerから遠隔操作用データを送信するには、以下のように操作します。
Command ButtonまたはGamepadビジュアルパーツをスクリーンに配置します。
注釈
Gamepadはスクリーンの縦2マス以上で配置してください。
ビジュアルパーツのData Bindingを設定します。 設定については、この下の各ビジュアルパーツの説明を参照してください。
Sender Edge(どのエッジとして遠隔操作用データを送信するか)を選択します。
Command Buttonまたはゲームパッドを操作します。 これにより遠隔操作用データが送信されます。
Command Buttonまたはゲームパッドのいずれかで操作を開始してから、 (Stop)をクリックするまでが1つの計測になります。
遠隔操作用データは、intdashで扱われる他のデータと同様に、計測(時系列データ)としてサーバーに保存されます。 また、Sender Edgeで選択されたエッジが、その計測の送信元エッジとして記録されます。
遠隔操作により作成された計測は、他の計測と同様に、後からData Visualizerで可視化することができます。 ただし、Command ButtonやGamepadビジュアルパーツでは可視化できません。 再生する際は、データ型に合わせて他のビジュアルパーツを使用してください。
注釈
ネットワークが切断された場合に遠隔操作用データを蓄積して復旧後に再送する機能はありません。
Gamepad#
Gamepadは、ゲーム用のコントローラーでの操作を送信するためのビジュアルパーツです。
対応するゲームパッドハードウェアをPCに接続すると、ゲームパッドの状態をData Visualizerから送信することができます。
ゲームパッドハードウェアが認識されると、Gamepadビジュアルパーツ上でハードウェアが選択可能になります。使用するハードウェアを選択してください。 ゲームパッドの代わりにキーボードやマウスで操作する場合はKeyboardまたはMouseを選択してください。
キーボードでの操作は、マウスポインターがゲームパッドの上にあるときのみ可能です。ビジュアルパーツ上に表示されるキーで操作します。
Data VisualizerをLIVEモードにし、 (Play)を押した状態で、ゲームパッドのボタンを操作するとデータの送信が開始されます(計測が開始されます)。
その後、ゲームパッドの状態が変化するたびに、ゲームパッドの状態がサーバーに送信されます。 また、状態が変化していなくても、Auto Repeat Intervalで設定された間隔ごとに送信されます。
データのフォーマットとしては、iSCP 2.0の拡張仕様で定義されたROS Topic用のペイロードフォーマットが使用されます。詳細については、iSCP 2.0の仕様書を参照してください。
重要
コマンドを受信するエッジでは、ダウンストリームを使って受信するための設定が別途必要です。(上の例の場合、edge002において、edge001からのデータを受信する設定が必要です。)
Command Buttonビジュアルパーツとは異なり、操作対象のエッジからのレスポンスを受信することはできません。
動作確認済みのゲームパッドハードウェア#
ハードウェア名 |
Mac |
Windows |
ビジュアルパーツで選択するLayout |
---|---|---|---|
PlayStation DualSense ワイヤレスコントローラー |
✓ |
✓ |
Type P |
Nintendo Switch Proコントローラー |
✓ |
- |
Type N |
ロジクール F310 ゲームパッド |
- |
✓ |
Type X |
Razer Wolverine V2 |
- |
✓ |
Type X |
Panel Settings#
設定項目 |
設定内容 |
---|---|
Panel Name |
パネルに表示する名前です。送信されるデータには影響しません。 |
Data Binding |
他のビジュアルパーツと異なり、このビジュアルパーツには、他のエッジからデータを受信する機能はありませんので、ここでエッジを指定することはできません。 以下のようにデータ設定をバインドしてください。
|
Rendering Speed |
表示の更新頻度です。デフォルトは20fpsです。 Rendering Speedの値を大きくすると処理の負荷が上がります。負荷が高すぎると指定した頻度で更新できない場合があります。 |
Panel Option#
設定項目 |
設定内容 |
---|---|
Layout |
使用するゲームパッドのレイアウトを選択します。 レイアウトについては、 動作確認済みのゲームパッドハードウェア を参照してください。
|
frame_id in sensor_msgs/Joy |
ROSメッセージヘッダーの |
Stick Deadzone |
ゲームパッドの各ボタンまたはスティックにおいて、ニュートラル位置からの移動量がこの値以下の場合、動かされていないとみなします。 |
Auto Repeat Interval (ms): Zero is OFF |
無操作時の自動送信間隔。 ゲームパッドの状態が変化していなくても、ここで指定した間隔ごとにデータが送信されます。 0を指定した場合、ゲームパッドの状態が変化していないときにはデータを送信しません。 |
Server Timeout (ms) |
サーバー接続時のタイムアウト |