Lego NXT brick communication error with libusb
Rene Ladan
rene at freebsd.org
Sun Dec 12 23:09:51 UTC 2010
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 at 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)
More information about the freebsd-usb
mailing list