Hello, ROS2 experts,
We are having problem with ROS message-size larger than 640000 bytes on Windows platform which we hope to gain some insights. Below are more details of the problem:
1) Our application overlay needs to publish ROS message size larger than 64000 bytes (94068 bytes ROS message size). We excluded the eProsima from the build by placing AMENT_IGNORE file under the eProsima directory. The build was successful, but we hit a different run-time error which caused the program to crash in the createPublisher() function without explicit error messages.
2) Then we built for Windows platform with eProsima included in the build. Our build was successful. But we hit below run-time errors which caused the program to crash in the createPublisher() function, and seems to complain about the ROS messages larger than 64000 bytes:
[Error][ParticipantImpl::registerType]
[Error][ParticipantImpl::createPublisher]
2) The third thing we tried was to re-define the values for the "PAYLOAD_MAX_SIZE" to 128000 in the two SerializedPayload.h files found in "C:\dev\ros2\src\eProsima\Fast-RTPS\include\fastrtps\rtps\common\" and the "C:\dev\ros2\install\include\fastrtps\rtps\common" directories. The build was successful, and we no-longer had the run-time errors. However, we are not able to publish successfully. From sniffing, we can tell that the RTPS protocol did not send correct message data.
4) Last but not least, we built on the Linux platform by excluding the eProsima from the build. The build was successful. And we are able to run the application without run-time crashing, and it seems to be publishing fine - although we have not yet verified that the published data is all correct and complete.
So our question is - are ROS message sizes larger than 64000 bytes formally supported on either Linux or Windows platforms? If so, then how do we fix the above Windows-side run-time problems we have been seeing?
Thanks,
Eric