コントロールプレーンとデータプレーン
最終更新
Microduck のプロセス間通信は 2 層に分かれています。どちらがどちらかを知っていると、調査の手間がかなり減ります。
コントロールプレーン: Unix ソケット上の JSON-RPC 2.0
すべてのデーモンが 1 つの JSON-RPC 契約で通信します。利用者にとって重要な性質が一つあります。
どのクライアント——スマホアプリ、ウェブコンソール、ゲームパッド、自作のスクリプト——もまったく同じ呼び出しを送ります。
隠された私的インターフェースはありません。公式アプリにできることは、スクリプトにもできます。
データプレーン: センサーのストリームはここを通らない
センサーデータはそれを所有するデーモンが直接publishし、利用者はそのデーモン自身のソケットを購読します。
- ToF の深度 →
tofdのtof.stream - パッドの生入力 →
padd
robotd を経由しません。
調査への影響
パッドの生入力を見たければ padd へ行きます。ロボットの状態ストリームには入っていません。robotctl monitor の p はその独立した購読です。
ToF も同様に tofd にあります。tofd はセンサー視点の生フレームを publish し、自分に計算できない幾何を装いません。深度フレームをロボット座標系へ再投影するには、robot.state の関節状態と kinematics クレートの頭部順運動学を組み合わせる必要があります。