Ask Your Question
5

ASUS Xtion problems with Ubuntu 12.04 running ROS Fuerte

asked 2013-12-11 06:57:35 -0600

rosey1211 gravatar image

updated 2013-12-12 00:13:40 -0600

I recently purchased the ASUS Xtion Pro and am trying to get it running on my laptop which is running Ubuntu 12.04 and ROS fuerte. I followed the instructions on the ROS wiki page for openni_camera and openni_launch for fuerte. I did the following installs:

sudo apt-get install ros-fuerte-openni-camera
sudo apt-get install ros-fuerte-openni-launch

When I plug the sensor in, I can do a lsusb -v and I get the following block for the PrimeSense

Bus 004 Device 006: ID 1d27:0601  
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1d27 
  idProduct          0x0601 
  bcdDevice            0.01
  iManufacturer           5 PrimeSense
  iProduct                4 PrimeSense Device
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          206
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 

.......

So it seems like the machine is recognizing the device properly.

I then run: roslaunch openni.launch.

Here is some of the output I get from this:

[ INFO] [1386787263.933250900]: Number devices connected: 1
[ INFO] [1386787263.933369646]: 1. device on bus 004:06 is a PrimeSense Device (601) from PrimeSense (1d27) with serial id ''
[ INFO] [1386787263.934284326]: Searching for device with index = 1
[ INFO] [1386787264.035335419]: No matching device found.... waiting for devices. Reason: openni_wrapper::OpenNIDevice::OpenNIDevice(xn::Context&, const xn::NodeInfo&, const xn::NodeInfo&, const xn::NodeInfo&, const xn::NodeInfo&) @ /opt/ros/fuerte/stacks/openni_camera/src/openni_device.cpp @ 61 : creating depth generator failed. Reason: USB interface is not supported!

I see that many of the ros topics come up, but they are not being written to. I tried using various device_id's by modifying the openni.launch file, but none of these worked.

I also tried plugging the device into all of the USB ports on my machine with the same result.

Does anyone have any idea on how to fix this problem?

Thanks in advance. Mark

edit retag flag offensive close merge delete

5 Answers

Sort by » oldest newest most voted
6

answered 2013-12-12 09:22:42 -0600

updated 2014-04-25 03:59:39 -0600

Our lab has two separate Asus Xtion Pro Live devices both ordered from the same NewEgg part number, and both with the same part number listed on the side of the box. However, looking in the lenses of the projector, it is clear that they are two different versions of the device. The old one works in fuerte, groovy, and hydro on several different USB ports on several different computers. The new one gives the same error you get on all ports/computers/ROS versions that we have tried.


NEW VERSION:

image description


OLD VERSION:

image description


Notice the "square" shape of the internals of the left lense on the new version.

Possible Solutions:

  1. Install OpenNI-Compliant Sensor Driver v5.1.6.6 from this site. This post has a discussion about why this helps the situation. This fixes the problem on our computers, but then the Kinects in the lab don't work. The command sudo apt-get install --reinstall libopenni-sensor-primesense0 allows the Kinects to work again.
  2. Use openni2_camera This also allows the device to work. I tried it in hydro and groovy. Unfortunately using OpenNI 2 caused other applications we are working with to not work.

There might be other ways to fix this problem, but I really haven't dug into it much.

EDIT

Just to provide a bit more info, the old sensor has an idProduct value of 0x600 in lsusb and the new one has an idProduct of 0x601.

EDIT 2

Our lab just bought 2 new Xtions from NewEgg, and we spent an entire day trying to come up with a single set of drivers that would allow collection of data off both 0x600 and 0x601 Xtions and 0x02ae Kinects. Additionally we wanted the openni_tracker to work as well. We tried compiling many different forks of the original Primesense/Sensor repo, each with different versions of NITE and the OpenNI SDK installed. Just for reference, we spent the most time with the following repositories:

  • jspricke openni-sensor-primesense - seems to be where the apt-get versions were built from (not super sure of this)
  • ph4m/SensorKinect - applied a patch 6 months ago that allowed building of avin2's repo with OpenNI SDK v1.5.7.10
  • rbrusu/Sensor - seemed to be a likely candidate, and once we got it building and installed, we were actually able to sporadically get data off of all devices

In the end, this is what worked

  1. Install drivers and OpenNI packages from apt-get. Gave following versions:

    • 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
  2. Then as mentioned on this page, you must change to a different NITE version to get openni_tracker working. So do one of the following:

    • Install NITE v1.5.2.21
    • Install both NITE 1.5.2.23, and OpenNI SDK v1.5.7.10
  3. I'm not 100% positive this step is necessary, but the udev rules that ship with the apt-get ...

(more)
edit flag offensive delete link more

Comments

Great answer!

Martin Günther gravatar imageMartin Günther ( 2013-12-13 02:59:34 -0600 )edit

gkmbinh gravatar imagegkmbinh ( 2015-07-16 01:38:58 -0600 )edit

Yes this got me the image when I use: rosrun image_view image_view image:=/camera/rgb/image_color However the depth map seems broken, can you help? rosrun image_view image_view image:=/camera/depth/image_raw locks up the system.

swilker gravatar imageswilker ( 2016-09-06 22:20:05 -0600 )edit
2

