ASUS Xtion Pro在Ubuntu 12.04 groovy系统下运行,出现错误。提示USB接口不支持等信息,原因是Xtion Pro该款产品有两个型号,旧款的ID号为0x600,新款的ID号为0x601,具体可通过命令:$lsusb -v 查询。
新版:
旧版:
解决方法:
参考网址:http://answers.ros.org/question/109411/asus-xtion-problems-with-ubuntu-1204-running-ros-fuerte/
1.安装驱动及OpenNI包,采用apt-get方式
- libopenni-dev ~ 1.5.4.0-4+precise1
- libopenni-nite-dev ~ 1.3.1.5~precise
- libopenni-sensor-primesense-dev ~ 5.1.0.41-2+precise1
- libopenni-sensor-primesense0 ~ 5.1.0.41-2+precise1
- libopenni0 ~ 1.5.4.0-4+precise1
- Install NITE v1.5.2.21
- Install both NITE 1.5.2.23, and OpenNI SDK v1.5.7.10
/etc/udev/rules.d/primesense-usb.rules
(该步骤不是必须的,至少我没有加)
# Make primesense device mount with writing permissions (default is read only for unknown devices) SUBSYSTEM=="usb", ATTR{idProduct}=="0200", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video" SUBSYSTEM=="usb", ATTR{idProduct}=="0300", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video" SUBSYSTEM=="usb", ATTR{idProduct}=="0401", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video" SUBSYSTEM=="usb", ATTR{idProduct}=="0500", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video" SUBSYSTEM=="usb", ATTR{idProduct}=="0600", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video" SUBSYSTEM=="usb", ATTR{idProduct}=="0601", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video" SUBSYSTEM=="usb", ATTR{idProduct}=="0609", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video" SUBSYSTEM=="usb", ATTR{idProduct}=="1250", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video" SUBSYSTEM=="usb", ATTR{idProduct}=="1260", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video" SUBSYSTEM=="usb", ATTR{idProduct}=="1270", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video" SUBSYSTEM=="usb", ATTR{idProduct}=="1280", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video" SUBSYSTEM=="usb", ATTR{idProduct}=="1290", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video" SUBSYSTEM=="usb", ATTR{idProduct}=="f9db", ATTR{idVendor}=="1d27", MODE:="0666", OWNER:="root", GROUP:="video" #--avin mod-- # Kinect SUBSYSTEM=="usb", ATTR{idProduct}=="02ae", ATTR{idVendor}=="045e", MODE:="0666", OWNER:="root", GROUP:="video" SUBSYSTEM=="usb", ATTR{idProduct}=="02ad", ATTR{idVendor}=="045e", MODE:="0666", OWNER:="root", GROUP:="audio" SUBSYSTEM=="usb", ATTR{idProduct}=="02b0", ATTR{idVendor}=="045e", MODE:="0666", OWNER:="root", GROUP:="video" SUBSYSTEM=="usb", ATTR{idProduct}=="02be", ATTR{idVendor}=="045e", MODE:="0666", OWNER:="root", GROUP:="audio" SUBSYSTEM=="usb", ATTR{idProduct}=="02bf", ATTR{idVendor}=="045e", MODE:="0666", OWNER:="root", GROUP:="video"
4. 编辑
/etc/openni/GlobalDefaults.ini
文件,设置 UsbInterface=0
注意:该文件可能是只读的,如果编辑可以采用 sudo gedit /etc/openni/GlobalDefaults.ini
其他解决方法:
1.安装OpenNI2驱动,或许可以解决
2.或者安装OpenNI-Compliant Sensor Driver v5.1.6.6
注意:安装完成后,启动顺序为
$roslaunch openni_launch openni.launch
$tail -f /var/log/syslog
之后再插入Xtion Pro。如果先接入设备,可能同样会报错。采用该方法,可能插入kinect就不能用了,如果想用kinect,需要以下命令
sudo apt-get install --reinstall libopenni-sensor-primesense0