Bence, thanks for the link but that did not work. I am a colleague of Parker's and have been working with him on this issue. Upon further research we have found that the problem only occurs if the serial cable is disconnected after using serial_node.py to communicate with the node. In other words we can flash the Arduino with the Hello World sketch, disconnect and reconnect the USB cable and communicate with the node via serial_node.py. However if we disconnect the USB cable after doing so, regardless of whether the Arduino is powered via the barrel plug, we are no longer able to communicate with the node via serial_node.py upon reconnecting the serial cable.
Even more strange I just tried this at home and the results are completely different. In fact everything works as expected. I flash the Arduino and communicate with it via serial_node.py. I then disconnect the USB cable, reconnect it and communicate with it via serial_node.py again. No problem. I can repeat this process as much I as I like and all works well.
In both cases our machines are running Ubuntu 11.10, ROS electric and are completely up-to-date with respect to software updates. Spot checking the ros-electric packages shows they are the same version on both machines. It's fine that it works at home but we need it to work in the lab as well. Any thoughts as to how to correct this issue would be greatly appreciated.
Originally posted by Dustin with karma: 328 on 2012-03-09
This answer was NOT ACCEPTED on the original site
Post score: 2
Original comments
Comment by ahendrix on 2012-03-09:
Are you using the same model of arduino at home and in the lab?
Comment by Dustin on 2012-03-09:
In fact I am using the exact same unit.
Comment by ahendrix on 2012-03-09:
Are you using the same kernel version on both machines? Are there any extra udev rules on your lab machine? I've found that sometimes certain udev rules can start a process that steals the /dev/ttyUSB0 device.
Comment by Dustin on 2012-03-11:
It is the same kernel on both machines and the udev rules are the same except my machine has two additional rules. One called 40-joystick.rules and one called 40-virtualbox-guest-dkms.rules.
Comment by ahendrix on 2012-03-11:
Well, I'm out of easy ideas. This sounds like trouble between your lab machine and the USB to serial chip on your arduino; I would look at the kernel logs (dmesg) and google around for other people having similar issues.
Comment by Dustin on 2012-03-11:
Same here. Unfortunately this was working just last week without error on the same machine. Reviewing the change log for software updates reveals nothing out of the ordinary though. One thing that stands out is that rosserial_python sends a request to synchronize but the Arduino node never responds.