Date: Sun, 12 Dec 2010 23:40:54 +0100 From: Rene Ladan <rene@freebsd.org> To: freebsd-usb@freebsd.org Subject: Lego NXT brick communication error with libusb Message-ID: <4D054F76.1080401@freebsd.org>
next in thread | raw e-mail | index | archive | help
Hi, I am writing a port [1] to control the Lego NXT brick with ROS, but when I run a test program it fails (permissions for the USB device are 666). This is on: % uname -a FreeBSD acer 9.0-CURRENT FreeBSD 9.0-CURRENT #5 r216351M: Fri Dec 10 14:13:33 CET 2010 rene@acer:/usr/obj/usr/src/sys/ACER amd64 % rosrun nxt_python color_sensor_test.py Traceback (most recent call last): File "/usr/local/ros/stacks/nxt/nxt_python/sensor_tests/color_sensor_test.py", line 42, in <module> test_sensors(sock.connect()) File "/usr/local/ros/stacks/nxt/nxt_python/src/nxt/usbsock.py", line 44, in connect self.handle.reset() usb.USBError: Unknown error Looking into usbsock.py: self.handle = self.device.open() self.handle.setConfiguration(1) self.handle.claimInterface(0) self.handle.reset() where self.device points to the USB end point for the NXT device (vendor 0x694, product 0x2) However, if I run the same program as root it fails a bit later: # rosrun nxt_python color_sensor_test.py -1 Traceback (most recent call last): File "/usr/local/ros/stacks/nxt/nxt_python/sensor_tests/color_sensor_test.py", line 42, in <module> test_sensors(sock.connect()) File "/usr/local/ros/stacks/nxt/nxt_python/sensor_tests/color_sensor_test.py", line 11, in test_sensors cs = ColorSensor(b, PORT_1) File "/usr/local/ros/stacks/nxt/nxt_python/src/nxt/sensor.py", line 256, in __init__ self.set_light_color(None) File "/usr/local/ros/stacks/nxt/nxt_python/src/nxt/sensor.py", line 278, in set_light_color self.set_input_mode() File "/usr/local/ros/stacks/nxt/nxt_python/src/nxt/sensor.py", line 71, in set_input_mode self.mode) File "/usr/local/ros/stacks/nxt/nxt_python/src/nxt/brick.py", line 22, in poll self.sock.send(str(ogram)) File "/usr/local/ros/stacks/nxt/nxt_python/src/nxt/usbsock.py", line 65, in send self.handle.bulkWrite(self.blk_out.address, data) usb.USBError: Unknown error where self.handle is initialized in the same way as above. It works in Ubuntu 10.10, both native and when running from VirtualBox 4 (which has USB passthrough) under the above FreeBSD. Does anybody have an idea what could be wrong? Thanks, Rene [1] ftp://rene-ladan.nl/pub/freebsd/ros-nxt-0.1.0.tar.bz2 SIZE = 3842 SHA256 = a7a30bc5ef77230d6846577d3a4b1c7262d1c654ed32fcf0d8701c07c0867bea -- http://www.rene-ladan.nl/ GPG fingerprint = ADBC ECCD EB5F A6B4 549F 600D 8C9E 647A E564 2BFC (subkeys.pgp.net)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4D054F76.1080401>