As discovered by Mitsudome, the vesc state report and IMU report framerate is not stable. I find this to be related to how the serial driver in ROS2 transport driver handles async serial receive in which there are corrupted buffer data. This fix switches to sync receive and use the size of data received for copying into buffer. Framerate is tested to be stable at 50Hz for both IMU and vesc state.
This fix also brings back the old error handler in ROS1 version of the driver to signal transmission issues.
Also fixed:
Update README
Reduce severity of a constant print statement to debug
It looks good to me. I have also tested with the real hardware and confirmed that the topic is now published at 50hz.
I will leave @JWhitleyWork for the final code review
As discovered by Mitsudome, the vesc state report and IMU report framerate is not stable. I find this to be related to how the serial driver in ROS2 transport driver handles async serial receive in which there are corrupted buffer data. This fix switches to sync receive and use the size of data received for copying into buffer. Framerate is tested to be stable at 50Hz for both IMU and vesc state.
This fix also brings back the old error handler in ROS1 version of the driver to signal transmission issues.
Also fixed: