YouDuck.ai

コントロールプレーンとデータプレーン

最終更新

Microduck のプロセス間通信は 2 層に分かれています。どちらがどちらかを知っていると、調査の手間がかなり減ります。

コントロールプレーン: Unix ソケット上の JSON-RPC 2.0

すべてのデーモンが 1 つの JSON-RPC 契約で通信します。利用者にとって重要な性質が一つあります。

どのクライアント——スマホアプリ、ウェブコンソール、ゲームパッド、自作のスクリプト——もまったく同じ呼び出しを送ります。

隠された私的インターフェースはありません。公式アプリにできることは、スクリプトにもできます。

データプレーン: センサーのストリームはここを通らない

センサーデータはそれを所有するデーモンが直接publishし、利用者はそのデーモン自身のソケットを購読します。

  • ToF の深度 → tofdtof.stream
  • パッドの生入力 → padd

robotd を経由しません。

調査への影響

パッドの生入力を見たければ padd へ行きます。ロボットの状態ストリームには入っていません。robotctl monitorp はその独立した購読です。

ToF も同様に tofd にあります。tofd はセンサー視点の生フレームを publish し、自分に計算できない幾何を装いません。深度フレームをロボット座標系へ再投影するには、robot.state の関節状態と kinematics クレートの頭部順運動学を組み合わせる必要があります。