ステップのデータフロー
以下では、Mech-Visionプロジェクトにおけるデータフロー、およびデータ型、データ次元、フレームループ、よくある問題のトラブルシューティング方法について説明します。
概要
Mech-Visionでは、各ステップをアルゴリズム処理ユニットとして扱います。各ステップは入力を受け取り、計算を実行し、結果を出力します。複数のステップをポートで接続すると、データは接続方向に沿って順次伝送され、完全なデータフローを形成します。
|
データフローは処理データを伝送するために使用されます。一方、制御フローはステップを実行するかどうかを決定するために使用されます。制御フローについては、ステップの制御フロー をご参照ください。 |
データ型
データ型は、ポート上で伝送されるデータ形式を表します。例えば、画像、点群、位置姿勢、数値などがあります。
データフローを作成する際、入力ポートと出力ポートのデータ型には互換性が必要です。互換性がない場合、接続を作成できません。接続操作については、ステップ間のつなぎを作成・削除 をご参照ください。
|
プロジェクトをデバッグする際は、ステップを実行して可視化出力結果を表示 することで、前のステップの出力データ型と後のステップの期待データ型が一致しているか確認できます。 |
データ次元
データ次元は、データ構造の階層レベルを表します。
-
ポート宣言次元
ポートが受信または出力を期待するデータ次元を表します。通常、データ型の後に
[]を使用して次元階層を示します。例:
-
Pose:0 次元データ -
Pose []:1 次元データ -
Pose [][]:2 次元データ -
実際の入力/出力データ次元
ステップ実行時に、ポート上で実際に伝送されるデータ次元を表します。実際の次元は、ポート宣言次元より大きい場合、小さい場合、または等しい場合があります。
フレームループ
実際の入力データ次元がポート宣言次元より大きい場合、ステップは入力データを階層ごとにループ処理します。これをフレームループと呼びます。
ステップに複数の入力ポートが存在する場合、各ポートのループ階層を実行時に揃える必要があります。揃わない場合、ステップが期待どおりに動作しない可能性があります。
ループ深度
ループ深度は、ステップがポートデータを処理する際に必要なループ階層数を表します。以下のように理解できます。
ループ深度 = 実際の入力データ次元 - ポート宣言次元
複数入力ポートのループ深度が一致しない場合、通常は次元調整または入力再利用を有効化して揃える必要があります。
次元増加/次元削減
ポート間でループ深度が一致しない場合、データ接続上で次元増加または次元削減を行い、データ構造を調整して入力を揃えやすくできます。
-
スライスによる次元増加:データを 1 次元上げます。
-
マージによる次元削減:データを 1 次元下げます。
|
利用可否は、現在のデータがリスト構造であるか、およびステップ自体の処理能力に依存します。次元増加または次元削減で解決できない場合は、入力の再利用 を併用してください。 |
入力の再利用
あるポートのデータが次元増加・次元削減に適さない、または実施できない場合、入力の再利用 を有効化できます。入力再利用を有効にすると、ステップのループ実行時に、次元の低い入力データや数量の少ない入力データを繰り返し使用し、ステップの実行継続を支援します。
このパラメータは、ステップパラメータの 実行フラグ グループにあります。詳細については、共通パラメータ をご参照ください。
自動次元増加
実際の入力データ次元がポート宣言次元より小さい場合、システムは自動的に次元増加を試み、ステップの基本要求を満たすようにします。
自動次元増加は、実行時にシステムが自動的に行う処理であり、手動のスライス次元増加とは、トリガー方式および処理ロジックが異なります。
トップレベル次元
一部ステップの入力ポートには固定の宣言次元がなく、前の入力データの次元をそのまま継承して現在のポート処理基準とします。このような入力方式は、トップレベル次元として理解できます。
プロジェクトデバッグ時に、あるポートの次元挙動が期待と一致しない場合は、まず前の出力構造と、そのポートがこのタイプの入力方式かどうかを確認してください。
トラブルシューティング
データのループ深度が一致しない
現象:
ステップまたはプロジェクト実行時に、複数入力ポートのループ階層が一致しないというエラーが表示されます。
解決策:
-
各入力ポートの実際のデータ構造を確認し、前の出力が期待どおりか確認してください。
-
データ接続で スライスによる次元増加 または マージによる次元削減 を行い、ポートのループ深度を一致させてください。
-
必要に応じて、ステップの 入力の再利用 を有効にしてください。
ポートデータの数が一致しない
現象:
ステップまたはプロジェクト実行時に、複数入力ポートのデータ数が一致しないというエラーが表示されます。
解決策:
-
前のステップの出力データ数および構成方法を確認してください。
-
データ数が少ないポートでは、入力の再利用 を有効にしてください。
-
必要に応じて、次元調整後に入力再利用を併用してください。