ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Are you able to run a debugger to see why the connection is lost? If it's a 32-bit processor, my guess is that your chip-side program is segfaulting when rosserial tries to buffer serialized data, the reason being that memory access on non-8-bit platforms often has to be 'aligned' - e.g., the memory address has to be divisible by 32. The rosserial library doesn't take this into account.

It's kind of a non-trivial problem to fix, unfortunately. You can 'hack' it to work by adding arbitrary offsets to memory writes in the serialization function, so that the writes are aligned. What I did was to rip out the serialization function and replace it with Google's protocol buffers. Someone with formal knowledge of embedded programming (I'm a convert from mechanical engineering :) ) might be able to solve it better than me.