Rosserial over Due Native USB

asked 2018-04-19 05:14:57 -0600

KRF gravatar image


I am trying to get communication working over the Native USB port (/dev/ttyACM1) on the Arduino Due, which is rated USB3.0. I have already managed to setup communications over the Programming port (/dev/ttyACM0) with a basic publisher/subscriber and works pretty well with rosserial_python. I want to take advantage of the USB port speed to have faster communication rates with my computer and also be able to debug through Serial of the Programming port (IDE). I have modified the ArduinoHardware.h from the ros_lib library according to these posts:

The command is:

rosrun rosserial_python _port:=/dev/ttyACM1 _baud:=115200

Where /dev/ttyACM1 is the native port as indicated by the IDE. The messages shown are :

[INFO] [1524132033.924200]: ROS Serial Python Node
[INFO] [1524132033.926728]: Connecting to /dev/ttyACM1 at 115200 baud
[ERROR] [1524132051.031280]: Unable to sync with device; possible link problem or link software version mismatch such as hydro rosserial_python with groovy Arduino

To the question, Can communications be achieved through rosserial over the Native USB port?

I am using Ubuntu 16.04.03 64bit with ROS Kinetic. Thank you!

edit retag flag offensive close merge delete


I had similar issues as few years ago with a similar setup. I was running by ubuntu 16 installation in a virtualbox VM. That ended up being my problem. After I switched to a native installation of ubuntu, I stopped seeing the sync problems. The cause was that there was some latency between the native os shuffling data from the usb port on my laptop to the virtual usb port in the VM.

ChuiV gravatar image ChuiV  ( 2019-06-11 09:22:05 -0600 )edit