answered 2014-04-15 01:27:03 -0600

hfb gravatar image

I'm not sure if this will help as I'm running mine on hydro and 12.04 but this helped me out. http://answers.ros.org/question/61211... When I first was troubleshooting, I saw this above question and went into GlobalDefaults.ini and changed UsbInterface to 2 but something that was not mentioned in the answer was you need to reboot the computer after you change this file. I did not when I first tried it out, it didn't work, so I assumed it was bad advice but I saw elsewhere that you do need to reboot and that fixed my problem.

Steps:

sudo chmod 666 /etc/openni/GlobalDefaults.ini

Uncomment the UsbInterface line and set value to 2

REBOOT computer

roslaunch openni_launch openni.launch

You should be good to go after that. At least that is what worked for me. Now getting my Kinect to work is another issue that has been bothering me for quite some time now but that's a different question for another day after I hack around some more.

edit flag offensive delete link more

Comments

I works for me! Thank you very much!

zipper1956 gravatar imagezipper1956 ( 2014-08-10 21:07:47 -0600 )edit

The UsbInterface line has already been set value to 2. What should I do next? I am working with the newer version of Xtion on hydro.

rdhn gravatar imagerdhn ( 2015-03-07 11:38:32 -0600 )edit

rdhn, I have the newer version as well and the steps I wrote are what ended up working for me. The reboot was the key to getting it work. It's a pain. You might try changing the value, reboot, try it, then change it back, reboot, and try it again. Also make sure to follow the other steps as they did

hfb gravatar imagehfb ( 2015-03-09 19:53:18 -0600 )edit

I rebooted the system several times after changing the value. Xtion is working at its best now. Nice hack.

rdhn gravatar imagerdhn ( 2015-03-09 21:42:31 -0600 )edit

gkmbinh gravatar imagegkmbinh ( 2015-07-16 01:38:25 -0600 )edit
0

answered 2013-12-12 00:17:26 -0600

Not sure whether this is related, but the Kinect/Xtion don't work with USB 3.0 ports (xhci), only with USB 2.0 (ehci).

Try running tail -f /var/log/syslog before plugging in the Xtion, then plug it into all ports of your machine one after the other and watch the output. If it says something about xhci, that port won't work; if it says ehci, it should be fine.

If all of your ports are USB 3.0 ports, you'll have to disable USB 3.0 by one of the following means:

  • disable USB 3.0 in the BIOS settings
  • blacklist the xhci kernel module
edit flag offensive delete link more
0

answered 2013-12-13 03:21:29 -0600

rosey1211 gravatar image

updated 2013-12-20 13:34:07 -0600

I finally had a chance to try out these recommendations. I definitely have the new version of the Asus Xtion that Jarvis showed pictures of with the square aperture. First off, when I plug in the Xtion device, I see something about ehci_hcd when I run the tail on syslog. So I think that is a good thing since I am not dealing with USB 3.0 issues. I also tried installing the OpenNI-Compliant Sensor Driver v5.1.6.6. Then when I run the openni.launch file, I get no errors, which is also better than where I was, but I do not see the rostopics created by the driver node publishing any data. I tried running rostopic hz /camera/xxxx on many of the topics and see no updates. I also tried installing OpenNI2 with still no luck. Any more additional thoughts?

edit flag offensive delete link more

Comments

I have the same new model, and I'm similarly stuck.

jorge gravatar imagejorge ( 2014-03-25 10:28:44 -0600 )edit

I have never solved the problem. I tried everything above.I have this device that I cannot use with my machine.

rosey1211 gravatar imagerosey1211 ( 2014-03-25 14:49:30 -0600 )edit

In my case, only openni2_camera worked.

jorge gravatar imagejorge ( 2014-03-27 06:56:21 -0600 )edit

I meet the same problem, i'm using the new version Asus Xtion Pro Live. Have you solved it?

Qt_Yeung gravatar imageQt_Yeung ( 2014-07-21 05:06:09 -0600 )edit
0

answered 2015-07-16 01:36:04 -0600

updated 2015-07-16 09:46:32 -0600

hi all. i got this error.

[ WARN] [1437028436.633715431]: Camera calibration file /home/ubuntu/.ros/camera_info/rgb_1404280413.yaml not found.
[ WARN] [1437028436.633808427]: Using default parameters for RGB camera calibration.
[ WARN] [1437028436.633902173]: Camera calibration file /home/ubuntu/.ros/camera_info/depth_1404280413.yaml not found.
[ WARN] [1437028436.633955087]: Using default parameters for IR camera calibration.
edit flag offensive delete link more

Comments

Those are not errors, they are warnings. They simply mean that the device you are using has not been calibrated. http://wiki.ros.org/openni_launch/Tut... Note that it is likely not necessary to calibrate your device unless you really need high accuracy.

jarvisschultz gravatar imagejarvisschultz ( 2015-07-16 09:48:16 -0600 )edit

Additionally, you should not add new questions as answers. It is preferable to open a new question. Thanks!

jarvisschultz gravatar imagejarvisschultz ( 2015-07-16 09:49:33 -0600 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

6 followers

Stats

Asked: 2013-12-11 06:57:35 -0600

Seen: 12,201 times

Last updated: Jul 16 '15