ROSbot 2.0: FW 0.15.0, latest EKF: Read: Depth buffer is corrupt. Size is 120160 (!= 614400)

If you use the depth cam in a c++ software in the ROSbot 2.0, you get very often these warnings:

Read: Depth buffer is corrupt. Size is 120160 (!= 614400)
3363016293 WARNING Depth: Expected d3b6, got d410
3363016339 WARNING Depth frame is corrupt!
3363016847 WARNING Read: Depth buffer is corrupt. Size is 360512 (!= 614400)
3363021758 VERBOSE [FPS] IR: 0.00 Color: 30.38 Depth: 8.38
3363069124 WARNING Depth: Expected d4e6, got d504
3363069177 WARNING Depth frame is corrupt!

a lot of them.

Could it be, that the receiving software part is not aware of the fact, that network messages are not always sent in one message but more often are divided into many messages and the reader has to assemble them to a long message?

like this:

char bigBuffer[600000];
int readBytes = 0;
while(readBytes < sizeof(bigBuffer)) {
  int len = recv(socket, &bigBuffer[readBytes], sizeof(bigBuffer) - readBytes, 0);
  if (len < 0) { // error
    break;
  }
  readBytes += len;
}

Hi @matthias

I am terribly sorry we forgot to reply to you. Honestly, I would ask either directly at Orbbec official forum or on ROS discourse. The problem is very specific in terms of how data transfer is implemented in the core of the ROS.

Best regards,
Krzysztof Wojciechowski.