Controller breakdown#1271
Conversation
…er/_assets/scene-controller-api.yaml
|
|
||
| ### MOT Tracking | ||
|
|
||
| - **Role**: perform 2D->3D projection and 3D Multi-Object-Tracking |
There was a problem hiding this comment.
The projection should be its own service. It has complex logic about how we place the object on the surface, raycasting, heuristic based position adjustment, correcting depth inaccuracies in 3D Object Detections etc.
There was a problem hiding this comment.
Currently this is implemented in the Tracker, but sure let's break it down as a separate entity here.
The main question is whether the complex logic itself justifies making it a service on its own (which requires maintaining its own API configuration, deployment, introduces latency etc.) and whether benefits (e.g. reuse) outbalance the costs.
There was a problem hiding this comment.
Same logic applies for the scene hierarchy service. In the case of hierarchy, latency may be less of a factor but rest is true.
Separate service for projection enables separation of concerns and each to evolve independently. Additionally, heuristics based on object library settings is a responsibility of projection logic. Not of tracker. Tracker input becomes well defined - objects positioned in the common coordinate system.
Downside is latency. We will need to see what the grpc inter service communication latency is. This would not be a phase 1 implementation but when considering the way forward with what is currently known, this is the right approach.
There was a problem hiding this comment.
I agree that same logic applies for separation of scene hierarchy and projection services. We need to make informed data-driven decisions for both of them, so it would be good to also gather enough experimental data if needed. I can recall that Jozef did JSON vs Protobuf serialization/deserialization benchmarking for Tracker Service PoC. It improved latency by 43% (below 1ms). We would need to consider MQTT throughput capacity and measure also gRPC vs MQTT.
There was a problem hiding this comment.
Projection added as a separate entity in 0d2fc64
|
Do not merge. Used only for asynchronous discussion. |
📝 Description
Provide a clear summary of the changes and the context behind them. Describe what was changed, why it was needed, and how the changes address the issue or add value.
✨ Type of Change
Select the type of change your PR introduces:
🧪 Testing Scenarios
Describe how the changes were tested and how reviewers can test them too:
✅ Checklist
Before submitting the PR, ensure the following: