[Solved] Protocol version of client is unrecognized

Replaced Astra camera with a Logitech camera.
i was able to test it using roslaunch usb_cam usb_cam-test.launch.
I could see the raw image output. But running rosbot_ekf all.launch throws back errors on rosserial python.

[INFO] [1593198109.447167]: wrong checksum for topic id and msg
[ERROR] [1593198111.410477]: Mismatched protocol version in packet: lost sync or rosserial_python is from different ros release than the rosserial client
[INFO] [1593198111.416995]: Protocol version of client is unrecognized, expected Rev 1 (rosserial 0.5+)

Please help me in solving this issue.
I tried connecting the camera into different USB port but the error still exists.
husarion@husarion:~$ roslaunch rosbot_ekf all.launch
… logging to /home/husarion/.ros/log/73aecb3a-b7de-11ea-9098-409f384f007f/roslaunch-husarion-7434.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt

Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://husarion:44377/

SUMMARY

CLEAR PARAMETERS

  • /rosbot_ekf/

PARAMETERS

  • /rosbot_ekf/acceleration_gains: [0.8, 0.0, 0.0, 0…
  • /rosbot_ekf/acceleration_limits: [1.3, 0.0, 0.0, 0…
  • /rosbot_ekf/base_link_frame: base_link
  • /rosbot_ekf/control_config: [True, False, Fal…
  • /rosbot_ekf/control_timeout: 0.2
  • /rosbot_ekf/debug: False
  • /rosbot_ekf/debug_out_file: /path/to/debug/fi…
  • /rosbot_ekf/deceleration_gains: [1.0, 0.0, 0.0, 0…
  • /rosbot_ekf/deceleration_limits: [1.3, 0.0, 0.0, 0…
  • /rosbot_ekf/frequency: 20
  • /rosbot_ekf/imu0: imu
  • /rosbot_ekf/imu0_config: [False, False, Fa…
  • /rosbot_ekf/imu0_differential: True
  • /rosbot_ekf/imu0_linear_acceleration_rejection_threshold: 0.8
  • /rosbot_ekf/imu0_nodelay: False
  • /rosbot_ekf/imu0_pose_rejection_threshold: 0.8
  • /rosbot_ekf/imu0_queue_size: 4
  • /rosbot_ekf/imu0_relative: True
  • /rosbot_ekf/imu0_remove_gravitational_acceleration: True
  • /rosbot_ekf/imu0_twist_rejection_threshold: 0.8
  • /rosbot_ekf/initial_estimate_covariance: [‘1e-9’, 0, 0, 0,…
  • /rosbot_ekf/map_frame: map
  • /rosbot_ekf/odom0: odom/wheel
  • /rosbot_ekf/odom0_config: [True, True, True…
  • /rosbot_ekf/odom0_differential: False
  • /rosbot_ekf/odom0_nodelay: False
  • /rosbot_ekf/odom0_queue_size: 6
  • /rosbot_ekf/odom0_relative: True
  • /rosbot_ekf/odom_frame: odom
  • /rosbot_ekf/print_diagnostics: True
  • /rosbot_ekf/process_noise_covariance: [0.05, 0, 0, 0, 0…
  • /rosbot_ekf/publish_acceleration: False
  • /rosbot_ekf/publish_tf: True
  • /rosbot_ekf/sensor_timeout: 0.2
  • /rosbot_ekf/stamped_control: False
  • /rosbot_ekf/transform_time_offset: 0.0
  • /rosbot_ekf/transform_timeout: 0.0
  • /rosbot_ekf/two_d_mode: False
  • /rosbot_ekf/use_control: True
  • /rosbot_ekf/world_frame: odom
  • /rosdistro: kinetic
  • /rosversion: 1.12.14
  • /serial_node/baud: 500000
  • /serial_node/port: /dev/ttyS1

NODES
/
imu_publisher (tf/static_transform_publisher)
msgs_conversion (rosbot_ekf/msgs_conversion)
rosbot_ekf (robot_localization/ekf_localization_node)
serial_node (rosserial_python/serial_node.py)

ROS_MASTER_URI=http://master:11311

process[serial_node-1]: started with pid [7482]
process[msgs_conversion-2]: started with pid [7485]
process[rosbot_ekf-3]: started with pid [7489]
process[imu_publisher-4]: started with pid [7498]
[INFO] [1593198103.410925]: ROS Serial Python Node
[INFO] [1593198103.463762]: Connecting to /dev/ttyS1 at 500000 baud
[INFO] [1593198105.591757]: Note: publish buffer size is 768 bytes
[INFO] [1593198105.604097]: Setup service server on /config [rosbot_ekf/Configuration]
[INFO] [1593198105.710474]: Setup publisher on /battery [sensor_msgs/BatteryState]
[INFO] [1593198105.728586]: Setup publisher on /pose [geometry_msgs/PoseStamped]
[INFO] [1593198105.750615]: Setup publisher on /velocity [geometry_msgs/Twist]
[INFO] [1593198105.789045]: Setup publisher on /range/fr [sensor_msgs/Range]
[INFO] [1593198105.826372]: Setup publisher on /range/fl [sensor_msgs/Range]
[INFO] [1593198105.851490]: Setup publisher on /range/rr [sensor_msgs/Range]
[INFO] [1593198105.877787]: Setup publisher on /range/rl [sensor_msgs/Range]
[INFO] [1593198105.895856]: Setup publisher on /joint_states [sensor_msgs/JointState]
[INFO] [1593198105.912917]: Setup publisher on /mpu9250 [rosbot_ekf/Imu]
[INFO] [1593198105.930959]: Setup publisher on /buttons [std_msgs/UInt8]
[INFO] [1593198105.935538]: Note: subscribe buffer size is 768 bytes
[INFO] [1593198105.942241]: wrong checksum for topic id and msg
[INFO] [1593198105.945707]: wrong checksum for topic id and msg
[INFO] [1593198109.444404]: wrong checksum for topic id and msg
[INFO] [1593198109.447167]: wrong checksum for topic id and msg
[ERROR] [1593198111.410477]: Mismatched protocol version in packet: lost sync or rosserial_python is from different ros release than the rosserial client
[INFO] [1593198111.416995]: Protocol version of client is unrecognized, expected Rev 1 (rosserial 0.5+)
[ERROR] [1593198112.454581]: Mismatched protocol version in packet: lost sync or rosserial_python is from different ros release than the rosserial client
[INFO] [1593198112.455873]: Protocol version of client is unrecognized, expected Rev 1 (rosserial 0.5+)
[ERROR] [1593198113.011724]: Mismatched protocol version in packet: lost sync or rosserial_python is from different ros release than the rosserial client
[INFO] [1593198113.016934]: Protocol version of client is unrecognized, expected Rev 1 (rosserial 0.5+)
[INFO] [1593198117.872486]: wrong checksum for topic id and msg
[INFO] [1593198117.928756]: wrong checksum for topic id and msg
[INFO] [1593198118.672028]: wrong checksum for topic id and msg
[INFO] [1593198118.676299]: wrong checksum for topic id and msg
^C[imu_publisher-4] killing on exit
[rosbot_ekf-3] killing on exit
[msgs_conversion-2] killing on exit
[serial_node-1] killing on exit
[INFO] [1593198119.677823]: Send tx stop request
^C^Cshutting down processing monitor…
… shutting down processing monitor complete
done

Hi thiaga,

This issue is occurred in few different cases:

  • Program flashed to controller don’t work properly. Do you using ROSbot default firmware?
  • Controller inside ROSbot is damaged (less likely).

Please run some tests. Flash the newest ROSbot firmware to your device, after that try to run rosbot_ekf one more time.

Please let me know the results.

Best regards,
Hubert

1 Like

Hi

I get sometimes the same messages see here. From my expierience this is a kind of performance problem. It will get (a little) better when I close Remote desktop connection after starting the nodes at the RPi.

Michael

1 Like

Hi Hubert and Michael,
Thank you for your help. Flashing the recent firmware did the trick. I would go back to Michael’s thread if I get any errors in the future. Thanks guys.

1 Like

Got the same error back
[INFO] [1594398530.027157]: wrong checksum for topic id and msg
[INFO] [1594398530.032376]: wrong checksum for topic id and msg
[ERROR] [1594398531.200217]: Mismatched protocol version in packet: lost sync or rosserial_python is from different ros release than the rosserial client
[INFO] [1594398531.202043]: Protocol version of client is unrecognized, expected Rev 1 (rosserial 0.5+)

ls /dev/tty* -l
did not show ttycore2
should I need to flash the SD card to get rid of this error?

Hi thiaga,

If you flash SD card using the newest image version we will be sure that we are both working on the same package version. It should resolve your issue, but if it will continue to occur, its diagnosis will be much easier.

Best regards,
Hubert

Hi Hubert,
I flashed the SD card by following System re installation
from this link ROSbot 2.0 & ROSbot 2.0 PRO | Husarion
but the error still prevails.
I used ros kinetic arm 2020-03-16.img for flashing the SD card. And uploaded the firmware v0.12.0 as bin file.

[INFO] [1594696119.116422]: wrong checksum for topic id and msg
[INFO] [1594696119.127340]: wrong checksum for topic id and msg
[ERROR] [1594696119.308078]: Mismatched protocol version in packet: lost sync or rosserial_python is from different ros release than the rosserial client
[INFO] [1594696119.309571]: Protocol version of client is unrecognized, expected Rev 1 (rosserial 0.5+)

What should I do for the next step of diagnosis?

Hi thiaga,

May I ask you why do you used deprecated image instead of the newest one with Ubuntu 18.04 and ROS Melodic?

Best regards,
Hubert

Hi Hubert,
I have got 2 rosbots and so I thought both can be on the same ros version. I want them to collaborate and I wasn’t sure will it be compatible to have one on kinetic and other on melodic. In that case should I flash both with melodic?

Hi thiaga,

If I were in your shoes I would flash image with ROS Melodic on both devices. Miss mach in ROS distro can cause some sort of issues. Please let me know if you have any question about flashing guide.

Best regards,
Hubert

Hi Hubert,
Sure I will do the same. Flash both rosbots with ros melodic and check if the error vanishes.
I am unable to track the error. Can you please tell me what exactly causing this particular error? Is it due to the camera that I am trying to connect or something related to core2 or tinkerboard?
Because this error does not pop up when I use Astra camera.

Hi hubert,
I did flash ROS melodic but I am getting the same error for rosbot_ekf when I launched usb_cam node. And also a new warning that I got on rosbot_ekf

[ WARN] [1594952220.240759795]: Transform from imu_link to base_link was unavailable for the time requested. Using latest instead.

Can you please check if I am doing the right step flashing? ROSbot 2.0 & ROSbot 2.0 PRO | Husarion

I followed every step in System reinstallation on this link

  1. Flashed the sd card with ros melodic image
  2. Put that back on the robot.
  3. Followed the steps for installing low level firmware installation
  4. sudo apt update then sudo apt upgrade
  5. roslaunch rosbot_ekf all.launch and roslaunch usb_cam usb_cam-test.launch

Am I missing something?

Hi Tiaga,

In first place thank you for detailed description of your case and big help with reproducing the issue.

I will describe what the problem is in case of someone from our community is occurring the same issue.

It shows that Asus Tinker Board which is SBC inside ROSbot 2.0 have some kind of limitation in USB transfer. Launch file rosbot_ekf all.launch runs a lot of nodes but rosserial_python which is responsible for UART communication between CORE2 (MCU) and SBC, have problem during transmuting too much information from USB camera using usb_cam pkg.

Temporary solution is running usb_cam_node with framerate about 10. Below you can check example launch file:

<launch>
  <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >
    <param name="video_device" value="/dev/video0" />
    <param name="image_width" value="640" />
    <param name="image_height" value="480" />
    <param name="framerate" value="10" />
    <param name="pixel_format" value="yuyv" />
    <param name="camera_frame_id" value="usb_cam" />
    <param name="io_method" value="mmap"/>
  </node>
  <node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen">
    <remap from="image" to="/usb_cam/image_raw"/>
    <param name="autosize" value="true" />
  </node>
</launch>

We will still investigate this issue to figure out the best solution.

Best regards,
Hubert

1 Like

Hi Hubert,
Thank you so much for your help on this. That was a life saver.

Best Regards,
Thiaga

1 Like