Hello, excuse me for cutting in. Please let me write my idea.
As for data corruption and feedback, what is the reason of data corruption?
In my understanding, generally, if the sender sent correct data, the receiver will: 1. receive correct data, or 2. not receive any data.
It won’t receive corrupted data because it is detected in the transport layer.
Or, if the map file itself is corrupted, it should be detected and fixed in the verification step, not in the runtime, and the sender should not send the data.
So my opinion is,
- A simple resending feature is required because sometimes sending data might fail, but probably it can be done by ROS/ROS2 features.
- No excessive feature is not necessary.
As for pub/sub or server, it depends on the target, Autoware.ai or Autoware.Auto.
For Autoware.ai, since the map node sends whole map data, I think using Service is more natural than pub/sub.
However, since the current implementation uses pub/sub, to keep using pub/sub might be better, considering the re-implementation cost.
For Autoware.Auto, it should be drastically redesigned for more safety, including Lanelet2 library.
I think sending structured data using pub/sub is best for now, but as we discussed at the last meeting, let’s consider this using the AVP use case.