Welcome to Robotics... Hopefully, this will give you some pointers, although your situation is not easy to debug remotely :)
Things to consider (and I appreciate its a non-repeatable problem):
- Does it only happen when battery levels are low, or also with full charge (voltage low)
- Does it only happen when the robot is active, or also from stationary (processor overload)
- What else is the control PC doing? (PC overload)
- Have you checked that the comms link is correct (voltage levels, numbers of bits, protocol etc) - Check with an oscilloscope.
- Noise interference (EMC) if the motors are active
- Can you log what is received at the robot?
- Is the receive buffer on the robot big enough for the biggest command sequence? (buffer overflow)
- Have you checked the cable, both for continuity and that it isn't loose.
As things stand, it is difficult to be able to determine...