Rosserial over Due Native USB
Hello,
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 rosserialpython. 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 roslib library according to these posts:
https://answers.ros.org/question/206972/baud-rate-parameter-in-rosserial_python-arduino/
https://answers.ros.org/question/264764/rosserial-arduino-due-sync-issues/
The command is:
rosrun rosserial_python serial_node.py _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!
Asked by KRF on 2018-04-19 05:14:57 UTC
Comments
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.
Asked by ChuiV on 2019-06-11 09:22:05 UTC